]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blobdiff - fs/ubifs/tnc_misc.c
ubifs: Rework ubifs_assert()
[mirror_ubuntu-eoan-kernel.git] / fs / ubifs / tnc_misc.c
index 93f5b7859e6f0ddc31acab9e75b3af3434b1ea2b..d90ee01076a9ea5559dd8afb26cffc4e61a5cb81 100644 (file)
 
 /**
  * ubifs_tnc_levelorder_next - next TNC tree element in levelorder traversal.
+ * @c: UBIFS file-system description object
  * @zr: root of the subtree to traverse
  * @znode: previous znode
  *
  * This function implements levelorder TNC traversal. The LNC is ignored.
  * Returns the next element or %NULL if @znode is already the last one.
  */
-struct ubifs_znode *ubifs_tnc_levelorder_next(struct ubifs_znode *zr,
+struct ubifs_znode *ubifs_tnc_levelorder_next(const struct ubifs_info *c,
+                                             struct ubifs_znode *zr,
                                              struct ubifs_znode *znode)
 {
        int level, iip, level_search = 0;
        struct ubifs_znode *zn;
 
-       ubifs_assert(zr);
+       ubifs_assert(c, zr);
 
        if (unlikely(!znode))
                return zr;
@@ -58,7 +60,7 @@ struct ubifs_znode *ubifs_tnc_levelorder_next(struct ubifs_znode *zr,
 
        iip = znode->iip;
        while (1) {
-               ubifs_assert(znode->level <= zr->level);
+               ubifs_assert(c, znode->level <= zr->level);
 
                /*
                 * First walk up until there is a znode with next branch to
@@ -85,7 +87,7 @@ struct ubifs_znode *ubifs_tnc_levelorder_next(struct ubifs_znode *zr,
                        level_search = 1;
                        iip = -1;
                        znode = ubifs_tnc_find_child(zr, 0);
-                       ubifs_assert(znode);
+                       ubifs_assert(c, znode);
                }
 
                /* Switch to the next index */
@@ -111,7 +113,7 @@ struct ubifs_znode *ubifs_tnc_levelorder_next(struct ubifs_znode *zr,
                }
 
                if (zn) {
-                       ubifs_assert(zn->level >= 0);
+                       ubifs_assert(c, zn->level >= 0);
                        return zn;
                }
        }
@@ -140,7 +142,7 @@ int ubifs_search_zbranch(const struct ubifs_info *c,
        int uninitialized_var(cmp);
        const struct ubifs_zbranch *zbr = &znode->zbranch[0];
 
-       ubifs_assert(end > beg);
+       ubifs_assert(c, end > beg);
 
        while (end > beg) {
                mid = (beg + end) >> 1;
@@ -158,13 +160,13 @@ int ubifs_search_zbranch(const struct ubifs_info *c,
        *n = end - 1;
 
        /* The insert point is after *n */
-       ubifs_assert(*n >= -1 && *n < znode->child_cnt);
+       ubifs_assert(c, *n >= -1 && *n < znode->child_cnt);
        if (*n == -1)
-               ubifs_assert(keys_cmp(c, key, &zbr[0].key) < 0);
+               ubifs_assert(c, keys_cmp(c, key, &zbr[0].key) < 0);
        else
-               ubifs_assert(keys_cmp(c, key, &zbr[*n].key) > 0);
+               ubifs_assert(c, keys_cmp(c, key, &zbr[*n].key) > 0);
        if (*n + 1 < znode->child_cnt)
-               ubifs_assert(keys_cmp(c, key, &zbr[*n + 1].key) < 0);
+               ubifs_assert(c, keys_cmp(c, key, &zbr[*n + 1].key) < 0);
 
        return 0;
 }
@@ -195,16 +197,18 @@ struct ubifs_znode *ubifs_tnc_postorder_first(struct ubifs_znode *znode)
 
 /**
  * ubifs_tnc_postorder_next - next TNC tree element in postorder traversal.
+ * @c: UBIFS file-system description object
  * @znode: previous znode
  *
  * This function implements postorder TNC traversal. The LNC is ignored.
  * Returns the next element or %NULL if @znode is already the last one.
  */
-struct ubifs_znode *ubifs_tnc_postorder_next(struct ubifs_znode *znode)
+struct ubifs_znode *ubifs_tnc_postorder_next(const struct ubifs_info *c,
+                                            struct ubifs_znode *znode)
 {
        struct ubifs_znode *zn;
 
-       ubifs_assert(znode);
+       ubifs_assert(c, znode);
        if (unlikely(!znode->parent))
                return NULL;
 
@@ -220,18 +224,20 @@ struct ubifs_znode *ubifs_tnc_postorder_next(struct ubifs_znode *znode)
 
 /**
  * ubifs_destroy_tnc_subtree - destroy all znodes connected to a subtree.
+ * @c: UBIFS file-system description object
  * @znode: znode defining subtree to destroy
  *
  * This function destroys subtree of the TNC tree. Returns number of clean
  * znodes in the subtree.
  */
-long ubifs_destroy_tnc_subtree(struct ubifs_znode *znode)
+long ubifs_destroy_tnc_subtree(const struct ubifs_info *c,
+                              struct ubifs_znode *znode)
 {
        struct ubifs_znode *zn = ubifs_tnc_postorder_first(znode);
        long clean_freed = 0;
        int n;
 
-       ubifs_assert(zn);
+       ubifs_assert(c, zn);
        while (1) {
                for (n = 0; n < zn->child_cnt; n++) {
                        if (!zn->zbranch[n].znode)
@@ -252,7 +258,7 @@ long ubifs_destroy_tnc_subtree(struct ubifs_znode *znode)
                        return clean_freed;
                }
 
-               zn = ubifs_tnc_postorder_next(zn);
+               zn = ubifs_tnc_postorder_next(c, zn);
        }
 }
 
@@ -410,7 +416,7 @@ struct ubifs_znode *ubifs_load_znode(struct ubifs_info *c,
        int err;
        struct ubifs_znode *znode;
 
-       ubifs_assert(!zbr->znode);
+       ubifs_assert(c, !zbr->znode);
        /*
         * A slab cache is not presently used for znodes because the znode size
         * depends on the fanout which is stored in the superblock.
@@ -435,7 +441,7 @@ struct ubifs_znode *ubifs_load_znode(struct ubifs_info *c,
 
        zbr->znode = znode;
        znode->parent = parent;
-       znode->time = get_seconds();
+       znode->time = ktime_get_seconds();
        znode->iip = iip;
 
        return znode;