open.c | 2 +- reiserfs/xattr.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Index: linux-2.6.19-rc4/fs/open.c =================================================================== --- linux-2.6.19-rc4.orig/fs/open.c 2006-10-31 09:07:36.000000000 +0530 +++ linux-2.6.19-rc4/fs/open.c 2006-11-06 14:28:19.000000000 +0530 @@ -549,7 +549,7 @@ if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) goto dput_and_out; - mutex_lock(&inode->i_mutex); + mutex_lock_nested(&inode->i_mutex, I_MUTEX_PARENT); if (mode == (mode_t) -1) mode = inode->i_mode; newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO); Index: linux-2.6.19-rc4/fs/reiserfs/xattr.c =================================================================== --- linux-2.6.19-rc4.orig/fs/reiserfs/xattr.c 2006-10-31 09:07:36.000000000 +0530 +++ linux-2.6.19-rc4/fs/reiserfs/xattr.c 2006-11-07 17:51:30.000000000 +0530 @@ -526,7 +526,7 @@ /* Resize it so we're ok to write there */ newattrs.ia_size = buffer_size; newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME; - mutex_lock(&xinode->i_mutex); + mutex_lock_nested(&xinode->i_mutex, I_MUTEX_CHILD); err = notify_change(fp->f_dentry, &newattrs); if (err) goto out_filp;