Browse Source

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>
Steven Whitehouse 16 years ago
parent
commit
e7c8707ea2
1 changed files with 2 additions and 0 deletions
  1. 2 0
      fs/gfs2/ops_fstype.c

+ 2 - 0
fs/gfs2/ops_fstype.c

@@ -1258,6 +1258,8 @@ fail_sb:
 		dput(sdp->sd_root_dir);
 		dput(sdp->sd_root_dir);
 	if (sdp->sd_master_dir)
 	if (sdp->sd_master_dir)
 		dput(sdp->sd_master_dir);
 		dput(sdp->sd_master_dir);
+	if (sb->s_root)
+		dput(sb->s_root);
 	sb->s_root = NULL;
 	sb->s_root = NULL;
 fail_locking:
 fail_locking:
 	init_locking(sdp, &mount_gh, UNDO);
 	init_locking(sdp, &mount_gh, UNDO);