aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2009-03-30 14:02:36 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-03-30 15:16:38 -0400
commit8b6dd72a441a683cef7ace93de0a57ced4367f00 (patch)
tree6bdeebd3a35d71db2c7ea3e48e3f617b5efbd81a /include
parentd984561b326cd0fe0d1183d11b9b4fa1d011d21d (diff)
reiserfs: make per-inode xattr locking more fine grained
The per-inode locking can be made more fine-grained to surround just the interaction with the filesystem itself. This really only applies to protecting reads during a write, since concurrent writes are barred with inode->i_mutex at the vfs level. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/reiserfs_fs_i.h2
-rw-r--r--include/linux/reiserfs_xattr.h22
2 files changed, 1 insertions, 23 deletions
diff --git a/include/linux/reiserfs_fs_i.h b/include/linux/reiserfs_fs_i.h
index 201dd910b042..76360b36ac33 100644
--- a/include/linux/reiserfs_fs_i.h
+++ b/include/linux/reiserfs_fs_i.h
@@ -59,7 +59,7 @@ struct reiserfs_inode_info {
59 struct posix_acl *i_acl_default; 59 struct posix_acl *i_acl_default;
60#endif 60#endif
61#ifdef CONFIG_REISERFS_FS_XATTR 61#ifdef CONFIG_REISERFS_FS_XATTR
62 struct rw_semaphore xattr_sem; 62 struct rw_semaphore i_xattr_sem;
63#endif 63#endif
64 struct inode vfs_inode; 64 struct inode vfs_inode;
65}; 65};
diff --git a/include/linux/reiserfs_xattr.h b/include/linux/reiserfs_xattr.h
index 65c16fa51246..3bd154fd56e9 100644
--- a/include/linux/reiserfs_xattr.h
+++ b/include/linux/reiserfs_xattr.h
@@ -67,24 +67,6 @@ extern struct reiserfs_xattr_handler user_handler;
67extern struct reiserfs_xattr_handler trusted_handler; 67extern struct reiserfs_xattr_handler trusted_handler;
68extern struct reiserfs_xattr_handler security_handler; 68extern struct reiserfs_xattr_handler security_handler;
69 69
70static inline void reiserfs_write_lock_xattr_i(struct inode *inode)
71{
72 down_write(&REISERFS_I(inode)->i_xattr_sem);
73}
74static inline void reiserfs_write_unlock_xattr_i(struct inode *inode)
75{
76 up_write(&REISERFS_I(inode)->i_xattr_sem);
77}
78static inline void reiserfs_read_lock_xattr_i(struct inode *inode)
79{
80 down_read(&REISERFS_I(inode)->i_xattr_sem);
81}
82
83static inline void reiserfs_read_unlock_xattr_i(struct inode *inode)
84{
85 up_read(&REISERFS_I(inode)->i_xattr_sem);
86}
87
88static inline void reiserfs_init_xattr_rwsem(struct inode *inode) 70static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
89{ 71{
90 init_rwsem(&REISERFS_I(inode)->i_xattr_sem); 72 init_rwsem(&REISERFS_I(inode)->i_xattr_sem);
@@ -96,10 +78,6 @@ static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
96#define reiserfs_setxattr NULL 78#define reiserfs_setxattr NULL
97#define reiserfs_listxattr NULL 79#define reiserfs_listxattr NULL
98#define reiserfs_removexattr NULL 80#define reiserfs_removexattr NULL
99#define reiserfs_write_lock_xattrs(sb) do {;} while(0)
100#define reiserfs_write_unlock_xattrs(sb) do {;} while(0)
101#define reiserfs_read_lock_xattrs(sb)
102#define reiserfs_read_unlock_xattrs(sb)
103 81
104#define reiserfs_permission NULL 82#define reiserfs_permission NULL
105 83