diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2011-07-26 09:15:45 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-04 21:58:42 -0700 |
commit | 52880922de44a7950283451b06db5aec0fc34a99 (patch) | |
tree | ec0c07eb0df88d01dafbe681be52a6ec832100b2 /fs | |
parent | 2cd0312de9ac21f8a5d4456917144af608bc5a3c (diff) | |
download | lwn-52880922de44a7950283451b06db5aec0fc34a99.tar.gz lwn-52880922de44a7950283451b06db5aec0fc34a99.zip |
GFS2: Fix mount hang caused by certain access pattern to sysfs files
commit 19237039919088781b4191a00bdc1284d8fea1dd upstream.
Depending upon the order of userspace/kernel during the
mount process, this can result in a hang without the
_all version of the completion.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/gfs2/ops_fstype.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index 2a77071fb7b6..fa780e666911 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -1018,13 +1018,13 @@ hostdata_error: fsname++; if (lm->lm_mount == NULL) { fs_info(sdp, "Now mounting FS...\n"); - complete(&sdp->sd_locking_init); + complete_all(&sdp->sd_locking_init); return 0; } ret = lm->lm_mount(sdp, fsname); if (ret == 0) fs_info(sdp, "Joined cluster. Now mounting FS...\n"); - complete(&sdp->sd_locking_init); + complete_all(&sdp->sd_locking_init); return ret; } |