mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-23 21:19:04 -04:00
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>
This commit is contained in:
parent
d984561b32
commit
8b6dd72a44
4 changed files with 55 additions and 90 deletions
|
|
@ -59,7 +59,7 @@ struct reiserfs_inode_info {
|
|||
struct posix_acl *i_acl_default;
|
||||
#endif
|
||||
#ifdef CONFIG_REISERFS_FS_XATTR
|
||||
struct rw_semaphore xattr_sem;
|
||||
struct rw_semaphore i_xattr_sem;
|
||||
#endif
|
||||
struct inode vfs_inode;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -67,24 +67,6 @@ extern struct reiserfs_xattr_handler user_handler;
|
|||
extern struct reiserfs_xattr_handler trusted_handler;
|
||||
extern struct reiserfs_xattr_handler security_handler;
|
||||
|
||||
static inline void reiserfs_write_lock_xattr_i(struct inode *inode)
|
||||
{
|
||||
down_write(&REISERFS_I(inode)->i_xattr_sem);
|
||||
}
|
||||
static inline void reiserfs_write_unlock_xattr_i(struct inode *inode)
|
||||
{
|
||||
up_write(&REISERFS_I(inode)->i_xattr_sem);
|
||||
}
|
||||
static inline void reiserfs_read_lock_xattr_i(struct inode *inode)
|
||||
{
|
||||
down_read(&REISERFS_I(inode)->i_xattr_sem);
|
||||
}
|
||||
|
||||
static inline void reiserfs_read_unlock_xattr_i(struct inode *inode)
|
||||
{
|
||||
up_read(&REISERFS_I(inode)->i_xattr_sem);
|
||||
}
|
||||
|
||||
static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
|
||||
{
|
||||
init_rwsem(&REISERFS_I(inode)->i_xattr_sem);
|
||||
|
|
@ -96,10 +78,6 @@ static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
|
|||
#define reiserfs_setxattr NULL
|
||||
#define reiserfs_listxattr NULL
|
||||
#define reiserfs_removexattr NULL
|
||||
#define reiserfs_write_lock_xattrs(sb) do {;} while(0)
|
||||
#define reiserfs_write_unlock_xattrs(sb) do {;} while(0)
|
||||
#define reiserfs_read_lock_xattrs(sb)
|
||||
#define reiserfs_read_unlock_xattrs(sb)
|
||||
|
||||
#define reiserfs_permission NULL
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue