From mboxrd@z Thu Jan 1 00:00:00 1970 From: swhiteho@redhat.com Date: Wed, 18 Mar 2009 12:23:42 +0000 Subject: [Cluster-devel] [PATCH 07/18] GFS2: Fix error path ref counting for root inode In-Reply-To: <1237379033-28095-7-git-send-email-swhiteho@redhat.com> References: <1237379033-28095-1-git-send-email-swhiteho@redhat.com> <1237379033-28095-2-git-send-email-swhiteho@redhat.com> <1237379033-28095-3-git-send-email-swhiteho@redhat.com> <1237379033-28095-4-git-send-email-swhiteho@redhat.com> <1237379033-28095-5-git-send-email-swhiteho@redhat.com> <1237379033-28095-6-git-send-email-swhiteho@redhat.com> <1237379033-28095-7-git-send-email-swhiteho@redhat.com> Message-ID: <1237379033-28095-8-git-send-email-swhiteho@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit From: Steven Whitehouse 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 Signed-off-by: Steven Whitehouse Tested-by: Robert Peterson diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index 95bb33e..e502b37 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -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); -- 1.6.0.3