* [PATCH] ext4: FLEX_BG Kernel support v2.
@ 2007-09-21 14:06 Jose R. Santos
2007-09-21 20:29 ` Badari Pulavarty
0 siblings, 1 reply; 4+ messages in thread
From: Jose R. Santos @ 2007-09-21 14:06 UTC (permalink / raw)
To: akpm; +Cc: linux-ext4, linux-kernel
From: Jose R. Santos <jrs@us.ibm.com>
ext4: FLEX_BG Kernel support v2.
This feature relaxes check restrictions on where each block groups meta data is
located within the storage media. This allows for the allocation of bitmaps or
inode tables outside the block group boundaries in cases where bad blocks forces
us to look for new blocks which the owning block group can not satisfy. This
will also allow for new meta-data allocation schemes to improve performance and
scalability.
Signed-off-by: Jose R. Santos <jrs@us.ibm.com>
--
fs/ext4/super.c | 9 +++++++--
include/linux/ext4_fs.h | 4 +++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 4550b83..dbce81d 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1248,13 +1248,17 @@ static int ext4_check_descriptors (struct super_block * sb)
ext4_fsblk_t inode_table;
struct ext4_group_desc * gdp = NULL;
int desc_block = 0;
+ int flexbg_flag = 0;
int i;
+ if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_FLEX_BG))
+ flexbg_flag = 1;
+
ext4_debug ("Checking group descriptors");
for (i = 0; i < sbi->s_groups_count; i++)
{
- if (i == sbi->s_groups_count - 1)
+ if (i == sbi->s_groups_count - 1 || flexbg_flag)
last_block = ext4_blocks_count(sbi->s_es) - 1;
else
last_block = first_block +
@@ -1291,7 +1295,8 @@ static int ext4_check_descriptors (struct super_block * sb)
i, inode_table);
return 0;
}
- first_block += EXT4_BLOCKS_PER_GROUP(sb);
+ if (!flexbg_flag)
+ first_block += EXT4_BLOCKS_PER_GROUP(sb);
gdp = (struct ext4_group_desc *)
((__u8 *)gdp + EXT4_DESC_SIZE(sb));
}
diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h
index cdee7aa..d53e167 100644
--- a/include/linux/ext4_fs.h
+++ b/include/linux/ext4_fs.h
@@ -702,13 +702,15 @@ static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino)
#define EXT4_FEATURE_INCOMPAT_META_BG 0x0010
#define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 /* extents support */
#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
+#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
#define EXT4_FEATURE_COMPAT_SUPP EXT2_FEATURE_COMPAT_EXT_ATTR
#define EXT4_FEATURE_INCOMPAT_SUPP (EXT4_FEATURE_INCOMPAT_FILETYPE| \
EXT4_FEATURE_INCOMPAT_RECOVER| \
EXT4_FEATURE_INCOMPAT_META_BG| \
EXT4_FEATURE_INCOMPAT_EXTENTS| \
- EXT4_FEATURE_INCOMPAT_64BIT)
+ EXT4_FEATURE_INCOMPAT_64BIT| \
+ EXT4_FEATURE_INCOMPAT_FLEX_BG)
#define EXT4_FEATURE_RO_COMPAT_SUPP (EXT4_FEATURE_RO_COMPAT_SPARSE_SUPER| \
EXT4_FEATURE_RO_COMPAT_LARGE_FILE| \
EXT4_FEATURE_RO_COMPAT_DIR_NLINK | \
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] ext4: FLEX_BG Kernel support v2.
2007-09-21 14:06 [PATCH] ext4: FLEX_BG Kernel support v2 Jose R. Santos
@ 2007-09-21 20:29 ` Badari Pulavarty
2007-09-21 20:49 ` Jose R. Santos
0 siblings, 1 reply; 4+ messages in thread
From: Badari Pulavarty @ 2007-09-21 20:29 UTC (permalink / raw)
To: Jose R. Santos; +Cc: Andrew Morton, ext4, lkml
On Fri, 2007-09-21 at 09:06 -0500, Jose R. Santos wrote:
> From: Jose R. Santos <jrs@us.ibm.com>
>
> ext4: FLEX_BG Kernel support v2.
>
> @@ -702,13 +702,15 @@ static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino)
> #define EXT4_FEATURE_INCOMPAT_META_BG 0x0010
> #define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 /* extents support */
> #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
> +#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
Any reason why 0x100 is skipped ?
Thanks,
Badari
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ext4: FLEX_BG Kernel support v2.
2007-09-21 20:29 ` Badari Pulavarty
@ 2007-09-21 20:49 ` Jose R. Santos
2007-09-21 20:59 ` Eric Sandeen
0 siblings, 1 reply; 4+ messages in thread
From: Jose R. Santos @ 2007-09-21 20:49 UTC (permalink / raw)
To: Badari Pulavarty; +Cc: Andrew Morton, ext4, lkml
On Fri, 21 Sep 2007 13:29:27 -0700
Badari Pulavarty <pbadari@gmail.com> wrote:
> On Fri, 2007-09-21 at 09:06 -0500, Jose R. Santos wrote:
> > From: Jose R. Santos <jrs@us.ibm.com>
> >
> > ext4: FLEX_BG Kernel support v2.
> >
>
> > @@ -702,13 +702,15 @@ static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino)
> > #define EXT4_FEATURE_INCOMPAT_META_BG 0x0010
> > #define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 /* extents support */
> > #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
> > +#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
>
> Any reason why 0x100 is skipped ?
>
> Thanks,
> Badari
>
Because 0x0100 is reserved for EXT4_FEATURE_INCOMPAT_MMP in e2fsprogs.
-JRS
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ext4: FLEX_BG Kernel support v2.
2007-09-21 20:49 ` Jose R. Santos
@ 2007-09-21 20:59 ` Eric Sandeen
0 siblings, 0 replies; 4+ messages in thread
From: Eric Sandeen @ 2007-09-21 20:59 UTC (permalink / raw)
To: Jose R. Santos; +Cc: Badari Pulavarty, Andrew Morton, ext4, lkml
Jose R. Santos wrote:
> On Fri, 21 Sep 2007 13:29:27 -0700
> Badari Pulavarty <pbadari@gmail.com> wrote:
>
>> On Fri, 2007-09-21 at 09:06 -0500, Jose R. Santos wrote:
>>> From: Jose R. Santos <jrs@us.ibm.com>
>>>
>>> ext4: FLEX_BG Kernel support v2.
>>>
>>> @@ -702,13 +702,15 @@ static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino)
>>> #define EXT4_FEATURE_INCOMPAT_META_BG 0x0010
>>> #define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 /* extents support */
>>> #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
>>> +#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
>> Any reason why 0x100 is skipped ?
>>
>> Thanks,
>> Badari
>>
>
> Because 0x0100 is reserved for EXT4_FEATURE_INCOMPAT_MMP in e2fsprogs.
and we know that how? :) I'd at least put a comment into the kernel
code so it doesn't get taken, later.
-Eric
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-09-21 21:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-21 14:06 [PATCH] ext4: FLEX_BG Kernel support v2 Jose R. Santos
2007-09-21 20:29 ` Badari Pulavarty
2007-09-21 20:49 ` Jose R. Santos
2007-09-21 20:59 ` Eric Sandeen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).