GFS2: Fix error path ref counting for root inode
authorSteven Whitehouse <swhiteho@redhat.com>
Tue, 20 Jan 2009 16:39:23 +0000 (16:39 +0000)
committerSteven Whitehouse <steve@dolmen.chygwyn.com>
Tue, 24 Mar 2009 11:21:17 +0000 (11:21 +0000)
We were keeping hold of an extra ref to the root inode in one
of the error paths, that resulted in a hang.

Reported-by: Nate Straz <nstraz@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Tested-by: Robert Peterson <rpeterso@redhat.com>
fs/gfs2/ops_fstype.c

index 95bb33e41a7607bf4885aaa1e4423107c35645f6..e502b379a4dab7ecc0f81c2c04966ac983669069 100644 (file)
@@ -1258,6 +1258,8 @@ fail_sb:
                dput(sdp->sd_root_dir);
        if (sdp->sd_master_dir)
                dput(sdp->sd_master_dir);
+       if (sb->s_root)
+               dput(sb->s_root);
        sb->s_root = NULL;
 fail_locking:
        init_locking(sdp, &mount_gh, UNDO);