Re: ext4: possible circular locking dependency at ext4_xattr_inode_create
From: Sergey Senozhatsky
Date: Tue Nov 12 2024 - 02:53:34 EST
A silly typo
[...]
> diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
> index 7647e9f6e190..db3c68fbbadf 100644
> --- a/fs/ext4/xattr.c
> +++ b/fs/ext4/xattr.c
> @@ -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.
---
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index 7647e9f6e190..db3c68fbbadf 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -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);
}