Patchwork mke2fs: Disallow bigalloc with with bs < 4096

login
register
mail settings
Submitter Lukas Czerner
Date April 3, 2013, 1:51 p.m.
Message ID <1364997099-22590-1-git-send-email-lczerner@redhat.com>
Download mbox | patch
Permalink /patch/233472/
State Changes Requested
Headers show

Comments

Lukas Czerner - April 3, 2013, 1:51 p.m.
Currently there is nothing preventing user to create file system with
bigalloc feature enabled and block size smaller than 4096 Bytes. However
such combination does not make much sense at all because the whole point
of bigalloc is to have bigger allocation units.

This patch disallow such combination.

Thanks!
-Lukas
---
 misc/mke2fs.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
Theodore Ts'o - April 3, 2013, 2:35 p.m.
On Wed, Apr 03, 2013 at 03:51:39PM +0200, Lukas Czerner wrote:
> Currently there is nothing preventing user to create file system with
> bigalloc feature enabled and block size smaller than 4096 Bytes. However
> such combination does not make much sense at all because the whole point
> of bigalloc is to have bigger allocation units.
> 
> This patch disallow such combination.

This makes sense by default but I do see a point in allowing it for
testing purposes --- specifically, it allows us to verify that
bigalloc works on architectures such as PowerPC and Itanium where page
size is greater than the 4k block size.  So maybe a developer mode set
via mke2fs.conf?

Another option would be to enforce that we only support bigalloc file
systems where the blocksize == pagesize, but that means we wouldn't be
able to mount 4k bigalloc file systems on architectures with a 8k or
16k page size.

						- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lukas Czerner - April 3, 2013, 2:47 p.m.
On Wed, 3 Apr 2013, Theodore Ts'o wrote:

> Date: Wed, 3 Apr 2013 10:35:54 -0400
> From: Theodore Ts'o <tytso@mit.edu>
> To: Lukas Czerner <lczerner@redhat.com>
> Cc: linux-ext4@vger.kernel.org
> Subject: Re: [PATCH] mke2fs: Disallow bigalloc with with bs < 4096
> 
> On Wed, Apr 03, 2013 at 03:51:39PM +0200, Lukas Czerner wrote:
> > Currently there is nothing preventing user to create file system with
> > bigalloc feature enabled and block size smaller than 4096 Bytes. However
> > such combination does not make much sense at all because the whole point
> > of bigalloc is to have bigger allocation units.
> > 
> > This patch disallow such combination.
> 
> This makes sense by default but I do see a point in allowing it for
> testing purposes --- specifically, it allows us to verify that
> bigalloc works on architectures such as PowerPC and Itanium where page
> size is greater than the 4k block size.  So maybe a developer mode set
> via mke2fs.conf?

Yes, I though about that and I wanted to know what the general
opinion is. I'll prepare the patch which makes this tunable,
but restricted by default.

> 
> Another option would be to enforce that we only support bigalloc file
> systems where the blocksize == pagesize, but that means we wouldn't be
> able to mount 4k bigalloc file systems on architectures with a 8k or
> 16k page size.

Unfortunately we can't do that for the reasons you mentioned.

Thanks!
-Lukas

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

Patch

diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index bbf477a..1f33a20 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -1924,6 +1924,12 @@  profile_error:
 				  "smaller than the block size.\n"));
 			exit(1);
 		}
+		if (EXT2_BLOCK_SIZE(&fs_param) < 4096) {
+			com_err(program_name, 0,
+				_("Bigalloc feature is not supported with "
+				  "block size smaller than 4096 B"));
+			exit(1);
+		}
 	} else if (cluster_size) {
 		com_err(program_name, 0,
 			_("specifying a cluster size requires the "