aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorNick Piggin <npiggin@kernel.dk>2011-01-07 01:50:05 -0500
committerNick Piggin <npiggin@kernel.dk>2011-01-07 01:50:31 -0500
commitceb5bdc2d246f6d81cf61ed70f325308a11821d2 (patch)
tree65fc9e0227994d4ffc80530dd15bb5a9672a295e /include
parent626d607435617cc0f033522083e2bb195b81813c (diff)
fs: dcache per-bucket dcache hash locking
We can turn the dcache hash locking from a global dcache_hash_lock into per-bucket locking. Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Diffstat (limited to 'include')
-rw-r--r--include/linux/dcache.h3
-rw-r--r--include/linux/fs.h3
2 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index 8b2064d02928..5f0392ef759b 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -4,6 +4,7 @@
4#include <asm/atomic.h> 4#include <asm/atomic.h>
5#include <linux/list.h> 5#include <linux/list.h>
6#include <linux/rculist.h> 6#include <linux/rculist.h>
7#include <linux/rculist_bl.h>
7#include <linux/spinlock.h> 8#include <linux/spinlock.h>
8#include <linux/seqlock.h> 9#include <linux/seqlock.h>
9#include <linux/cache.h> 10#include <linux/cache.h>
@@ -95,7 +96,7 @@ struct dentry {
95 /* RCU lookup touched fields */ 96 /* RCU lookup touched fields */
96 unsigned int d_flags; /* protected by d_lock */ 97 unsigned int d_flags; /* protected by d_lock */
97 seqcount_t d_seq; /* per dentry seqlock */ 98 seqcount_t d_seq; /* per dentry seqlock */
98 struct hlist_node d_hash; /* lookup hash list */ 99 struct hlist_bl_node d_hash; /* lookup hash list */
99 struct dentry *d_parent; /* parent directory */ 100 struct dentry *d_parent; /* parent directory */
100 struct qstr d_name; 101 struct qstr d_name;
101 struct inode *d_inode; /* Where the name belongs to - NULL is 102 struct inode *d_inode; /* Where the name belongs to - NULL is
diff --git a/include/linux/fs.h b/include/linux/fs.h
index d5a4d42f655b..baf3e556ff0e 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -392,6 +392,7 @@ struct inodes_stat_t {
392#include <linux/capability.h> 392#include <linux/capability.h>
393#include <linux/semaphore.h> 393#include <linux/semaphore.h>
394#include <linux/fiemap.h> 394#include <linux/fiemap.h>
395#include <linux/rculist_bl.h>
395 396
396#include <asm/atomic.h> 397#include <asm/atomic.h>
397#include <asm/byteorder.h> 398#include <asm/byteorder.h>
@@ -1377,7 +1378,7 @@ struct super_block {
1377 const struct xattr_handler **s_xattr; 1378 const struct xattr_handler **s_xattr;
1378 1379
1379 struct list_head s_inodes; /* all inodes */ 1380 struct list_head s_inodes; /* all inodes */
1380 struct hlist_head s_anon; /* anonymous dentries for (nfs) exporting */ 1381 struct hlist_bl_head s_anon; /* anonymous dentries for (nfs) exporting */
1381#ifdef CONFIG_SMP 1382#ifdef CONFIG_SMP
1382 struct list_head __percpu *s_files; 1383 struct list_head __percpu *s_files;
1383#else 1384#else