login
Header Space

 
 

[PATCH 1/2] ext4: Support large blocksize up to PAGESIZE

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: ext4 development <linux-ext4@...>, <linux-kernel@...>
Cc: <sho@...>, Jan Kara <jack@...>, <clameter@...>, <tytso@...>
Date: Monday, October 1, 2007 - 8:34 pm

Support large blocksize up to PAGESIZE (max 64KB) for ext4. 

From: Takashi Sato <sho@tnes.nec.co.jp>

This patch set supports large block size(>4k, <=64k) in ext4,
just enlarging the block size limit. But it is NOT possible to have 64kB
blocksize on ext4 without some changes to the directory handling
code.  The reason is that an empty 64kB directory block would have a
rec_len == (__u16)2^16 == 0, and this would cause an error to be hit in
the filesystem.  The proposed solution is treat 64k rec_len
with a an impossible value like rec_len = 0xffff to handle this.

The Patch-set consists of the following 2 patches.
  [1/2]  ext4: enlarge blocksize
         - Allow blocksize up to pagesize

  [2/2]  ext4: fix rec_len overflow
         - prevent rec_len from overflow with 64KB blocksize

Now on 64k page ppc64 box runs with this patch set we could create a 64k
block size ext4dev, and able to handle empty directory block.
Patch consider to be merge to 2.6.24-rc1.

Signed-off-by: Takashi Sato <sho@tnes.nec.co.jp>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
---

 fs/ext4/super.c         |    5 +++++
 include/linux/ext4_fs.h |    4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)


diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 619db84..d8bb279 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1548,6 +1548,11 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent)
 		goto out_fail;
 	}
 
+	if (!sb_set_blocksize(sb, blocksize)) {
+		printk(KERN_ERR "EXT4-fs: bad blocksize %d.\n", blocksize);
+		goto out_fail;
+	}
+
 	/*
 	 * The ext4 superblock will not be buffer aligned for other than 1kB
 	 * block sizes.  We need to calculate the offset from buffer start.
diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h
index f9881b6..d15a15e 100644
--- a/include/linux/ext4_fs.h
+++ b/include/linux/ext4_fs.h
@@ -77,8 +77,8 @@
  * Macro-instructions used to manage several block sizes
  */
 #define EXT4_MIN_BLOCK_SIZE		1024
-#define	EXT4_MAX_BLOCK_SIZE		4096
-#define EXT4_MIN_BLOCK_LOG_SIZE		  10
+#define	EXT4_MAX_BLOCK_SIZE		65536
+#define EXT4_MIN_BLOCK_LOG_SIZE		10
 #ifdef __KERNEL__
 # define EXT4_BLOCK_SIZE(s)		((s)->s_blocksize)
 #else


-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[31/36] Large Blocksize: Core piece, , (Tue Aug 28, 3:06 pm)
Re: [31/36] Large Blocksize: Core piece, Mingming Cao, (Wed Aug 29, 8:11 pm)
Re: [31/36] Large Blocksize: Core piece, Christoph Lameter, (Wed Aug 29, 8:12 pm)
[RFC 1/4] Large Blocksize support for Ext2/3/4, Mingming Cao, (Wed Aug 29, 8:47 pm)
Re: [PATCH 2/2] ext2: Avoid rec_len overflow with 64KB block..., Christoph Lameter, (Thu Oct 18, 5:03 am)
[PATCH 1/2] ext4: Support large blocksize up to PAGESIZE, Mingming Cao, (Mon Oct 1, 8:34 pm)
Re: [RFC 1/4] Large Blocksize support for Ext2/3/4, Christoph Lameter, (Wed Aug 29, 8:59 pm)
Re: [RFC 1/2] JBD: slab management support for large block(&..., Christoph Hellwig, (Sun Sep 2, 11:28 am)
[PATCH] JBD slab cleanups, Mingming Cao, (Fri Sep 14, 2:53 pm)
Re: [PATCH] JBD slab cleanups, Mingming Cao, (Mon Sep 17, 3:29 pm)
Re: [PATCH] JBD slab cleanups, Badari Pulavarty, (Mon Sep 17, 6:01 pm)
Re: [PATCH] JBD slab cleanups, Mingming Cao, (Mon Sep 17, 6:57 pm)
Re: [PATCH] JBD slab cleanups, Christoph Hellwig, (Tue Sep 18, 5:04 am)
Re: [PATCH] JBD slab cleanups, Mingming Cao, (Tue Sep 18, 12:35 pm)
Re: [PATCH] JBD slab cleanups, Dave Kleikamp, (Tue Sep 18, 2:04 pm)
Re: [PATCH] JBD slab cleanups, Mingming Cao, (Tue Sep 18, 9:00 pm)
Re: [PATCH] JBD slab cleanups, Andrew Morton, (Tue Sep 18, 10:19 pm)
Re: [PATCH] JBD slab cleanups, Mingming Cao, (Wed Sep 19, 3:15 pm)
Re: [PATCH] JBD slab cleanups, Andreas Dilger, (Wed Sep 19, 3:48 pm)
Re: [PATCH] JBD slab cleanups, Mingming Cao, (Wed Sep 19, 6:03 pm)
[PATCH] JBD/ext34 cleanups: convert to kzalloc, Mingming Cao, (Fri Sep 21, 7:13 pm)
Re: [PATCH] JBD/ext34 cleanups: convert to kzalloc, Andrew Morton, (Wed Sep 26, 3:54 pm)
Re: [PATCH] JBD/ext34 cleanups: convert to kzalloc, Mingming Cao, (Wed Sep 26, 5:05 pm)
[PATCH] JBD2/ext4 naming cleanup, Mingming Cao, (Fri Sep 21, 7:32 pm)
Re: [PATCH] JBD slab cleanups, Dave Kleikamp, (Wed Sep 19, 3:26 pm)
Re: [PATCH] JBD slab cleanups, Dave Kleikamp, (Wed Sep 19, 3:28 pm)
Re: [PATCH] JBD slab cleanups, Mingming Cao, (Wed Sep 19, 4:47 pm)
[PATCH] JBD: use GFP_NOFS in kmalloc, Mingming Cao, (Wed Sep 19, 3:22 pm)
Re: [PATCH] JBD: use GFP_NOFS in kmalloc, Andreas Dilger, (Thu Sep 20, 12:25 am)
Re: [PATCH] JBD: use GFP_NOFS in kmalloc, Andrew Morton, (Wed Sep 19, 5:34 pm)
Re: [PATCH] JBD: use GFP_NOFS in kmalloc, Mingming Cao, (Wed Sep 19, 5:55 pm)
Re: [PATCH] JBD slab cleanups, Christoph Hellwig, (Mon Sep 17, 3:34 pm)
Re: [PATCH] JBD slab cleanups, Christoph Lameter, (Fri Sep 14, 2:58 pm)
Re: [RFC 1/4] Large Blocksize support for Ext2/3/4, Mingming Cao, (Fri Aug 31, 8:01 pm)
speck-geostationary