From 768f5ee4a20d9ca95d1f6631c6bf967bfbd1b8d2 Mon Sep 17 00:00:00 2001 From: johann Date: Tue, 19 May 2009 11:04:49 +0000 Subject: [PATCH] Branch b_release_1_6_7 b=19453 i=adilger i=girish fix wrong initialization of xattr entry in the ea in inode patch. Only RHEL4 & SLES9 are concerned. --- .../kernel_patches/patches/ext3-ea-in-inode-2.6-rhel4.patch | 2 +- ldiskfs/kernel_patches/patches/ext3-ea-in-inode-2.6-suse.patch | 2 +- lustre/ChangeLog | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ldiskfs/kernel_patches/patches/ext3-ea-in-inode-2.6-rhel4.patch b/ldiskfs/kernel_patches/patches/ext3-ea-in-inode-2.6-rhel4.patch index bf3ba6c..3aced41 100644 --- a/ldiskfs/kernel_patches/patches/ext3-ea-in-inode-2.6-rhel4.patch +++ b/ldiskfs/kernel_patches/patches/ext3-ea-in-inode-2.6-rhel4.patch @@ -627,12 +627,12 @@ Index: linux-2.6.9-67.0.20/fs/ext3/xattr.c + if (value) { + int offs = min_offs - value_len; + /* use last to create new entry */ ++ memset(last, 0, esize); + last->e_name_len = strlen(name); + last->e_name_index = name_index; + last->e_value_offs = cpu_to_le16(offs); + last->e_value_size = cpu_to_le32(value_len); + last->e_hash = last->e_value_block = 0; -+ memset(last->e_name, 0, esize); + memcpy(last->e_name, name, last->e_name_len); + if (start + offs + value_len > end) + printk("ALERT at %s:%d: 0x%p + %d + %zd > 0x%p\n", diff --git a/ldiskfs/kernel_patches/patches/ext3-ea-in-inode-2.6-suse.patch b/ldiskfs/kernel_patches/patches/ext3-ea-in-inode-2.6-suse.patch index 18efe81..dcd87ed 100644 --- a/ldiskfs/kernel_patches/patches/ext3-ea-in-inode-2.6-suse.patch +++ b/ldiskfs/kernel_patches/patches/ext3-ea-in-inode-2.6-suse.patch @@ -617,12 +617,12 @@ Index: linux-2.6.5-7.311/fs/ext3/xattr.c + if (value) { + int offs = min_offs - value_len; + /* use last to create new entry */ ++ memset(last, 0, esize); + last->e_name_len = strlen(name); + last->e_name_index = name_index; + last->e_value_offs = cpu_to_le16(offs); + last->e_value_size = cpu_to_le32(value_len); + last->e_hash = last->e_value_block = 0; -+ memset(last->e_name, 0, esize); + memcpy(last->e_name, name, last->e_name_len); + if (start + offs + value_len > end) + printk("ALERT at %s:%d: 0x%p + %d + %zd > 0x%p\n", diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 8744d3f..ebc0ae5 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -36,6 +36,14 @@ Lustre filesystem with 4K stack may cause a stack overflow. For more information, please refer to bugzilla 17630. +Severity : critical, only with RHEL4/SLES9 MDS +Bugzilla : 19453 +Description: user xattr corruption +Details : setting extended attributes can corrupt other attributes stored in + the inode body. Both user & lustre internal (LOV EA) attributes + are concerned. In the latter case, the lustre filesystem can be + damaged. + Severity : enhancement Bugzilla : 18289 Description: allow the use of the kernel provided OFED stack @@ -46,7 +54,7 @@ Details : This patch allows for lbuild to use the OFED stack provided Severity : enhancement Bugzilla : 18775 -Descriptoin: improve lctl set/get_param +Description: improve lctl set/get_param Details : handle the bad options, support more than one arguments, add '-F' option to append the indicator to the parameters. -- 1.8.3.1