From def48833c027c105a0dedd1ead1a4755f86e56c6 Mon Sep 17 00:00:00 2001 From: Tiger Yang Date: Wed, 14 May 2008 16:05:47 -0700 Subject: [PATCH] --- yaml --- r: 96741 b: refs/heads/master c: 7e01c8e5420b6c7f9d85d34c15d8c7a15c9fc720 h: refs/heads/master i: 96739: d35bc2d7032a41ab345054ee7347a83cc3ed504e v: v3 --- [refs] | 2 +- trunk/fs/ext3/xattr.c | 5 +++++ trunk/fs/ext4/xattr.c | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 84ad7117f026..e1731e72d24b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0c70814c311581a6c86198db4f982aa683c68fb8 +refs/heads/master: 7e01c8e5420b6c7f9d85d34c15d8c7a15c9fc720 diff --git a/trunk/fs/ext3/xattr.c b/trunk/fs/ext3/xattr.c index d4a4f0e9ff69..175414ac2210 100644 --- a/trunk/fs/ext3/xattr.c +++ b/trunk/fs/ext3/xattr.c @@ -1000,6 +1000,11 @@ ext3_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index, i.value = NULL; error = ext3_xattr_block_set(handle, inode, &i, &bs); } else if (error == -ENOSPC) { + if (EXT3_I(inode)->i_file_acl && !bs.s.base) { + error = ext3_xattr_block_find(inode, &i, &bs); + if (error) + goto cleanup; + } error = ext3_xattr_block_set(handle, inode, &i, &bs); if (error) goto cleanup; diff --git a/trunk/fs/ext4/xattr.c b/trunk/fs/ext4/xattr.c index 3fbc2c6c3d0e..ff08633f398e 100644 --- a/trunk/fs/ext4/xattr.c +++ b/trunk/fs/ext4/xattr.c @@ -1009,6 +1009,11 @@ ext4_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index, i.value = NULL; error = ext4_xattr_block_set(handle, inode, &i, &bs); } else if (error == -ENOSPC) { + if (EXT4_I(inode)->i_file_acl && !bs.s.base) { + error = ext4_xattr_block_find(inode, &i, &bs); + if (error) + goto cleanup; + } error = ext4_xattr_block_set(handle, inode, &i, &bs); if (error) goto cleanup;