diff options
author | Ian Kent <raven@themaw.net> | 2008-07-24 00:30:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-24 13:47:32 -0400 |
commit | ec6e8c7d3f9073336ec7b2eed3fcda6f922087c3 (patch) | |
tree | f88f8c2c972477e64f29ad619b9f42f6d5dcf961 /fs/autofs4 | |
parent | 6e60a9ab5f5d314735467752f623072f5b75157a (diff) |
autofs4: fix direct mount pending expire race - correction
Appologies, somehow I seem to have sent an out dated version of this
patch. Here is an additional patch that brings the patch up to date.
Signed-off-by: Ian Kent <raven@themaw.net>
Cc: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/autofs4')
-rw-r--r-- | fs/autofs4/root.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c index adbd8559e870..e062ee5a3ed5 100644 --- a/fs/autofs4/root.c +++ b/fs/autofs4/root.c | |||
@@ -241,13 +241,7 @@ static void *autofs4_follow_link(struct dentry *dentry, struct nameidata *nd) | |||
241 | /* Follow down to our covering mount. */ | 241 | /* Follow down to our covering mount. */ |
242 | if (!follow_down(&nd->path.mnt, &nd->path.dentry)) | 242 | if (!follow_down(&nd->path.mnt, &nd->path.dentry)) |
243 | goto done; | 243 | goto done; |
244 | /* | 244 | goto follow; |
245 | * We shouldn't need to do this but we have no way | ||
246 | * of knowing what may have been done so try a follow | ||
247 | * just in case. | ||
248 | */ | ||
249 | autofs4_follow_mount(&nd->path.mnt, &nd->path.dentry); | ||
250 | goto done; | ||
251 | } | 245 | } |
252 | spin_unlock(&sbi->fs_lock); | 246 | spin_unlock(&sbi->fs_lock); |
253 | goto done; | 247 | goto done; |
@@ -273,7 +267,7 @@ cont: | |||
273 | /* We trigger a mount for almost all flags */ | 267 | /* We trigger a mount for almost all flags */ |
274 | lookup_type = nd->flags & (TRIGGER_FLAGS | TRIGGER_INTENTS); | 268 | lookup_type = nd->flags & (TRIGGER_FLAGS | TRIGGER_INTENTS); |
275 | if (!(lookup_type || dentry->d_flags & DCACHE_AUTOFS_PENDING)) | 269 | if (!(lookup_type || dentry->d_flags & DCACHE_AUTOFS_PENDING)) |
276 | goto done; | 270 | goto follow; |
277 | 271 | ||
278 | /* | 272 | /* |
279 | * If the dentry contains directories then it is an autofs | 273 | * If the dentry contains directories then it is an autofs |