* [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size @ 2011-02-09 13:03 Lukas Czerner 2011-02-09 13:03 ` [PATCH v2 2/2] mke2fs: use binary units in the man page Lukas Czerner ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Lukas Czerner @ 2011-02-09 13:03 UTC (permalink / raw) To: linux-ext4; +Cc: tytso, lczerner, adilger (v2: do not spell units - mebibytes etc... - but rather use just abbrev.) mke2fs and resize2fs allows specifying filesystem size as a parameter, former called as blocks-count. However it has been a little bit messy so this commit fixes it mainly by updating man pages. We can not specify filesystem size in blocks count without specifying blocksize as well. It is because we need blocks count to determine filesystem type, and we need filesystem type to determine blocksize. So it should not be allowed, however due to compatibility reason it should be still possible, so at least print warning message for now, so we can easily restrict that later. Filesystem size can be specified using units as suffixes. This was not documented for mke2fs, so this commits adds proper documentation into mke2fs man page. For the sake of completeness add 'b' (blocks count) unit. Signed-off-by: Lukas Czerner <lczerner@redhat.com> --- lib/e2p/parse_num.c | 9 +++++++++ misc/mke2fs.8.in | 32 ++++++++++++++++++++++++++------ resize/resize2fs.8.in | 19 ++++++------------- 3 files changed, 41 insertions(+), 19 deletions(-) diff --git a/lib/e2p/parse_num.c b/lib/e2p/parse_num.c index 83a329a..5e7924b 100644 --- a/lib/e2p/parse_num.c +++ b/lib/e2p/parse_num.c @@ -10,6 +10,7 @@ */ #include "e2p.h" +#include "../misc/nls-enable.h" #include <stdlib.h> @@ -37,6 +38,14 @@ unsigned long long parse_num_blocks2(const char *arg, int log_block_size) num >>= (1+log_block_size); break; case '\0': + case 'b': + if (!log_block_size) { + fprintf(stderr, + _("Warning: You can not specify blocks count " + "without specifying block size '-b'. Will " + "assume kilobytes instead of blocks count!.\n" + )); + } break; default: return 0; diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in index 2eead17..e093be0 100644 --- a/misc/mke2fs.8.in +++ b/misc/mke2fs.8.in @@ -108,7 +108,7 @@ mke2fs \- create an ext2/ext3/ext4 filesystem ] .I device [ -.I blocks-count +.I filesystem-size ] @JDEV@.sp @JDEV@.B "mke2fs \-O journal_dev" @@ -136,7 +136,7 @@ mke2fs \- create an ext2/ext3/ext4 filesystem @JDEV@] @JDEV@.I external-journal @JDEV@[ -@JDEV@.I blocks-count +@JDEV@.I filesystem-size @JDEV@] .SH DESCRIPTION .B mke2fs @@ -145,10 +145,30 @@ partition. .I device is the special file corresponding to the device (e.g .IR /dev/hdXX ). -.I blocks-count -is the number of blocks on the device. If omitted, -.B mke2fs -automagically figures the file system size. If called as +.I filesystem-size +is the size of the filesystem you want to create. +If no units are specified, the units of the +.I filesystem-size +parameter shall be the blocks count of the filesystem. Keep in mind that +you can not specify +.I filesystem-size +in blocks count without specifying the blocksize as well. This will be +allowed for now (1024 byte blocks will be assumed) +due to compatibility reasons, however it may be restricted +in the future. +Optionally, the +.I filesystem-size +parameter may be suffixed by one of the following units +designators: 'b', 's', 'K', 'M', 'G', or 'T', +for blocks count, 512 byte sectors, KiB (2^10 Bytes), MiB (2^20 Bytes), +GiB (2^30 Bytes), or TiB (2^40 Bytes) respectively, which are binary (power-of-2), +not decimal, units. The +.I filesystem-size +may never be larger than the size of the partition. +If +.I filesystem-size +parameter is not specified, it will default to the size of the partition. +If called as .B mkfs.ext3 a journal is created as if the .B \-j diff --git a/resize/resize2fs.8.in b/resize/resize2fs.8.in index e02345d..769fd14 100644 --- a/resize/resize2fs.8.in +++ b/resize/resize2fs.8.in @@ -38,27 +38,20 @@ The parameter specifies the requested new size of the filesystem. If no units are specified, the units of the .I size -parameter shall be the filesystem blocksize of the filesystem. +parameter shall be the blocks count of the filesystem. Optionally, the .I size -parameter may be suffixed by one of the following the units -designators: 's', 'K', 'M', or 'G', -for 512 byte sectors, kilobytes, megabytes, or gigabytes, respectively. -The +parameter may be suffixed by one of the following the units +designators: 'b', 's', 'K', 'M', 'G', or 'T', +for blocks count, 512 byte sectors, KiB (2^10 Bytes), MiB (2^20 Bytes), +GiB (2^30 Bytes), or TiB (2^40 Bytes) respectively, which are binary (power-of-2), +not decimal, units. The .I size of the filesystem may never be larger than the size of the partition. If .I size parameter is not specified, it will default to the size of the partition. .PP -Note: when kilobytes is used above, I mean -.IR real , -power-of-2 kilobytes, (i.e., 1024 bytes), which some politically correct -folks insist should be the stupid-sounding ``kibibytes''. The same -holds true for megabytes, also sometimes known as ``mebibytes'', or -gigabytes, as the amazingly silly ``gibibytes''. Makes you want to -gibber, doesn't it? -.PP The .B resize2fs program does not manipulate the size of partitions. If you wish to enlarge -- 1.7.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 2/2] mke2fs: use binary units in the man page 2011-02-09 13:03 [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size Lukas Czerner @ 2011-02-09 13:03 ` Lukas Czerner 2011-05-19 20:33 ` Eric Sandeen 2011-05-16 13:49 ` [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size Lukas Czerner 2011-05-19 20:32 ` Eric Sandeen 2 siblings, 1 reply; 7+ messages in thread From: Lukas Czerner @ 2011-02-09 13:03 UTC (permalink / raw) To: linux-ext4; +Cc: tytso, lczerner, adilger (v2: do not spell units - mebibytes etc... - but rather use just abbrev.) Decimal units (kilobyte 10^3, megabyte 10^6 etc...) were used in mke2fs manual page, however they was really meant to be binary units (kibibyte 2^10, mebibyte 2^20 etc...), so change the man pages to reflect that fact, even if it sounds weird. Signed-off-by: Lukas Czerner <lczerner@redhat.com> --- misc/mke2fs.8.in | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in index e093be0..7933dca 100644 --- a/misc/mke2fs.8.in +++ b/misc/mke2fs.8.in @@ -354,9 +354,9 @@ The following journal options are supported: .BI size= journal-size Create an internal journal (i.e., stored inside the filesystem) of size .I journal-size -megabytes. +MiB. The size of the journal must be at least 1024 filesystem blocks -(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.) +(i.e., 1MiB if using 1024 byte blocks, 4MiB if using 4096 byte blocks, etc.) and may be no more than 102,400 filesystem blocks. @JDEV@.TP @JDEV@.BI device= external-journal @@ -633,21 +633,21 @@ using a comma separated list. If this option is is not specified, .B mke2fs will pick a single default usage type based on the size of the filesystem to -be created. If the filesystem size is less than or equal to 3 megabytes, +be created. If the filesystem size is less than or equal to 3 MiB, .B mke2fs will use the filesystem type .IR floppy . If the filesystem size is greater than 3 but less than or equal to -512 megabytes, +512 MiB, .BR mke2fs (8) will use the filesystem type .IR small . -If the filesystem size is greater than or equal to 4 terabytes but less than -16 terabytes, +If the filesystem size is greater than or equal to 4 TiB but less than +16 TiB, .BR mke2fs (8) will use the filesystem type .IR big . -If the filesystem size is greater than or equal to 16 terabytes, +If the filesystem size is greater than or equal to 16 TiB, .BR mke2fs (8) will use the filesystem type .IR huge . -- 1.7.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] mke2fs: use binary units in the man page 2011-02-09 13:03 ` [PATCH v2 2/2] mke2fs: use binary units in the man page Lukas Czerner @ 2011-05-19 20:33 ` Eric Sandeen 0 siblings, 0 replies; 7+ messages in thread From: Eric Sandeen @ 2011-05-19 20:33 UTC (permalink / raw) To: Lukas Czerner; +Cc: linux-ext4, tytso, adilger On 2/9/11 7:03 AM, Lukas Czerner wrote: > (v2: do not spell units - mebibytes etc... - but rather use just abbrev.) > > Decimal units (kilobyte 10^3, megabyte 10^6 etc...) were used in > mke2fs manual page, however they was really meant to be binary units > (kibibyte 2^10, mebibyte 2^20 etc...), so change the man pages to > reflect that fact, even if it sounds weird. > > Signed-off-by: Lukas Czerner <lczerner@redhat.com> Specificity is good, IMHO. Reviewed-by: Eric Sandeen <sandeen@redhat.com> > --- > misc/mke2fs.8.in | 14 +++++++------- > 1 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in > index e093be0..7933dca 100644 > --- a/misc/mke2fs.8.in > +++ b/misc/mke2fs.8.in > @@ -354,9 +354,9 @@ The following journal options are supported: > .BI size= journal-size > Create an internal journal (i.e., stored inside the filesystem) of size > .I journal-size > -megabytes. > +MiB. > The size of the journal must be at least 1024 filesystem blocks > -(i.e., 1MB if using 1k blocks, 4MB if using 4k blocks, etc.) > +(i.e., 1MiB if using 1024 byte blocks, 4MiB if using 4096 byte blocks, etc.) > and may be no more than 102,400 filesystem blocks. > @JDEV@.TP > @JDEV@.BI device= external-journal > @@ -633,21 +633,21 @@ using a comma separated list. > If this option is is not specified, > .B mke2fs > will pick a single default usage type based on the size of the filesystem to > -be created. If the filesystem size is less than or equal to 3 megabytes, > +be created. If the filesystem size is less than or equal to 3 MiB, > .B mke2fs > will use the filesystem type > .IR floppy . > If the filesystem size is greater than 3 but less than or equal to > -512 megabytes, > +512 MiB, > .BR mke2fs (8) > will use the filesystem type > .IR small . > -If the filesystem size is greater than or equal to 4 terabytes but less than > -16 terabytes, > +If the filesystem size is greater than or equal to 4 TiB but less than > +16 TiB, > .BR mke2fs (8) > will use the filesystem type > .IR big . > -If the filesystem size is greater than or equal to 16 terabytes, > +If the filesystem size is greater than or equal to 16 TiB, > .BR mke2fs (8) > will use the filesystem type > .IR huge . ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size 2011-02-09 13:03 [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size Lukas Czerner 2011-02-09 13:03 ` [PATCH v2 2/2] mke2fs: use binary units in the man page Lukas Czerner @ 2011-05-16 13:49 ` Lukas Czerner 2011-05-19 20:32 ` Eric Sandeen 2 siblings, 0 replies; 7+ messages in thread From: Lukas Czerner @ 2011-05-16 13:49 UTC (permalink / raw) To: Lukas Czerner; +Cc: linux-ext4, tytso, adilger On Wed, 9 Feb 2011, Lukas Czerner wrote: > (v2: do not spell units - mebibytes etc... - but rather use just abbrev.) > > mke2fs and resize2fs allows specifying filesystem size as a parameter, > former called as blocks-count. However it has been a little bit messy so > this commit fixes it mainly by updating man pages. > > We can not specify filesystem size in blocks count without specifying > blocksize as well. It is because we need blocks count to determine > filesystem type, and we need filesystem type to determine blocksize. So > it should not be allowed, however due to compatibility reason it should > be still possible, so at least print warning message for now, so we can > easily restrict that later. > > Filesystem size can be specified using units as suffixes. This was not > documented for mke2fs, so this commits adds proper documentation into > mke2fs man page. > > For the sake of completeness add 'b' (blocks count) unit. ping > > Signed-off-by: Lukas Czerner <lczerner@redhat.com> > --- > lib/e2p/parse_num.c | 9 +++++++++ > misc/mke2fs.8.in | 32 ++++++++++++++++++++++++++------ > resize/resize2fs.8.in | 19 ++++++------------- > 3 files changed, 41 insertions(+), 19 deletions(-) > > diff --git a/lib/e2p/parse_num.c b/lib/e2p/parse_num.c > index 83a329a..5e7924b 100644 > --- a/lib/e2p/parse_num.c > +++ b/lib/e2p/parse_num.c > @@ -10,6 +10,7 @@ > */ > > #include "e2p.h" > +#include "../misc/nls-enable.h" > > #include <stdlib.h> > > @@ -37,6 +38,14 @@ unsigned long long parse_num_blocks2(const char *arg, int log_block_size) > num >>= (1+log_block_size); > break; > case '\0': > + case 'b': > + if (!log_block_size) { > + fprintf(stderr, > + _("Warning: You can not specify blocks count " > + "without specifying block size '-b'. Will " > + "assume kilobytes instead of blocks count!.\n" > + )); > + } > break; > default: > return 0; > diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in > index 2eead17..e093be0 100644 > --- a/misc/mke2fs.8.in > +++ b/misc/mke2fs.8.in > @@ -108,7 +108,7 @@ mke2fs \- create an ext2/ext3/ext4 filesystem > ] > .I device > [ > -.I blocks-count > +.I filesystem-size > ] > @JDEV@.sp > @JDEV@.B "mke2fs \-O journal_dev" > @@ -136,7 +136,7 @@ mke2fs \- create an ext2/ext3/ext4 filesystem > @JDEV@] > @JDEV@.I external-journal > @JDEV@[ > -@JDEV@.I blocks-count > +@JDEV@.I filesystem-size > @JDEV@] > .SH DESCRIPTION > .B mke2fs > @@ -145,10 +145,30 @@ partition. > .I device > is the special file corresponding to the device (e.g > .IR /dev/hdXX ). > -.I blocks-count > -is the number of blocks on the device. If omitted, > -.B mke2fs > -automagically figures the file system size. If called as > +.I filesystem-size > +is the size of the filesystem you want to create. > +If no units are specified, the units of the > +.I filesystem-size > +parameter shall be the blocks count of the filesystem. Keep in mind that > +you can not specify > +.I filesystem-size > +in blocks count without specifying the blocksize as well. This will be > +allowed for now (1024 byte blocks will be assumed) > +due to compatibility reasons, however it may be restricted > +in the future. > +Optionally, the > +.I filesystem-size > +parameter may be suffixed by one of the following units > +designators: 'b', 's', 'K', 'M', 'G', or 'T', > +for blocks count, 512 byte sectors, KiB (2^10 Bytes), MiB (2^20 Bytes), > +GiB (2^30 Bytes), or TiB (2^40 Bytes) respectively, which are binary (power-of-2), > +not decimal, units. The > +.I filesystem-size > +may never be larger than the size of the partition. > +If > +.I filesystem-size > +parameter is not specified, it will default to the size of the partition. > +If called as > .B mkfs.ext3 > a journal is created as if the > .B \-j > diff --git a/resize/resize2fs.8.in b/resize/resize2fs.8.in > index e02345d..769fd14 100644 > --- a/resize/resize2fs.8.in > +++ b/resize/resize2fs.8.in > @@ -38,27 +38,20 @@ The > parameter specifies the requested new size of the filesystem. > If no units are specified, the units of the > .I size > -parameter shall be the filesystem blocksize of the filesystem. > +parameter shall be the blocks count of the filesystem. > Optionally, the > .I size > -parameter may be suffixed by one of the following the units > -designators: 's', 'K', 'M', or 'G', > -for 512 byte sectors, kilobytes, megabytes, or gigabytes, respectively. > -The > +parameter may be suffixed by one of the following the units > +designators: 'b', 's', 'K', 'M', 'G', or 'T', > +for blocks count, 512 byte sectors, KiB (2^10 Bytes), MiB (2^20 Bytes), > +GiB (2^30 Bytes), or TiB (2^40 Bytes) respectively, which are binary (power-of-2), > +not decimal, units. The > .I size > of the filesystem may never be larger than the size of the partition. > If > .I size > parameter is not specified, it will default to the size of the partition. > .PP > -Note: when kilobytes is used above, I mean > -.IR real , > -power-of-2 kilobytes, (i.e., 1024 bytes), which some politically correct > -folks insist should be the stupid-sounding ``kibibytes''. The same > -holds true for megabytes, also sometimes known as ``mebibytes'', or > -gigabytes, as the amazingly silly ``gibibytes''. Makes you want to > -gibber, doesn't it? > -.PP > The > .B resize2fs > program does not manipulate the size of partitions. If you wish to enlarge > -- ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size 2011-02-09 13:03 [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size Lukas Czerner 2011-02-09 13:03 ` [PATCH v2 2/2] mke2fs: use binary units in the man page Lukas Czerner 2011-05-16 13:49 ` [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size Lukas Czerner @ 2011-05-19 20:32 ` Eric Sandeen 2011-05-20 9:07 ` Lukas Czerner 2 siblings, 1 reply; 7+ messages in thread From: Eric Sandeen @ 2011-05-19 20:32 UTC (permalink / raw) To: Lukas Czerner; +Cc: linux-ext4, tytso, adilger On 2/9/11 7:03 AM, Lukas Czerner wrote: > (v2: do not spell units - mebibytes etc... - but rather use just abbrev.) > > mke2fs and resize2fs allows specifying filesystem size as a parameter, > former called as blocks-count. However it has been a little bit messy so > this commit fixes it mainly by updating man pages. > > We can not specify filesystem size in blocks count without specifying > blocksize as well. It is because we need blocks count to determine > filesystem type, and we need filesystem type to determine blocksize. So how does blocks count determine filesystem type? (because we need room for the journal?) This isn't clear from the commit message... > it should not be allowed, however due to compatibility reason it should > be still possible, so at least print warning message for now, so we can > easily restrict that later. > > Filesystem size can be specified using units as suffixes. This was not > documented for mke2fs, so this commits adds proper documentation into > mke2fs man page. > > For the sake of completeness add 'b' (blocks count) unit. Some notes below > Signed-off-by: Lukas Czerner <lczerner@redhat.com> > --- > lib/e2p/parse_num.c | 9 +++++++++ > misc/mke2fs.8.in | 32 ++++++++++++++++++++++++++------ > resize/resize2fs.8.in | 19 ++++++------------- > 3 files changed, 41 insertions(+), 19 deletions(-) > > diff --git a/lib/e2p/parse_num.c b/lib/e2p/parse_num.c > index 83a329a..5e7924b 100644 > --- a/lib/e2p/parse_num.c > +++ b/lib/e2p/parse_num.c > @@ -10,6 +10,7 @@ > */ > > #include "e2p.h" > +#include "../misc/nls-enable.h" > > #include <stdlib.h> > > @@ -37,6 +38,14 @@ unsigned long long parse_num_blocks2(const char *arg, int log_block_size) > num >>= (1+log_block_size); > break; > case '\0': > + case 'b': > + if (!log_block_size) { > + fprintf(stderr, > + _("Warning: You can not specify blocks count " > + "without specifying block size '-b'. Will " > + "assume kilobytes instead of blocks count!.\n" > + )); > + } > break; > default: > return 0; > diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in > index 2eead17..e093be0 100644 > --- a/misc/mke2fs.8.in > +++ b/misc/mke2fs.8.in > @@ -108,7 +108,7 @@ mke2fs \- create an ext2/ext3/ext4 filesystem > ] > .I device > [ > -.I blocks-count > +.I filesystem-size > ] > @JDEV@.sp > @JDEV@.B "mke2fs \-O journal_dev" > @@ -136,7 +136,7 @@ mke2fs \- create an ext2/ext3/ext4 filesystem > @JDEV@] > @JDEV@.I external-journal > @JDEV@[ > -@JDEV@.I blocks-count > +@JDEV@.I filesystem-size > @JDEV@] > .SH DESCRIPTION > .B mke2fs > @@ -145,10 +145,30 @@ partition. > .I device > is the special file corresponding to the device (e.g > .IR /dev/hdXX ). > -.I blocks-count > -is the number of blocks on the device. If omitted, > -.B mke2fs > -automagically figures the file system size. If called as > +.I filesystem-size > +is the size of the filesystem you want to create. > +If no units are specified, the units of the > +.I filesystem-size > +parameter shall be the blocks count of the filesystem. Keep in mind that should be "shall be equal to the block size of the filesystem" right? (blocks count implies the number of blocks in the fs, not the size of each block) Oh, I see. The number does represent the count of blocks. Therefore the -unit- of that number is the blocksize. So saying "the units ... shall be the blocks count" isn't correct. > +you can not specify how about: you should not specify ... > +.I filesystem-size > +in blocks count without specifying the blocksize as well. This will be > +allowed for now (1024 byte blocks will be assumed) > +due to compatibility reasons, however it may be restricted > +in the future. and then something like: "If blocksize is not specified on the commandline and filesystem-size is specified in block units, 1024-byte blocks will be assumed for this purpose, regardless of the filesystem blocksize ultimately chosen by mke2fs." (which is what it does today, right?) > +Optionally, the > +.I filesystem-size > +parameter may be suffixed by one of the following units > +designators: 'b', 's', 'K', 'M', 'G', or 'T', > +for blocks count, 512 byte sectors, KiB (2^10 Bytes), MiB (2^20 Bytes), for blocks, 512 byte sectors .... > +GiB (2^30 Bytes), or TiB (2^40 Bytes) respectively, which are binary (power-of-2), > +not decimal, units. The > +.I filesystem-size > +may never be larger than the size of the partition. > +If If the > +.I filesystem-size > +parameter is not specified, it will default to the size of the partition. > +If called as > .B mkfs.ext3 > a journal is created as if the > .B \-j > diff --git a/resize/resize2fs.8.in b/resize/resize2fs.8.in > index e02345d..769fd14 100644 > --- a/resize/resize2fs.8.in > +++ b/resize/resize2fs.8.in > @@ -38,27 +38,20 @@ The > parameter specifies the requested new size of the filesystem. > If no units are specified, the units of the > .I size > -parameter shall be the filesystem blocksize of the filesystem. > +parameter shall be the blocks count of the filesystem. shall be equal to the filesystem blocksize ... > Optionally, the > .I size > -parameter may be suffixed by one of the following the units > -designators: 's', 'K', 'M', or 'G', > -for 512 byte sectors, kilobytes, megabytes, or gigabytes, respectively. > -The > +parameter may be suffixed by one of the following the units > +designators: 'b', 's', 'K', 'M', 'G', or 'T', > +for blocks count, 512 byte sectors, KiB (2^10 Bytes), MiB (2^20 Bytes), for blocks, 512 byte sectors .... > +GiB (2^30 Bytes), or TiB (2^40 Bytes) respectively, which are binary (power-of-2), > +not decimal, units. The > .I size > of the filesystem may never be larger than the size of the partition. > If > .I size > parameter is not specified, it will default to the size of the partition. > .PP > -Note: when kilobytes is used above, I mean > -.IR real , > -power-of-2 kilobytes, (i.e., 1024 bytes), which some politically correct > -folks insist should be the stupid-sounding ``kibibytes''. The same > -holds true for megabytes, also sometimes known as ``mebibytes'', or > -gigabytes, as the amazingly silly ``gibibytes''. Makes you want to > -gibber, doesn't it? > -.PP > The > .B resize2fs > program does not manipulate the size of partitions. If you wish to enlarge ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size 2011-05-19 20:32 ` Eric Sandeen @ 2011-05-20 9:07 ` Lukas Czerner 2011-05-20 12:22 ` Lukas Czerner 0 siblings, 1 reply; 7+ messages in thread From: Lukas Czerner @ 2011-05-20 9:07 UTC (permalink / raw) To: Eric Sandeen; +Cc: Lukas Czerner, linux-ext4, tytso, adilger On Thu, 19 May 2011, Eric Sandeen wrote: > On 2/9/11 7:03 AM, Lukas Czerner wrote: > > (v2: do not spell units - mebibytes etc... - but rather use just abbrev.) > > > > mke2fs and resize2fs allows specifying filesystem size as a parameter, > > former called as blocks-count. However it has been a little bit messy so > > this commit fixes it mainly by updating man pages. > > > > We can not specify filesystem size in blocks count without specifying > > blocksize as well. It is because we need blocks count to determine > > filesystem type, and we need filesystem type to determine blocksize. So > > how does blocks count determine filesystem type? (because we need room > for the journal?) This isn't clear from the commit message... It was not my intention to explain specifically why we need block count to determine fs type etc. But the "type" is probably not the best name. The thing is that, we need it to determine filesystem "type" like "floppy,small,default,big,huge" and then use appropriate settings from mke2fs.conf. DO you think it is worth it to mention that in the descritpion ? > > > it should not be allowed, however due to compatibility reason it should > > be still possible, so at least print warning message for now, so we can > > easily restrict that later. > > > > Filesystem size can be specified using units as suffixes. This was not > > documented for mke2fs, so this commits adds proper documentation into > > mke2fs man page. > > > > For the sake of completeness add 'b' (blocks count) unit. > > Some notes below > > > Signed-off-by: Lukas Czerner <lczerner@redhat.com> > > --- > > lib/e2p/parse_num.c | 9 +++++++++ > > misc/mke2fs.8.in | 32 ++++++++++++++++++++++++++------ > > resize/resize2fs.8.in | 19 ++++++------------- > > 3 files changed, 41 insertions(+), 19 deletions(-) > > > > diff --git a/lib/e2p/parse_num.c b/lib/e2p/parse_num.c > > index 83a329a..5e7924b 100644 > > --- a/lib/e2p/parse_num.c > > +++ b/lib/e2p/parse_num.c > > @@ -10,6 +10,7 @@ > > */ > > > > #include "e2p.h" > > +#include "../misc/nls-enable.h" > > > > #include <stdlib.h> > > > > @@ -37,6 +38,14 @@ unsigned long long parse_num_blocks2(const char *arg, int log_block_size) > > num >>= (1+log_block_size); > > break; > > case '\0': > > + case 'b': > > + if (!log_block_size) { > > + fprintf(stderr, > > + _("Warning: You can not specify blocks count " > > + "without specifying block size '-b'. Will " > > + "assume kilobytes instead of blocks count!.\n" > > + )); > > + } > > break; > > default: > > return 0; > > diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in > > index 2eead17..e093be0 100644 > > --- a/misc/mke2fs.8.in > > +++ b/misc/mke2fs.8.in > > @@ -108,7 +108,7 @@ mke2fs \- create an ext2/ext3/ext4 filesystem > > ] > > .I device > > [ > > -.I blocks-count > > +.I filesystem-size > > ] > > @JDEV@.sp > > @JDEV@.B "mke2fs \-O journal_dev" > > @@ -136,7 +136,7 @@ mke2fs \- create an ext2/ext3/ext4 filesystem > > @JDEV@] > > @JDEV@.I external-journal > > @JDEV@[ > > -@JDEV@.I blocks-count > > +@JDEV@.I filesystem-size > > @JDEV@] > > .SH DESCRIPTION > > .B mke2fs > > @@ -145,10 +145,30 @@ partition. > > .I device > > is the special file corresponding to the device (e.g > > .IR /dev/hdXX ). > > -.I blocks-count > > -is the number of blocks on the device. If omitted, > > -.B mke2fs > > -automagically figures the file system size. If called as > > +.I filesystem-size > > +is the size of the filesystem you want to create. > > +If no units are specified, the units of the > > +.I filesystem-size > > +parameter shall be the blocks count of the filesystem. Keep in mind that > > should be "shall be equal to the block size of the filesystem" right? > > (blocks count implies the number of blocks in the fs, not the size of each block) > > Oh, I see. > > The number does represent the count of blocks. > Therefore the -unit- of that number is the blocksize. > > So saying "the units ... shall be the blocks count" isn't correct. Hmm, I think the -unit- is really "block". I would say that filesystem is, for example, 1024 blocks big (or long?) - hence the unit is blocks. > > > +you can not specify > > how about: > > you should not specify ... Good point, thanks:). We are trying to be polite and user-friendly:) > > > +.I filesystem-size > > +in blocks count without specifying the blocksize as well. This will be > > +allowed for now (1024 byte blocks will be assumed) > > +due to compatibility reasons, however it may be restricted > > +in the future. > > and then something like: "If blocksize is not specified on the > commandline and filesystem-size is specified in block units, > 1024-byte blocks will be assumed for this purpose, regardless > of the filesystem blocksize ultimately chosen by mke2fs." > > (which is what it does today, right?) yes it is, I'll add the sentence thanks. > > > +Optionally, the > > +.I filesystem-size > > +parameter may be suffixed by one of the following units > > +designators: 'b', 's', 'K', 'M', 'G', or 'T', > > +for blocks count, 512 byte sectors, KiB (2^10 Bytes), MiB (2^20 Bytes), > > for blocks, 512 byte sectors .... > > > +GiB (2^30 Bytes), or TiB (2^40 Bytes) respectively, which are binary (power-of-2), > > +not decimal, units. The > > +.I filesystem-size > > +may never be larger than the size of the partition. > > +If > > If the > > > +.I filesystem-size > > +parameter is not specified, it will default to the size of the partition. > > +If called as > > .B mkfs.ext3 > > a journal is created as if the > > .B \-j > > diff --git a/resize/resize2fs.8.in b/resize/resize2fs.8.in > > index e02345d..769fd14 100644 > > --- a/resize/resize2fs.8.in > > +++ b/resize/resize2fs.8.in > > @@ -38,27 +38,20 @@ The > > parameter specifies the requested new size of the filesystem. > > If no units are specified, the units of the > > .I size > > -parameter shall be the filesystem blocksize of the filesystem. > > +parameter shall be the blocks count of the filesystem. > > shall be equal to the filesystem blocksize ... > > > Optionally, the > > .I size > > -parameter may be suffixed by one of the following the units > > -designators: 's', 'K', 'M', or 'G', > > -for 512 byte sectors, kilobytes, megabytes, or gigabytes, respectively. > > -The > > +parameter may be suffixed by one of the following the units > > +designators: 'b', 's', 'K', 'M', 'G', or 'T', > > +for blocks count, 512 byte sectors, KiB (2^10 Bytes), MiB (2^20 Bytes), > > for blocks, 512 byte sectors .... > > > +GiB (2^30 Bytes), or TiB (2^40 Bytes) respectively, which are binary (power-of-2), > > +not decimal, units. The > > .I size > > of the filesystem may never be larger than the size of the partition. > > If > > .I size > > parameter is not specified, it will default to the size of the partition. > > .PP > > -Note: when kilobytes is used above, I mean > > -.IR real , > > -power-of-2 kilobytes, (i.e., 1024 bytes), which some politically correct > > -folks insist should be the stupid-sounding ``kibibytes''. The same > > -holds true for megabytes, also sometimes known as ``mebibytes'', or > > -gigabytes, as the amazingly silly ``gibibytes''. Makes you want to > > -gibber, doesn't it? > > -.PP > > The > > .B resize2fs > > program does not manipulate the size of partitions. If you wish to enlarge > > Thanks a lot for the review Eric! I'll repost ASAP. -Lukas ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size 2011-05-20 9:07 ` Lukas Czerner @ 2011-05-20 12:22 ` Lukas Czerner 0 siblings, 0 replies; 7+ messages in thread From: Lukas Czerner @ 2011-05-20 12:22 UTC (permalink / raw) To: Lukas Czerner; +Cc: Eric Sandeen, linux-ext4, tytso, adilger On Fri, 20 May 2011, Lukas Czerner wrote: > > > diff --git a/resize/resize2fs.8.in b/resize/resize2fs.8.in > > > index e02345d..769fd14 100644 > > > --- a/resize/resize2fs.8.in > > > +++ b/resize/resize2fs.8.in > > > @@ -38,27 +38,20 @@ The > > > parameter specifies the requested new size of the filesystem. > > > If no units are specified, the units of the > > > .I size > > > -parameter shall be the filesystem blocksize of the filesystem. > > > +parameter shall be the blocks count of the filesystem. > > > > shall be equal to the filesystem blocksize ... > > I actually shall be the blocks count, not blocksize. Resizefs knows what the blocksize is already, it just needs to know what the new size should be. Thanks! -Lukas ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-05-20 12:22 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-02-09 13:03 [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size Lukas Czerner 2011-02-09 13:03 ` [PATCH v2 2/2] mke2fs: use binary units in the man page Lukas Czerner 2011-05-19 20:33 ` Eric Sandeen 2011-05-16 13:49 ` [PATCH v2 1/2] e2fsprogs: Fix how we treat user-spcified filesystem size Lukas Czerner 2011-05-19 20:32 ` Eric Sandeen 2011-05-20 9:07 ` Lukas Czerner 2011-05-20 12:22 ` Lukas Czerner
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.