From c0312da67ab96bc1392b77eeb324cd338d82efe8 Mon Sep 17 00:00:00 2001 From: adilger Date: Tue, 25 Sep 2007 17:56:51 +0000 Subject: [PATCH] Branch HEAD Description: e2fsck reports "invalid unused inodes count" Details : If a new ldiskfs filesystem is created with the "uninit_groups" feature and only a single inode is created in a group then the "bg_unused_inodes" count is incorrectly updated. Creating a second inode in that group would update it correctly. b=13706 i=behlendorf i=valerie --- ldiskfs/ChangeLog | 54 +++++++++++++++++----- .../patches/ext3-uninit-2.6-sles10.patch | 2 +- .../patches/ext3-uninit-2.6-suse.patch | 2 +- .../patches/ext3-uninit-2.6.18.patch | 2 +- .../kernel_patches/patches/ext3-uninit-2.6.9.patch | 2 +- 5 files changed, 46 insertions(+), 16 deletions(-) diff --git a/ldiskfs/ChangeLog b/ldiskfs/ChangeLog index 9bd9d6b..cabb7c6 100644 --- a/ldiskfs/ChangeLog +++ b/ldiskfs/ChangeLog @@ -1,4 +1,45 @@ tbd Cluster File Systems, Inc. + * version 3.0.3 + +Severity : normal +Frequency : if the uninit_groups feature is enabled on ldiskfs +Bugzilla : 13706 +Description: e2fsck reports "invalid unused inodes count" +Details : If a new ldiskfs filesystem is created with the "uninit_groups" + feature and only a single inode is created in a group then the + "bg_unused_inodes" count is incorrectly updated. Creating a + second inode in that group would update it correctly. + +-------------------------------------------------------------------------------- + +2007-09-27 Cluster File Systems, Inc. + * version 3.0.2 + +Severity : enhancement +Bugzilla : 10555 +Description: Add a FIEMAP(FIle Extent MAP) ioctl for ldiskfs +Details : FIEMAP ioctl will allow an application to efficiently fetch the + extent information of a file. It can be used to map logical blocks + in a file to physical blocks in the block device. + +-------------------------------------------------------------------------------- + +2007-08-29 Cluster File Systems, Inc. + * version 3.0.1 + +Severity : major +Frequency : rare +Bugzilla : 6334 +Description: Multiple mount protection(MMP) support. +Details : This feature will protect the filesystem from being mounted more + than once simultaneously. It will also protect changes by e2fsprogs + to the filesystem if it is mounted. This assumes high importance + in a shared storage environment where multiple mounts can severely + corrupt the filesystem. + +-------------------------------------------------------------------------------- + +2007-07-30 Cluster File Systems, Inc. * version 3.0.0 * Initial release of ldiskfs as a separate package. @@ -8,16 +49,5 @@ Bugzilla : 12415 Description: Updated patchess for new RHEL4 kernel Details : Add patch ext3-unlink-race.patch Updated series file ldiskfs-2.6-rhel4.series - -Severity : normal -Bugzilla : 10657 -Description: Add journal checksum support. (ext3 part) -Details : The journal checksum feature adds two new flags i.e - JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT and - JBD2_FEATURE_COMPAT_CHECKSUM. JBD2_FEATURE_CHECKSUM flag - indicates that the commit block contains the checksum for - the blocks described by the descriptor blocks. Now commit - record can be sent to disk without waiting for descriptor - blocks to be written to disk. This behavior is controlled - using JBD2_FEATURE_ASYNC_COMMIT flag. + diff --git a/ldiskfs/kernel_patches/patches/ext3-uninit-2.6-sles10.patch b/ldiskfs/kernel_patches/patches/ext3-uninit-2.6-sles10.patch index 62b1f50..32a9810 100644 --- a/ldiskfs/kernel_patches/patches/ext3-uninit-2.6-sles10.patch +++ b/ldiskfs/kernel_patches/patches/ext3-uninit-2.6-sles10.patch @@ -392,7 +392,7 @@ Index: linux-2.6.16.27-0.9-full/fs/ext3/ialloc.c + if (EXT3_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) { + if (gdp->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) { + gdp->bg_flags &= cpu_to_le16(~EXT3_BG_INODE_UNINIT); -+ free = EXT3_INODES_PER_GROUP(sb); ++ free = 0; + } else { + free = EXT3_INODES_PER_GROUP(sb) - + le16_to_cpu(gdp->bg_itable_unused); diff --git a/ldiskfs/kernel_patches/patches/ext3-uninit-2.6-suse.patch b/ldiskfs/kernel_patches/patches/ext3-uninit-2.6-suse.patch index 8a34ea5..80bf99b8 100644 --- a/ldiskfs/kernel_patches/patches/ext3-uninit-2.6-suse.patch +++ b/ldiskfs/kernel_patches/patches/ext3-uninit-2.6-suse.patch @@ -381,7 +381,7 @@ Index: linux-2.6.5-7.283-full/fs/ext3/ialloc.c + if (EXT3_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) { + if (gdp->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) { + gdp->bg_flags &= cpu_to_le16(~EXT3_BG_INODE_UNINIT); -+ free = EXT3_INODES_PER_GROUP(sb); ++ free = 0; + } else { + free = EXT3_INODES_PER_GROUP(sb) - + le16_to_cpu(gdp->bg_itable_unused); diff --git a/ldiskfs/kernel_patches/patches/ext3-uninit-2.6.18.patch b/ldiskfs/kernel_patches/patches/ext3-uninit-2.6.18.patch index 906caf2..8f1c077 100644 --- a/ldiskfs/kernel_patches/patches/ext3-uninit-2.6.18.patch +++ b/ldiskfs/kernel_patches/patches/ext3-uninit-2.6.18.patch @@ -393,7 +393,7 @@ Index: linux-rhel5/fs/ext3/ialloc.c + if (EXT3_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) { + if (gdp->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) { + gdp->bg_flags &= cpu_to_le16(~EXT3_BG_INODE_UNINIT); -+ free = EXT3_INODES_PER_GROUP(sb); ++ free = 0; + } else { + free = EXT3_INODES_PER_GROUP(sb) - + le16_to_cpu(gdp->bg_itable_unused); diff --git a/ldiskfs/kernel_patches/patches/ext3-uninit-2.6.9.patch b/ldiskfs/kernel_patches/patches/ext3-uninit-2.6.9.patch index 2dbeb80..b956664 100644 --- a/ldiskfs/kernel_patches/patches/ext3-uninit-2.6.9.patch +++ b/ldiskfs/kernel_patches/patches/ext3-uninit-2.6.9.patch @@ -392,7 +392,7 @@ Index: linux-2.6.9-full/fs/ext3/ialloc.c + if (EXT3_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) { + if (gdp->bg_flags & cpu_to_le16(EXT3_BG_INODE_UNINIT)) { + gdp->bg_flags &= cpu_to_le16(~EXT3_BG_INODE_UNINIT); -+ free = EXT3_INODES_PER_GROUP(sb); ++ free = 0; + } else { + free = EXT3_INODES_PER_GROUP(sb) - + le16_to_cpu(gdp->bg_itable_unused); -- 1.8.3.1