Skip to contentSkip to conversation

ext4: possible circular locking dependency at ext4_xattr_inode_create

DISCUSSION Sergey Senozhatsky 1 participant 1 message Nov 12, 2024 ext4 file system

lore
Share & tools
lore
#0 lore raw

A silly typo

[...]

fs/ext4/xattr.c static struct inode *ext4_xattr_inode_create(handle_t *handle, · line 1514

Quoted 10 lines
fs/ext4/xattr.c +1 -1
index 7647e9f6e190..db3c68fbbadf 100644
@@ -1511,7 +1511,7 @@ static struct inode *ext4_xattr_inode_create(handle_t *handle,
 		 */
 		dquot_free_inode(ea_inode);
 		dquot_drop(ea_inode);
-		inode_lock(ea_inode);
+		inode_lock_nested(inode, I_MUTEX_XATTR);

^^^ ea_inode, of course.

---

fs/ext4/xattr.c +1 -1
index 7647e9f6e190..db3c68fbbadf 100644
@@ -1511,7 +1511,7 @@ static struct inode *ext4_xattr_inode_create(handle_t *handle,
 		 */
 		dquot_free_inode(ea_inode);
 		dquot_drop(ea_inode);
-		inode_lock(ea_inode);
+		inode_lock_nested(ea_inode, I_MUTEX_XATTR);
 		ea_inode->i_flags |= S_NOQUOTA;
 		inode_unlock(ea_inode);
 	}