]> git.neil.brown.name Git - LaFS.git/commitdiff
Avoid unbalanced refcount on fs if lafs_iget fails.
authorNeilBrown <neilb@suse.de>
Fri, 4 Mar 2011 23:44:23 +0000 (10:44 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 4 Mar 2011 23:44:23 +0000 (10:44 +1100)
if lafs_iget_fs is about to fail, we don't want to gold any
references, so be more careful.

Signed-off-by: NeilBrown <neilb@suse.de>
inode.c

diff --git a/inode.c b/inode.c
index e66ea2881b0b191894547dcb825a99b2a13bb5b9..59979b7ceb79cf26a6b5929fe7af46f2e4939bcd 100644 (file)
--- a/inode.c
+++ b/inode.c
@@ -245,7 +245,8 @@ lafs_iget_fs(struct fs *fs, int fsnum, int inum, int async)
                        up_write(&sb2->s_umount);
        } else {
                rv = lafs_iget(sb, inum, async);
-               atomic_inc(&sb->s_active);
+               if (!IS_ERR(rv))
+                       atomic_inc(&sb->s_active);
        }
        return rv;
 }