+ ext2-support-large-blocksize-up-to-pagesize.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     ext2: support large blocksize up to PAGESIZE
has been added to the -mm tree.  Its filename is
     ext2-support-large-blocksize-up-to-pagesize.patch

*** Remember to use Documentation/SubmitChecklist when testing your code ***

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: ext2: support large blocksize up to PAGESIZE
From: Takashi Sato <sho@xxxxxxxxxxxxxx>

This patch set supports large block size(>4k, <=64k) in ext2, just
enlarging the block size limit.  But it is NOT possible to have 64kB
blocksize on ext2 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]  ext2: enlarge blocksize
         - Allow blocksize up to pagesize

  [2/2]  ext2: 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 ext2, and able to handle empty directory block.

Signed-off-by: Takashi Sato <sho@xxxxxxxxxxxxxx>
Signed-off-by: Mingming Cao <cmm@xxxxxxxxxx>
Acked-by: Christoph Lameter <clameter@xxxxxxx>
Cc: <linux-ext4@xxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---


diff -puN fs/ext2/super.c~ext2-support-large-blocksize-up-to-pagesize fs/ext2/super.c
--- a/fs/ext2/super.c~ext2-support-large-blocksize-up-to-pagesize
+++ a/fs/ext2/super.c
@@ -852,7 +852,8 @@ static int ext2_fill_super(struct super_
 		brelse(bh);
 
 		if (!sb_set_blocksize(sb, blocksize)) {
-			printk(KERN_ERR "EXT2-fs: blocksize too small for device.\n");
+			printk(KERN_ERR "EXT2-fs: bad blocksize %d.\n",
+				blocksize);
 			goto failed_sbi;
 		}
 
diff -puN include/linux/ext2_fs.h~ext2-support-large-blocksize-up-to-pagesize include/linux/ext2_fs.h
--- a/include/linux/ext2_fs.h~ext2-support-large-blocksize-up-to-pagesize
+++ a/include/linux/ext2_fs.h
@@ -87,8 +87,8 @@ static inline struct ext2_sb_info *EXT2_
  * Macro-instructions used to manage several block sizes
  */
 #define EXT2_MIN_BLOCK_SIZE		1024
-#define	EXT2_MAX_BLOCK_SIZE		4096
-#define EXT2_MIN_BLOCK_LOG_SIZE		  10
+#define EXT2_MAX_BLOCK_SIZE		65536
+#define EXT2_MIN_BLOCK_LOG_SIZE		10
 #ifdef __KERNEL__
 # define EXT2_BLOCK_SIZE(s)		((s)->s_blocksize)
 #else
_

Patches currently in -mm which might be from sho@xxxxxxxxxxxxxx are

ext2-support-large-blocksize-up-to-pagesize.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux