Skip to content

Commit

Permalink
[JFFS2] Invert last argument of jffs2_gc_fetch_inode(), make it boolean.
Browse files Browse the repository at this point in the history
We don't actually care about nlink; we only care whether the inode in
question is unlinked or not.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
  • Loading branch information
dwmw2 committed May 1, 2008
1 parent 590fe34 commit 1b690b4
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 7 deletions.
9 changes: 5 additions & 4 deletions fs/jffs2/fs.c
Original file line number Diff line number Diff line change
Expand Up @@ -586,11 +586,12 @@ void jffs2_gc_release_inode(struct jffs2_sb_info *c,
}

struct jffs2_inode_info *jffs2_gc_fetch_inode(struct jffs2_sb_info *c,
int inum, int nlink)
int inum, int unlinked)
{
struct inode *inode;
struct jffs2_inode_cache *ic;
if (!nlink) {

if (unlinked) {
/* The inode has zero nlink but its nodes weren't yet marked
obsolete. This has to be because we're still waiting for
the final (close() and) iput() to happen.
Expand Down Expand Up @@ -638,8 +639,8 @@ struct jffs2_inode_info *jffs2_gc_fetch_inode(struct jffs2_sb_info *c,
return ERR_CAST(inode);
}
if (is_bad_inode(inode)) {
printk(KERN_NOTICE "Eep. read_inode() failed for ino #%u. nlink %d\n",
inum, nlink);
printk(KERN_NOTICE "Eep. read_inode() failed for ino #%u. unlinked %d\n",
inum, unlinked);
/* NB. This will happen again. We need to do something appropriate here. */
iput(inode);
return ERR_PTR(-EIO);
Expand Down
2 changes: 1 addition & 1 deletion fs/jffs2/gc.c
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ int jffs2_garbage_collect_pass(struct jffs2_sb_info *c)
nlink = ic->nlink;
spin_unlock(&c->inocache_lock);

f = jffs2_gc_fetch_inode(c, inum, nlink);
f = jffs2_gc_fetch_inode(c, inum, !nlink);
if (IS_ERR(f)) {
ret = PTR_ERR(f);
goto release_sem;
Expand Down
2 changes: 1 addition & 1 deletion fs/jffs2/os-linux.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ int jffs2_do_fill_super(struct super_block *sb, void *data, int silent);
void jffs2_gc_release_inode(struct jffs2_sb_info *c,
struct jffs2_inode_info *f);
struct jffs2_inode_info *jffs2_gc_fetch_inode(struct jffs2_sb_info *c,
int inum, int nlink);
int inum, int unlinked);

unsigned char *jffs2_gc_fetch_page(struct jffs2_sb_info *c,
struct jffs2_inode_info *f,
Expand Down
2 changes: 1 addition & 1 deletion fs/jffs2/wbuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ static void jffs2_wbuf_recover(struct jffs2_sb_info *c)
/* If it's an in-core inode, then we have to adjust any
full_dirent or full_dnode structure to point to the
new version instead of the old */
f = jffs2_gc_fetch_inode(c, ic->ino, ic->nlink);
f = jffs2_gc_fetch_inode(c, ic->ino, !ic->nlink);
if (IS_ERR(f)) {
/* Should never happen; it _must_ be present */
JFFS2_ERROR("Failed to iget() ino #%u, err %ld\n",
Expand Down

0 comments on commit 1b690b4

Please sign in to comment.