You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
reiserfs: Relax reiserfs_xattr_set_handle() while acquiring xattr locks
Fix remaining xattr locks acquired in reiserfs_xattr_set_handle() while we are holding the reiserfs lock to avoid lock inversions. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Christian Kujau <lists@nerdbynature.de> Cc: Alexander Beregalov <a.beregalov@gmail.com> Cc: Chris Mason <chris.mason@oracle.com> Cc: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -559,8 +559,12 @@ reiserfs_xattr_set_handle(struct reiserfs_transaction_handle *th,
|
||||
.ia_size = buffer_size,
|
||||
.ia_valid = ATTR_SIZE | ATTR_CTIME,
|
||||
};
|
||||
|
||||
reiserfs_write_unlock(inode->i_sb);
|
||||
mutex_lock_nested(&dentry->d_inode->i_mutex, I_MUTEX_XATTR);
|
||||
down_write(&dentry->d_inode->i_alloc_sem);
|
||||
reiserfs_write_lock(inode->i_sb);
|
||||
|
||||
err = reiserfs_setattr(dentry, &newattrs);
|
||||
up_write(&dentry->d_inode->i_alloc_sem);
|
||||
mutex_unlock(&dentry->d_inode->i_mutex);
|
||||
|
||||
Reference in New Issue
Block a user