diff options
author | Jeff Mahoney <jeffm@suse.com> | 2009-03-30 14:02:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-03-30 15:16:38 -0400 |
commit | 8b6dd72a441a683cef7ace93de0a57ced4367f00 (patch) | |
tree | 6bdeebd3a35d71db2c7ea3e48e3f617b5efbd81a /include | |
parent | d984561b326cd0fe0d1183d11b9b4fa1d011d21d (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.h | 2 | ||||
-rw-r--r-- | include/linux/reiserfs_xattr.h | 22 |
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; | |||
67 | extern struct reiserfs_xattr_handler trusted_handler; | 67 | extern struct reiserfs_xattr_handler trusted_handler; |
68 | extern struct reiserfs_xattr_handler security_handler; | 68 | extern struct reiserfs_xattr_handler security_handler; |
69 | 69 | ||
70 | static inline void reiserfs_write_lock_xattr_i(struct inode *inode) | ||
71 | { | ||
72 | down_write(&REISERFS_I(inode)->i_xattr_sem); | ||
73 | } | ||
74 | static inline void reiserfs_write_unlock_xattr_i(struct inode *inode) | ||
75 | { | ||
76 | up_write(&REISERFS_I(inode)->i_xattr_sem); | ||
77 | } | ||
78 | static inline void reiserfs_read_lock_xattr_i(struct inode *inode) | ||
79 | { | ||
80 | down_read(&REISERFS_I(inode)->i_xattr_sem); | ||
81 | } | ||
82 | |||
83 | static inline void reiserfs_read_unlock_xattr_i(struct inode *inode) | ||
84 | { | ||
85 | up_read(&REISERFS_I(inode)->i_xattr_sem); | ||
86 | } | ||
87 | |||
88 | static inline void reiserfs_init_xattr_rwsem(struct inode *inode) | 70 | static 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 | ||