diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-07-26 05:36:34 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-07-26 12:57:09 -0400 |
commit | a209dfc7b0d94bd6fa94553c097836a2e6d0f0ba (patch) | |
tree | 7dacc92b08264c675a0dfcbae83982b7d3ad5135 /include/linux/fs.h | |
parent | 5b9f4567726513a359e70f85029482c7c3714dbd (diff) |
vfs: dont chain pipe/anon/socket on superblock s_inodes list
Workloads using pipes and sockets hit inode_sb_list_lock contention.
superblock s_inodes list is needed for quota, dirty, pagecache and
fsnotify management. pipe/anon/socket fs are clearly not candidates for
these.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index a6658043258a..cc363fa7bb82 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -2310,7 +2310,8 @@ extern void __iget(struct inode * inode); | |||
2310 | extern void iget_failed(struct inode *); | 2310 | extern void iget_failed(struct inode *); |
2311 | extern void end_writeback(struct inode *); | 2311 | extern void end_writeback(struct inode *); |
2312 | extern void __destroy_inode(struct inode *); | 2312 | extern void __destroy_inode(struct inode *); |
2313 | extern struct inode *new_inode(struct super_block *); | 2313 | extern struct inode *new_inode_pseudo(struct super_block *sb); |
2314 | extern struct inode *new_inode(struct super_block *sb); | ||
2314 | extern void free_inode_nonrcu(struct inode *inode); | 2315 | extern void free_inode_nonrcu(struct inode *inode); |
2315 | extern int should_remove_suid(struct dentry *); | 2316 | extern int should_remove_suid(struct dentry *); |
2316 | extern int file_remove_suid(struct file *); | 2317 | extern int file_remove_suid(struct file *); |