diff options
author | Dave Chinner <dchinner@redhat.com> | 2011-03-22 07:23:40 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-03-24 21:16:32 -0400 |
commit | 55fa6091d83160ca772fc37cebae45d42695a708 (patch) | |
tree | 4df49f372032e30449e1a2dd64daf443e20b781c /fs/internal.h | |
parent | f283c86afe6aa70b733d1ecebad5d9464943b774 (diff) |
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.h | 2 |
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, | |||
125 | /* | 125 | /* |
126 | * inode.c | 126 | * inode.c |
127 | */ | 127 | */ |
128 | extern spinlock_t inode_sb_list_lock; | ||
129 | |||
128 | extern int get_nr_dirty_inodes(void); | 130 | extern int get_nr_dirty_inodes(void); |
129 | extern void evict_inodes(struct super_block *); | 131 | extern void evict_inodes(struct super_block *); |
130 | extern int invalidate_inodes(struct super_block *, bool); | 132 | extern int invalidate_inodes(struct super_block *, bool); |