summaryrefslogtreecommitdiffstats
path: root/fs/super.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2010-10-26 02:49:35 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2010-10-26 03:27:18 +0200
commit63997e98a3be68d7cec806d22bf9b02b2e1daabb (patch)
treeacd366273dc459d6b34e7f67216c06eb56117a4a /fs/super.c
parentfs: skip I_FREEING inodes in writeback_sb_inodes (diff)
downloadlinux-63997e98a3be68d7cec806d22bf9b02b2e1daabb.tar.xz
linux-63997e98a3be68d7cec806d22bf9b02b2e1daabb.zip
split invalidate_inodes()
Pull removal of fsnotify marks into generic_shutdown_super(). Split umount-time work into a new function - evict_inodes(). Make sure that invalidate_inodes() will be able to cope with I_FREEING once we change locking in iput(). Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/super.c')
-rw-r--r--fs/super.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/super.c b/fs/super.c
index 8819e3a7ff20..b9c9869165db 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -273,14 +273,14 @@ void generic_shutdown_super(struct super_block *sb)
get_fs_excl();
sb->s_flags &= ~MS_ACTIVE;
- /* bad name - it should be evict_inodes() */
- invalidate_inodes(sb);
+ fsnotify_unmount_inodes(&sb->s_inodes);
+
+ evict_inodes(sb);
if (sop->put_super)
sop->put_super(sb);
- /* Forget any remaining inodes */
- if (invalidate_inodes(sb)) {
+ if (!list_empty(&sb->s_inodes)) {
printk("VFS: Busy inodes after unmount of %s. "
"Self-destruct in 5 seconds. Have a nice day...\n",
sb->s_id);