Whamcloud - gitweb
Branch b1_6
authoradilger <adilger>
Wed, 14 May 2008 22:24:22 +0000 (22:24 +0000)
committeradilger <adilger>
Wed, 14 May 2008 22:24:22 +0000 (22:24 +0000)
Description: MDS may lose file striping (and hence file data) in some cases
Details    : If there are additional extended attributes stored on the MDS,
     in particular ACLs, SELinux, or user attributes (if user_xattr
     is specified for the client mount options) then there is a risk
     of attribute loss.  Additionally, the Lustre file striping
     needs to be larger than default (e.g. striped over all OSTs),
     and an additional attribute must be stored initially in the
     inode and then increase in size enough to be moved to the
     external attribute block (e.g. ACL growing in size) for file
     data to be lost.
i=kalpak.shah
i=alex.zhuravlev
b=15777

Sync ChangeLog from b_release_1_6_5.

ldiskfs/ChangeLog
ldiskfs/kernel_patches/patches/ext3-ea-expand-lose-block.patch [new file with mode: 0644]
ldiskfs/kernel_patches/series/ldiskfs-2.6-rhel5.series
ldiskfs/kernel_patches/series/ldiskfs-2.6-sles10.series
ldiskfs/kernel_patches/series/ldiskfs-2.6.18-vanilla.series
ldiskfs/kernel_patches/series/ldiskfs-2.6.22-vanilla.series

index a40d5be..4bfa9e0 100644 (file)
@@ -30,6 +30,18 @@ Description: soft lockups on 1.6.2 MDS (is_subdir)
 Details    : don't add dentries with ".." to dcache and ignore such dentries in
             iopen_lookup().
 
+Severity   : critical
+Frequency  : very rare, if additional xattrs are used on kernels >= 2.6.12
+Bugzilla   : 15777
+Description: files may lose file attributes in some cases
+Details    : If there are multiple extended attributes stored on the inode,
+           in particular ACLs, SELinux, or user attributes (if user_xattr
+           is specified for the client mount options) then there is a risk
+           of attribute loss.  If an additional attribute is be stored
+           initially in the inode and then increase in size enough to be
+           moved to the external attribute block (e.g. ACL growing in size)
+           for the attribute to be lost.
+
 --------------------------------------------------------------------------------
 
 2008-01-11  Sun Microsystems, Inc.
diff --git a/ldiskfs/kernel_patches/patches/ext3-ea-expand-lose-block.patch b/ldiskfs/kernel_patches/patches/ext3-ea-expand-lose-block.patch
new file mode 100644 (file)
index 0000000..d40b40d
--- /dev/null
@@ -0,0 +1,27 @@
+Date: Mon, 12 May 2008 11:24:40 +0800
+From: Tiger Yang <tiger.yang@oracle.com>
+Subject: [PATCH] ext3/4: fix uninitialized bs in ext3/4_xattr_set_handle()
+To: linux-ext4@vger.kernel.org
+Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
+
+This fix the uninitialized bs when we try to replace a xattr entry in ibody
+with the new value which require more than free space.
+
+Signed-off-by: Tiger Yang <tiger.yang@oracle.com>
+
+
+diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
+--- a/fs/ext3/xattr.c
++++ b/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;
index 163bf25..48c0813 100644 (file)
@@ -13,6 +13,7 @@ ext3-filterdata-sles10.patch
 ext3-uninit-2.6.18.patch
 ext3-nanosecond-2.6.18-vanilla.patch
 ext3-inode-version-2.6.18-vanilla.patch
+ext3-ea-expand-lose-block.patch
 ext3-mmp-2.6.18-vanilla.patch
 ext3-unlink-race.patch
 ext3-fiemap-2.6.18-vanilla.patch
index aab3e71..32a431c 100644 (file)
@@ -18,6 +18,7 @@ ext3-disable-write-bar-by-default-2.6-sles10.patch
 ext3-uninit-2.6-sles10.patch
 ext3-nanosecond-2.6-sles10.patch
 ext3-inode-version-2.6-sles10.patch
+ext3-ea-expand-lose-block.patch
 ext3-mmp-2.6-sles10.patch
 ext3-fiemap-2.6-sles10.patch
 ext3-statfs-2.6-sles10.patch
index 2fcdb48..4b1cdf5 100644 (file)
@@ -14,6 +14,7 @@ ext3-16tb-overflow-fixes.patch
 ext3-uninit-2.6.18.patch
 ext3-nanosecond-2.6.18-vanilla.patch
 ext3-inode-version-2.6.18-vanilla.patch
+ext3-ea-expand-lose-block.patch
 ext3-mmp-2.6.18-vanilla.patch
 ext3-handle-directory-corruption-better.patch
 ext3-fiemap-2.6.18-vanilla.patch
index 5bf60dc..4ab651d 100644 (file)
@@ -13,6 +13,7 @@ ext3-filterdata-sles10.patch
 ext3-uninit-2.6.22-vanilla.patch
 ext3-nanosecond-2.6.22-vanilla.patch
 ext3-inode-version-2.6.18-vanilla.patch
+ext3-ea-expand-lose-block.patch
 ext3-mmp-2.6.22-vanilla.patch
 ext3-fiemap-2.6.22-vanilla.patch
 ext3-statfs-2.6.22.patch