diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2009-01-20 11:39:23 -0500 |
---|---|---|
committer | Steven Whitehouse <steve@dolmen.chygwyn.com> | 2009-03-24 07:21:17 -0400 |
commit | e7c8707ea2b9106f0f78c43348ff5d5e82ba7961 (patch) | |
tree | 0e2de02adb03b9adccc1e8997782cc8c7561d8e8 /fs/gfs2 | |
parent | ac2425e7d319dec0523e52ee120a158ce6668cbd (diff) |
GFS2: Fix error path ref counting for root inode
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>
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/ops_fstype.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index 95bb33e41a76..e502b379a4da 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c | |||
@@ -1258,6 +1258,8 @@ fail_sb: | |||
1258 | dput(sdp->sd_root_dir); | 1258 | dput(sdp->sd_root_dir); |
1259 | if (sdp->sd_master_dir) | 1259 | if (sdp->sd_master_dir) |
1260 | dput(sdp->sd_master_dir); | 1260 | dput(sdp->sd_master_dir); |
1261 | if (sb->s_root) | ||
1262 | dput(sb->s_root); | ||
1261 | sb->s_root = NULL; | 1263 | sb->s_root = NULL; |
1262 | fail_locking: | 1264 | fail_locking: |
1263 | init_locking(sdp, &mount_gh, UNDO); | 1265 | init_locking(sdp, &mount_gh, UNDO); |