diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2008-03-22 00:46:23 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2008-03-27 20:47:58 -0400 |
| commit | c35038becad0adb0e25261fff66d85b1a6ddd0c2 (patch) | |
| tree | 1d375d74ef5b4c3641768697b2ff8f4992916dc5 /fs/afs | |
| parent | bcc5c7d2b692e5319db00b0dd020ce98723103b1 (diff) | |
[PATCH] do shrink_submounts() for all fs types
... and take it out of ->umount_begin() instances. Call with all locks
already taken (by do_umount()) and leave calling release_mounts() to
caller (it will do release_mounts() anyway, so we can just put into
the same list).
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/afs')
| -rw-r--r-- | fs/afs/internal.h | 1 | ||||
| -rw-r--r-- | fs/afs/mntpt.c | 8 | ||||
| -rw-r--r-- | fs/afs/super.c | 1 |
3 files changed, 0 insertions, 10 deletions
diff --git a/fs/afs/internal.h b/fs/afs/internal.h index 5ca3625cd39e..9ba16edc0af2 100644 --- a/fs/afs/internal.h +++ b/fs/afs/internal.h | |||
| @@ -573,7 +573,6 @@ extern const struct file_operations afs_mntpt_file_operations; | |||
| 573 | 573 | ||
| 574 | extern int afs_mntpt_check_symlink(struct afs_vnode *, struct key *); | 574 | extern int afs_mntpt_check_symlink(struct afs_vnode *, struct key *); |
| 575 | extern void afs_mntpt_kill_timer(void); | 575 | extern void afs_mntpt_kill_timer(void); |
| 576 | extern void afs_umount_begin(struct vfsmount *, int); | ||
| 577 | 576 | ||
| 578 | /* | 577 | /* |
| 579 | * proc.c | 578 | * proc.c |
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c index a3510b8ba3e7..2f5503902c37 100644 --- a/fs/afs/mntpt.c +++ b/fs/afs/mntpt.c | |||
| @@ -283,11 +283,3 @@ void afs_mntpt_kill_timer(void) | |||
| 283 | cancel_delayed_work(&afs_mntpt_expiry_timer); | 283 | cancel_delayed_work(&afs_mntpt_expiry_timer); |
| 284 | flush_scheduled_work(); | 284 | flush_scheduled_work(); |
| 285 | } | 285 | } |
| 286 | |||
| 287 | /* | ||
| 288 | * begin unmount by attempting to remove all automounted mountpoints we added | ||
| 289 | */ | ||
| 290 | void afs_umount_begin(struct vfsmount *vfsmnt, int flags) | ||
| 291 | { | ||
| 292 | shrink_submounts(vfsmnt, &afs_vfsmounts); | ||
| 293 | } | ||
diff --git a/fs/afs/super.c b/fs/afs/super.c index 36bbce45f44b..4b572b801d8d 100644 --- a/fs/afs/super.c +++ b/fs/afs/super.c | |||
| @@ -50,7 +50,6 @@ static const struct super_operations afs_super_ops = { | |||
| 50 | .write_inode = afs_write_inode, | 50 | .write_inode = afs_write_inode, |
| 51 | .destroy_inode = afs_destroy_inode, | 51 | .destroy_inode = afs_destroy_inode, |
| 52 | .clear_inode = afs_clear_inode, | 52 | .clear_inode = afs_clear_inode, |
| 53 | .umount_begin = afs_umount_begin, | ||
| 54 | .put_super = afs_put_super, | 53 | .put_super = afs_put_super, |
| 55 | .show_options = generic_show_options, | 54 | .show_options = generic_show_options, |
| 56 | }; | 55 | }; |
