Hi all, enclose you can find a patch which improves the help of the btrfs commands, updates the INSTALL file and the btrfs (command) man page.
Regarding the help of the btrfs command: - moved the "subvolume set-default" command in the "subvolume" commands group - removed a wrong new line Regarding the btrfs command man page: - renaming the command "device balance" in "filesystem balance" (thanks to Andrea Phillipp to highlight that) - adding the entry "subvolume find-new" - document the switches of the command "filesystem defrag" - document the <devid> facility of the command "filesystem resize" Regarding the INSTALL file, which was very old, I removed the reference of the old btrfsctl utility and changed the examples using the btrfs command. I removed the old (and now wrong) statement about the inability to delete a subvolume/snapshot Chris, you can pull the patch from the branch "help_cleanup" of the following repository. http://cassiopea.homelinux.net/git/btrfs-progs-unstable-all.git The patch is very simple: only updates the man page, the INSTALL file and moves some lines in the qhelp of btrfs command. Comments are welcome. Regards G.Baroncelli INSTALL | 31 ++++++++++++++++++++++--------- btrfs.c | 17 +++++++++-------- man/btrfs.8.in | 36 +++++++++++++++++++++++++++++------- 3 files changed, 60 insertions(+), 24 deletions(-) diff --git a/INSTALL b/INSTALL index 16b45a5..2c9cf1c 100644 --- a/INSTALL +++ b/INSTALL @@ -22,23 +22,34 @@ in the e2fsprogs sources, and is usually available as libuuid or e2fsprogs-devel from various distros. Building the utilities is just make ; make install. The programs go -into /usr/local/bin. The commands available are: +into /usr/local/bin. The mains commands available are: mkfs.btrfs: create a filesystem -btrfsctl: control program to create snapshots and subvolumes: - +btrfs: control program to create snapshots and subvolumes: + # mount a btrfs filesystem mount /dev/sda2 /mnt - btrfsctl -s new_subvol_name /mnt - btrfsctl -s snapshot_of_default /mnt/default - btrfsctl -s snapshot_of_new_subvol /mnt/new_subvol_name - btrfsctl -s snapshot_of_a_snapshot /mnt/snapshot_of_new_subvol + + # create a subvolume + btrfs subvolume create /mnt/new_subvol_name + + # snapshot of a subvolume + btrfs subvolume snapshot /mnt/default /mnt/snapshot_of_default + btrfs subvolume snapshot /mnt/new_subvol_name \ + /mnt/snapshot_of_new_subvol + btrfs subvolume snapshot /mnt/snapshot_of_new_subvol \ + /mnt/snapshot_of_a_snapshot + + # list of the subvolumes ls /mnt default snapshot_of_a_snapshot snapshot_of_new_subvol new_subvol_name snapshot_of_default - Snapshots and subvolumes cannot be deleted right now, but you can - rm -rf all the files and directories inside them. + # removal of a subvolume or a snapshot + btrfs subvolume delete /mn/snapshot_of_a_snapshot + + # look a the btrfs man page for further information + man btrfs btrfsck: do a limited check of the FS extent trees.</li> @@ -46,3 +57,5 @@ debug-tree: print all of the FS metadata in text form. Example: debug-tree /dev/sda2 >& big_output_file + + diff --git a/btrfs.c b/btrfs.c index 46314cf..a607786 100644 --- a/btrfs.c +++ b/btrfs.c @@ -61,6 +61,11 @@ static struct Command commands[] = { { do_subvol_list, 1, "subvolume list", "<path>\n" "List the snapshot/subvolume of a filesystem." }, + { do_set_default_subvol, 2, + "subvolume set-default", "<id> <path>\n" + "Set the subvolume of the filesystem <path> which will be mounted\n" + "as default." + }, { do_find_newer, 2, "subvolume find-new", "<path> <last_gen>\n" "List the recently modified files in a filesystem." }, @@ -68,19 +73,15 @@ static struct Command commands[] = { "filesystem defragment", "[-vcf] [-s start] [-l len] [-t size] <file>|<dir> [<file>|<dir>...]\n" "Defragment a file or a directory." }, - { do_set_default_subvol, 2, - "subvolume set-default", "<id> <path>\n" - "Set the subvolume of the filesystem <path> which will be mounted\n" - "as default." - }, { do_fssync, 1, "filesystem sync", "<path>\n" "Force a sync on the filesystem <path>." }, { do_resize, 2, - "filesystem resize", "[+/-]<newsize>[gkm]|max <filesystem>\n" + "filesystem resize", "[<devid>:][+/-]<newsize>[gkm]|max <filesystem>\n" "Resize the file system. If 'max' is passed, the filesystem\n" - "will occupe all available space on the device." + "will occupe all available space on the device. <devid> is\n" + "the id of the device which grown or will shrink." }, { do_show_filesystem, 999, "filesystem show", "[<uuid>|<label>]\n" @@ -89,7 +90,7 @@ static struct Command commands[] = { }, { do_df_filesystem, 1, "filesystem df", "<path>\n" - "Show space usage information for a mount point\n." + "Show space usage information for a mount point." }, { do_balance, 1, "filesystem balance", "<path>\n" diff --git a/man/btrfs.8.in b/man/btrfs.8.in index 26ef982..1997aa8 100644 --- a/man/btrfs.8.in +++ b/man/btrfs.8.in @@ -15,18 +15,20 @@ btrfs \- control a btrfs filesystem .PP \fBbtrfs\fP \fBsubvolume set-default\fP\fI <id> <path>\fP .PP -\fBbtrfs\fP \fBfilesystem defrag\fP\fI <file>|<dir> [<file>|<dir>...]\fP +\fBbtrfs\fP \fBsubvolume find-new\fP\fI <subvolume> <last_gen>\fP +.PP +\fBbtrfs\fP \fBfilesystem balance\fP\fI <path> \fP +.PP +\fBbtrfs\fP \fBfilesystem defrag\fP\fI [-vcf] [-s start] [-l len] [-t size] <file>|<dir> [<file>|<dir>...]\fP .PP \fBbtrfs\fP \fBfilesystem sync\fP\fI <path> \fP .PP -\fBbtrfs\fP \fBfilesystem resize\fP\fI [+/\-]<size>[gkm]|max <filesystem>\fP +\fBbtrfs\fP \fBfilesystem resize\fP\fI [<devid>:][+/\-]<size>[gkm]|max <filesystem>\fP .PP \fBbtrfs\fP \fBdevice scan\fP\fI [<device> [<device>..]]\fP .PP \fBbtrfs\fP \fBdevice show\fP\fI <dev>|<label> [<dev>|<label>...]\fP .PP -\fBbtrfs\fP \fBdevice balance\fP\fI <path> \fP -.PP \fBbtrfs\fP \fBdevice add\fP\fI <dev> [<dev>..] <path> \fP .PP \fBbtrfs\fP \fBdevice delete\fP\fI <dev> [<dev>..] <path> \fP] @@ -102,8 +104,19 @@ Set the subvolume of the filesystem \fI<path>\fR which is mounted as is returned by the \fBsubvolume list\fR command. .TP -\fBfilesystem defragment\fP\fI <file>|<dir> [<file>|<dir>...]\fR +\fBsubvolume find-new\fR\fI <subvolume> <last_gen>\fR +List the recently modified files in a subvolume, after \fI<last_gen>\fR ID. +.TP + +\fBfilesystem defragment\fP\fI [-vcf] [-s <start>] [-l <lenght>] [-t <size>] <file>|<dir> [<file>|<dir>...]\fR Defragment files and/or directories. +The switch \fB-v\fR turns on the verbose mode. +The switch \fB-c\fR sets the flag compress on. +The switch \fB-f\fR turns on the flushing of the data. +The switch \fB-s\fR sets the beginning of the range to defrag. +The switch \fB-l\fR sets the length of the range to defrag. +If the switch \fB-t\fR is passed, any extent bigger than \fB<size>\fR is +considered already defragged. .TP \fBdevice scan\fR \fI[<device> [<device>..]]\fR @@ -119,7 +132,7 @@ Force a sync for the filesystem identified by \fI<path>\fR. .\" Some wording are extracted by the resize2fs man page .\" -\fBfilesystem resize\fR\fI [+/\-]<size>[gkm]|max <path>\fR +\fBfilesystem resize\fR\fI [<devid>:][+/\-]<size>[gkm]|max <path>\fR Resize a filesystem identified by \fI<path>\fR. The \fI<size>\fR parameter specifies the new size of the filesystem. If the prefix \fI+\fR or \fI\-\fR is present the size is increased or decreased @@ -136,6 +149,9 @@ The \fBresize\fR command \fBdoes not\fR manipulate the size of underlying partition. If you wish to enlarge/reduce a filesystem, you must make sure you can expand the partition before enlarging the filesystem and shrink the partition after reducing the size of the filesystem. + +<devid> is the ID of the device which was enlarged or which will be reduced. +To know the ID of a device use the command \fBbtrfs filesystem show\fR. .TP \fBfilesystem show\fR [<uuid>|<label>]\fR @@ -143,7 +159,7 @@ Show the btrfs filesystem with some additional info. If no UUID or label is passed, \fBbtrfs\fR show info of all the btrfs filesystem. .TP -\fBdevice balance\fR \fI<path>\fR +\fBfilesystem balance\fR \fI<path>\fR Balance the chunks of the filesystem identified by \fI<path>\fR across the devices. .TP @@ -154,6 +170,12 @@ Add device(s) to the filesystem identified by \fI<path>\fR. \fBdevice delete\fR\fI <dev> [<dev>..] <path>\fR Remove device(s) from a filesystem identified by \fI<path>\fR. + +If the devices are used in RAID mode, it is not possible to reduce the +number of the device less than the minimun number (2 devices for RADI1, +4 devices for RAID10 ...). In this case to replace a failed device, it +is necessary first add a new one. + .PP .SH EXIT STATUS On Saturday, 09 October, 2010, Jérôme Poulin wrote: > On 13.09.2010 21:23, Goffredo Baroncelli wrote: > > Hi all, > > > > enclose you can find a patch which improve the help of the btrfs > > commands and its man page. Regarding the help of the btrfs > > command: - moved the "subvolume set-default" command in the > > "subvolume" commands group - removed a wrong new line > > > > Regarding the btrfs command man page: - renaming the command > > "device balance" in "filesystem balance" (thanks to Andrea Phillipp > > to highlight that) - adding the entry "subvolume find-new" > > > > Could you also document the defragment switches? At the moment, they > are only documented in the code, -c to compress, -f to force and -v > for verbose (even if verbose does not add any output other than the > version). > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreij...@inwind.it> Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512
signature.asc
Description: This is a digitally signed message part.