diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/namei.c | 10 | ||||
-rw-r--r-- | fs/namespace.c | 4 |
2 files changed, 3 insertions, 11 deletions
diff --git a/fs/namei.c b/fs/namei.c index 52703986323a..3ed4d7576d6d 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -368,16 +368,6 @@ void path_release(struct nameidata *nd) | |||
368 | mntput(nd->mnt); | 368 | mntput(nd->mnt); |
369 | } | 369 | } |
370 | 370 | ||
371 | /* | ||
372 | * umount() mustn't call path_release()/mntput() as that would clear | ||
373 | * mnt_expiry_mark | ||
374 | */ | ||
375 | void path_release_on_umount(struct nameidata *nd) | ||
376 | { | ||
377 | dput(nd->dentry); | ||
378 | mntput_no_expire(nd->mnt); | ||
379 | } | ||
380 | |||
381 | /** | 371 | /** |
382 | * release_open_intent - free up open intent resources | 372 | * release_open_intent - free up open intent resources |
383 | * @nd: pointer to nameidata | 373 | * @nd: pointer to nameidata |
diff --git a/fs/namespace.c b/fs/namespace.c index 63ced21c12dc..7937d30a6732 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -690,7 +690,9 @@ asmlinkage long sys_umount(char __user * name, int flags) | |||
690 | 690 | ||
691 | retval = do_umount(nd.mnt, flags); | 691 | retval = do_umount(nd.mnt, flags); |
692 | dput_and_out: | 692 | dput_and_out: |
693 | path_release_on_umount(&nd); | 693 | /* we mustn't call path_put() as that would clear mnt_expiry_mark */ |
694 | dput(nd.dentry); | ||
695 | mntput_no_expire(nd.mnt); | ||
694 | out: | 696 | out: |
695 | return retval; | 697 | return retval; |
696 | } | 698 | } |