diff mbox

btrfs-progs: mkfs.btrfs documentation: clarify current restrictions of sectorsize, nodesize and leafsize

Message ID 1373576177-9272-1-git-send-email-koen.de.wit@oracle.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Koen De Wit July 11, 2013, 8:56 p.m. UTC
Commit 8d082fb727ac11930ea20bf1612e334ea7c2b697 (Btrfs: do not mount when
we have a sectorsize unequal to PAGE_SIZE) requires the sectorsize to be
equal to the pagesize for the filesystem to be mountable.

The nodesize and leafsize should be equal, and not larger than 65536.

Adding this information to the manpage and usage instructions of mkfs.btrfs.
---
 man/mkfs.btrfs.8.in |   12 +++++++++---
 mkfs.c              |    2 +-
 2 files changed, 10 insertions(+), 4 deletions(-)

Comments

David Sterba Aug. 6, 2013, 12:21 a.m. UTC | #1
On Thu, Jul 11, 2013 at 10:56:17PM +0200, Koen De Wit wrote:
> Commit 8d082fb727ac11930ea20bf1612e334ea7c2b697 (Btrfs: do not mount when
> we have a sectorsize unequal to PAGE_SIZE) requires the sectorsize to be
> equal to the pagesize for the filesystem to be mountable.
> 
> The nodesize and leafsize should be equal, and not larger than 65536.
> 
> Adding this information to the manpage and usage instructions of mkfs.btrfs.

Please don't forget to add your signed-off-by line.

> --- a/man/mkfs.btrfs.8.in
> +++ b/man/mkfs.btrfs.8.in
> @@ -46,7 +46,8 @@ there is a filesystem or partition table on the device already.
>  .TP
>  \fB\-l\fR, \fB\-\-leafsize \fIsize\fR
>  Specify the leaf size, the least data item in which btrfs stores data. The
> -default value is the page size.
> +default value is the page size. Must be a multiple of the sectorsize, but
> +not larger than 65536. Should be equal to the nodesize.

As implemented now, setting one of leafsize/nodesize will set both, so
it's not necessary to specify both. The help text should reflect that.

> -Specify the nodesize. By default the value is set to the pagesize.
> +Specify the nodesize. By default the value is set to the pagesize. Must be a
> +multiple of the sectorsize, but not larger than 65536. Should be equal to the
> +leafsize.

>  .TP
>  \fB\-s\fR, \fB\-\-sectorsize \fIsize\fR
> -Specify the sectorsize, the minimum block allocation.
> +Specify the sectorsize, the minimum block allocation. The default value is
> +the pagesize. If the sectorsize differs from the pagesize, the created
> +filesystem cannot be mounted by the current kernel. Therefore it is not
> +recommended to use this option.

"... unless you know what you're doing." :)

> --- a/mkfs.c
> +++ b/mkfs.c
> @@ -319,7 +319,7 @@ static void print_usage(void)
>  	fprintf(stderr, "\t -m --metadata metadata profile, values like data profile\n");
>  	fprintf(stderr, "\t -M --mixed mix metadata and data together\n");
>  	fprintf(stderr, "\t -n --nodesize size of btree nodes\n");
> -	fprintf(stderr, "\t -s --sectorsize min block allocation\n");
> +	fprintf(stderr, "\t -s --sectorsize min block allocation (not mountable by current kernel)\n");

What if I'm on a ppc64 box? This message will be confusing. I'd stick
'may' into (...)

I'll fix the text wording when committing the patch, no need to resend.

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

Patch

diff --git a/man/mkfs.btrfs.8.in b/man/mkfs.btrfs.8.in
index a3f1503..b2a4e73 100644
--- a/man/mkfs.btrfs.8.in
+++ b/man/mkfs.btrfs.8.in
@@ -46,7 +46,8 @@  there is a filesystem or partition table on the device already.
 .TP
 \fB\-l\fR, \fB\-\-leafsize \fIsize\fR
 Specify the leaf size, the least data item in which btrfs stores data. The
-default value is the page size.
+default value is the page size. Must be a multiple of the sectorsize, but
+not larger than 65536. Should be equal to the nodesize.
 .TP
 \fB\-L\fR, \fB\-\-label \fIname\fR
 Specify a label for the filesystem.
@@ -66,10 +67,15 @@  larger filesystems.  It is recommended for use with filesystems
 of 1 GiB or smaller.
 .TP
 \fB\-n\fR, \fB\-\-nodesize \fIsize\fR
-Specify the nodesize. By default the value is set to the pagesize.
+Specify the nodesize. By default the value is set to the pagesize. Must be a
+multiple of the sectorsize, but not larger than 65536. Should be equal to the
+leafsize.
 .TP
 \fB\-s\fR, \fB\-\-sectorsize \fIsize\fR
-Specify the sectorsize, the minimum block allocation.
+Specify the sectorsize, the minimum block allocation. The default value is
+the pagesize. If the sectorsize differs from the pagesize, the created
+filesystem cannot be mounted by the current kernel. Therefore it is not
+recommended to use this option.
 .TP
 \fB\-r\fR, \fB\-\-rootdir \fIrootdir\fR
 Specify a directory to copy into the newly created fs.
diff --git a/mkfs.c b/mkfs.c
index b412b7e..9f75c58 100644
--- a/mkfs.c
+++ b/mkfs.c
@@ -319,7 +319,7 @@  static void print_usage(void)
 	fprintf(stderr, "\t -m --metadata metadata profile, values like data profile\n");
 	fprintf(stderr, "\t -M --mixed mix metadata and data together\n");
 	fprintf(stderr, "\t -n --nodesize size of btree nodes\n");
-	fprintf(stderr, "\t -s --sectorsize min block allocation\n");
+	fprintf(stderr, "\t -s --sectorsize min block allocation (not mountable by current kernel)\n");
 	fprintf(stderr, "\t -r --rootdir the source directory\n");
 	fprintf(stderr, "\t -K --nodiscard do not perform whole device TRIM\n");
 	fprintf(stderr, "\t -V --version print the mkfs.btrfs version and exit\n");