Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 255059
b: refs/heads/master
c: f42eed7
h: refs/heads/master
i:
  255057: ad416b9
  255055: 3cd190a
v: v3
  • Loading branch information
Artem Bityutskiy authored and Artem Bityutskiy committed Jul 4, 2011
1 parent 6f6dc71 commit 5e27018
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1f42596ec0a7d3d50a494d95e3f1afbd117250f8
refs/heads/master: f42eed7cba7f83197b0ffbb023e7d89a0b2fd71d
2 changes: 1 addition & 1 deletion trunk/fs/ubifs/commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ static int nothing_to_commit(struct ubifs_info *c)
* If the root TNC node is dirty, we definitely have something to
* commit.
*/
if (c->zroot.znode && test_bit(DIRTY_ZNODE, &c->zroot.znode->flags))
if (c->zroot.znode && ubifs_zn_dirty(c->zroot.znode))
return 0;

/*
Expand Down
23 changes: 23 additions & 0 deletions trunk/fs/ubifs/misc.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,29 @@ static inline int ubifs_zn_dirty(const struct ubifs_znode *znode)
return !!test_bit(DIRTY_ZNODE, &znode->flags);
}

/**
* ubifs_zn_obsolete - check if znode is obsolete.
* @znode: znode to check
*
* This helper function returns %1 if @znode is obsolete and %0 otherwise.
*/
static inline int ubifs_zn_obsolete(const struct ubifs_znode *znode)
{
return !!test_bit(OBSOLETE_ZNODE, &znode->flags);
}

/**
* ubifs_zn_cow - check if znode has to be copied on write.
* @znode: znode to check
*
* This helper function returns %1 if @znode is has COW flag set and %0
* otherwise.
*/
static inline int ubifs_zn_cow(const struct ubifs_znode *znode)
{
return !!test_bit(COW_ZNODE, &znode->flags);
}

/**
* ubifs_wake_up_bgt - wake up background thread.
* @c: UBIFS file-system description object
Expand Down
13 changes: 6 additions & 7 deletions trunk/fs/ubifs/tnc.c
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ static struct ubifs_znode *copy_znode(struct ubifs_info *c,
__set_bit(DIRTY_ZNODE, &zn->flags);
__clear_bit(COW_ZNODE, &zn->flags);

ubifs_assert(!test_bit(OBSOLETE_ZNODE, &znode->flags));
ubifs_assert(!ubifs_zn_obsolete(znode));
__set_bit(OBSOLETE_ZNODE, &znode->flags);

if (znode->level != 0) {
Expand Down Expand Up @@ -271,7 +271,7 @@ static struct ubifs_znode *dirty_cow_znode(struct ubifs_info *c,
struct ubifs_znode *zn;
int err;

if (!test_bit(COW_ZNODE, &znode->flags)) {
if (!ubifs_zn_cow(znode)) {
/* znode is not being committed */
if (!test_and_set_bit(DIRTY_ZNODE, &znode->flags)) {
atomic_long_inc(&c->dirty_zn_cnt);
Expand Down Expand Up @@ -2423,7 +2423,7 @@ static int tnc_delete(struct ubifs_info *c, struct ubifs_znode *znode, int n)
*/

do {
ubifs_assert(!test_bit(OBSOLETE_ZNODE, &znode->flags));
ubifs_assert(!ubifs_zn_obsolete(znode));
ubifs_assert(ubifs_zn_dirty(znode));

zp = znode->parent;
Expand Down Expand Up @@ -2479,9 +2479,8 @@ static int tnc_delete(struct ubifs_info *c, struct ubifs_znode *znode, int n)
c->zroot.offs = zbr->offs;
c->zroot.len = zbr->len;
c->zroot.znode = znode;
ubifs_assert(!test_bit(OBSOLETE_ZNODE,
&zp->flags));
ubifs_assert(test_bit(DIRTY_ZNODE, &zp->flags));
ubifs_assert(!ubifs_zn_obsolete(zp));
ubifs_assert(ubifs_zn_dirty(zp));
atomic_long_dec(&c->dirty_zn_cnt);

if (zp->cnext) {
Expand Down Expand Up @@ -2865,7 +2864,7 @@ static void tnc_destroy_cnext(struct ubifs_info *c)
struct ubifs_znode *znode = cnext;

cnext = cnext->cnext;
if (test_bit(OBSOLETE_ZNODE, &znode->flags))
if (ubifs_zn_obsolete(znode))
kfree(znode);
} while (cnext && cnext != c->cnext);
}
Expand Down
8 changes: 4 additions & 4 deletions trunk/fs/ubifs/tnc_commit.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ static int make_idx_node(struct ubifs_info *c, struct ubifs_idx_node *idx,
atomic_long_dec(&c->dirty_zn_cnt);

ubifs_assert(ubifs_zn_dirty(znode));
ubifs_assert(test_bit(COW_ZNODE, &znode->flags));
ubifs_assert(ubifs_zn_cow(znode));

__clear_bit(DIRTY_ZNODE, &znode->flags);
__clear_bit(COW_ZNODE, &znode->flags);
Expand Down Expand Up @@ -639,7 +639,7 @@ static int get_znodes_to_commit(struct ubifs_info *c)
}
cnt += 1;
while (1) {
ubifs_assert(!test_bit(COW_ZNODE, &znode->flags));
ubifs_assert(!ubifs_zn_cow(znode));
__set_bit(COW_ZNODE, &znode->flags);
znode->alt = 0;
cnext = find_next_dirty(znode);
Expand Down Expand Up @@ -888,7 +888,7 @@ static int write_index(struct ubifs_info *c)
cnext = znode->cnext;

ubifs_assert(ubifs_zn_dirty(znode));
ubifs_assert(test_bit(COW_ZNODE, &znode->flags));
ubifs_assert(ubifs_zn_cow(znode));

/*
* It is important that other threads should see %DIRTY_ZNODE
Expand Down Expand Up @@ -983,7 +983,7 @@ static void free_obsolete_znodes(struct ubifs_info *c)
do {
znode = cnext;
cnext = znode->cnext;
if (test_bit(OBSOLETE_ZNODE, &znode->flags))
if (ubifs_zn_obsolete(znode))
kfree(znode);
else {
znode->cnext = NULL;
Expand Down

0 comments on commit 5e27018

Please sign in to comment.