diff options
Diffstat (limited to 'fs/jffs2/fs.c')
-rw-r--r-- | fs/jffs2/fs.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c index 3eb1c84b0a33..e14b185a80df 100644 --- a/fs/jffs2/fs.c +++ b/fs/jffs2/fs.c | |||
@@ -586,11 +586,12 @@ void jffs2_gc_release_inode(struct jffs2_sb_info *c, | |||
586 | } | 586 | } |
587 | 587 | ||
588 | struct jffs2_inode_info *jffs2_gc_fetch_inode(struct jffs2_sb_info *c, | 588 | struct jffs2_inode_info *jffs2_gc_fetch_inode(struct jffs2_sb_info *c, |
589 | int inum, int nlink) | 589 | int inum, int unlinked) |
590 | { | 590 | { |
591 | struct inode *inode; | 591 | struct inode *inode; |
592 | struct jffs2_inode_cache *ic; | 592 | struct jffs2_inode_cache *ic; |
593 | if (!nlink) { | 593 | |
594 | if (unlinked) { | ||
594 | /* The inode has zero nlink but its nodes weren't yet marked | 595 | /* The inode has zero nlink but its nodes weren't yet marked |
595 | obsolete. This has to be because we're still waiting for | 596 | obsolete. This has to be because we're still waiting for |
596 | the final (close() and) iput() to happen. | 597 | the final (close() and) iput() to happen. |
@@ -638,8 +639,8 @@ struct jffs2_inode_info *jffs2_gc_fetch_inode(struct jffs2_sb_info *c, | |||
638 | return ERR_CAST(inode); | 639 | return ERR_CAST(inode); |
639 | } | 640 | } |
640 | if (is_bad_inode(inode)) { | 641 | if (is_bad_inode(inode)) { |
641 | printk(KERN_NOTICE "Eep. read_inode() failed for ino #%u. nlink %d\n", | 642 | printk(KERN_NOTICE "Eep. read_inode() failed for ino #%u. unlinked %d\n", |
642 | inum, nlink); | 643 | inum, unlinked); |
643 | /* NB. This will happen again. We need to do something appropriate here. */ | 644 | /* NB. This will happen again. We need to do something appropriate here. */ |
644 | iput(inode); | 645 | iput(inode); |
645 | return ERR_PTR(-EIO); | 646 | return ERR_PTR(-EIO); |