summaryrefslogtreecommitdiffstats
path: root/fs/internal.h
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2011-03-22 12:23:40 +0100
committerAl Viro <viro@zeniv.linux.org.uk>2011-03-25 02:16:32 +0100
commit55fa6091d83160ca772fc37cebae45d42695a708 (patch)
tree4df49f372032e30449e1a2dd64daf443e20b781c /fs/internal.h
parentfs: remove inode_lock from iput_final and prune_icache (diff)
downloadlinux-55fa6091d83160ca772fc37cebae45d42695a708.tar.xz
linux-55fa6091d83160ca772fc37cebae45d42695a708.zip
fs: move i_sb_list out from under inode_lock
Protect the per-sb inode list with a new global lock inode_sb_list_lock and use it to protect the list manipulations and traversals. This lock replaces the inode_lock as the inodes on the list can be validity checked while holding the inode->i_lock and hence the inode_lock is no longer needed to protect the list. Signed-off-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/internal.h')
-rw-r--r--fs/internal.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/internal.h b/fs/internal.h
index 8318059b42c6..7013ae0c88c1 100644
--- a/fs/internal.h
+++ b/fs/internal.h
@@ -125,6 +125,8 @@ extern long do_handle_open(int mountdirfd,
/*
* inode.c
*/
+extern spinlock_t inode_sb_list_lock;
+
extern int get_nr_dirty_inodes(void);
extern void evict_inodes(struct super_block *);
extern int invalidate_inodes(struct super_block *, bool);