UBIFS: use correct flags in lprops
Artem Bityutskiy [Mon, 30 May 2011 11:51:20 +0000 (14:51 +0300)]
The UBIFS lpt tree is in many aspects similar to the TNC tree, and we have
similar flags for these trees. And by mistake we use the COW_ZNODE flag for
LPT in some places, instead of the right flag COW_CNODE. And this works
only because these two constants have the same value.

This patch makes all the LPT code to use COW_CNODE and also changes COW_CNODE
constant value to make sure we do not misuse the flags any more.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>

fs/ubifs/lprops.c
fs/ubifs/lpt_commit.c
fs/ubifs/ubifs.h

index 667884f..98b8e73 100644 (file)
@@ -504,7 +504,7 @@ static int is_lprops_dirty(struct ubifs_info *c, struct ubifs_lprops *lprops)
        pnode = (struct ubifs_pnode *)container_of(lprops - pos,
                                                   struct ubifs_pnode,
                                                   lprops[0]);
-       return !test_bit(COW_ZNODE, &pnode->flags) &&
+       return !test_bit(COW_CNODE, &pnode->flags) &&
               test_bit(DIRTY_CNODE, &pnode->flags);
 }
 
index dfcb574..254e8d3 100644 (file)
@@ -116,8 +116,8 @@ static int get_cnodes_to_commit(struct ubifs_info *c)
                return 0;
        cnt += 1;
        while (1) {
-               ubifs_assert(!test_bit(COW_ZNODE, &cnode->flags));
-               __set_bit(COW_ZNODE, &cnode->flags);
+               ubifs_assert(!test_bit(COW_CNODE, &cnode->flags));
+               __set_bit(COW_CNODE, &cnode->flags);
                cnext = next_dirty_cnode(cnode);
                if (!cnext) {
                        cnode->cnext = c->lpt_cnext;
@@ -465,7 +465,7 @@ static int write_cnodes(struct ubifs_info *c)
                 */
                clear_bit(DIRTY_CNODE, &cnode->flags);
                smp_mb__before_clear_bit();
-               clear_bit(COW_ZNODE, &cnode->flags);
+               clear_bit(COW_CNODE, &cnode->flags);
                smp_mb__after_clear_bit();
                offs += len;
                dbg_chk_lpt_sz(c, 1, len);
index f79983d..3304aad 100644 (file)
@@ -230,14 +230,14 @@ enum {
  * LPT cnode flag bits.
  *
  * DIRTY_CNODE: cnode is dirty
- * COW_CNODE: cnode is being committed and must be copied before writing
  * OBSOLETE_CNODE: cnode is being committed and has been copied (or deleted),
- * so it can (and must) be freed when the commit is finished
+ *                 so it can (and must) be freed when the commit is finished
+ * COW_CNODE: cnode is being committed and must be copied before writing
  */
 enum {
        DIRTY_CNODE    = 0,
-       COW_CNODE      = 1,
-       OBSOLETE_CNODE = 2,
+       OBSOLETE_CNODE = 1,
+       COW_CNODE      = 2,
 };
 
 /*