summaryrefslogtreecommitdiffstats
path: root/fs/notify
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/notify
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/notify')
-rw-r--r--fs/notify/inode_mark.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/notify/inode_mark.c b/fs/notify/inode_mark.c
index 33297c005060..21ed10660b80 100644
--- a/fs/notify/inode_mark.c
+++ b/fs/notify/inode_mark.c
@@ -240,6 +240,7 @@ void fsnotify_unmount_inodes(struct list_head *list)
{
struct inode *inode, *next_i, *need_iput = NULL;
+ spin_lock(&inode_lock);
list_for_each_entry_safe(inode, next_i, list, i_sb_list) {
struct inode *need_iput_tmp;
@@ -297,4 +298,5 @@ void fsnotify_unmount_inodes(struct list_head *list)
spin_lock(&inode_lock);
}
+ spin_unlock(&inode_lock);
}