Goffredo Baroncelli
2010-Feb-19 20:12 UTC
[RFC] btrfs: a new tool to manage a btrfs filesystem
Hi all, on the basis of the suggestion received, I update my btrfs tool. The main changes are: - removed the short form of the command (like ''-C'') - deployed the "multi level" command (i.e.: btrfs snapshot create) - split the source in three files. This because the new parses are quite big (about 295 lines; for example btrfsctl.c are only 239 lines). The "multi level" command parser is quite flexible. They accept the full- length command (btrfs subvolume create) and a contract form (btrfs subvol cr). The commands may be arbitrary shortly (even 1 chars) but they have to be un- ambiguous. For example - btrfs s s -> OK (matches ''btrfs subvolume snapshot'' only) - btrfs dev s -> FAIL (matches both ''btrfs dev show'' and ''btrfs dev scan'') The parser highlights which part of the command are ambiguous. This is a RFC because there is no agreement about the name of the command. I am proposing the following structure: btrfs <object> <action> where <object> are: - subvolume (valid action: create, delete, snapshot, list [not implemented]) - filesystem (valid action: defrag, sync, resize [not implemented]) - device (valid action: add, delete, scan, show, balance) You can find the source at http://cassiopea.homelinux.net/git/btrfs-command.git (commit 3deec45d18879d60b4032dc1f8895d7b7e1211ec, remember to switch to the "remotes/origin/multi-level-command" branch (I hate git!!!) BR G.Baroncelli ---- $ git diff remotes/origin/orig | diffstat Makefile | 6 btrfs.c | 73 ++++++ btrfs_cmds.c | 587 +++++++++++++++++++++++++++++++++++++++++++[...] btrfs_cmds.h | 30 ++ btrfs_cmds_parse.c | 296 +++++++++++++++++++++++++ man/Makefile | 5 man/btrfs.8.in | 148 ++++++++++++ 13 files changed, 1291 insertions(+), 2 deletions(-) ---- $ ./btrfs Usage: btrfs subvolume snapshot [<dest>/]<name> Create a writeble snapshot of the subvolume <source> with the name <name> in the <dest> directory. btrfs subvolume delete <subvolume> Delete the subvolume <subvolume>. btrfs subvolume create [<dest>/]<name> Create a subvolume in <dest> (or the current directory if not passed). btrfs filesystem defrag <file>|<dir> [<file>|<dir>...] Defragment a file or a directory. btrfs device scan [<device> [<device>..] Scan all device for or the passed device for a btrfs filesystem. btrfs filesystem sync <path> Force a fs sync on the filesystem <path> btrfs filesystem resize [+/-]<newsize>[gkm]|max <filesystem> Resize the file system. If ''max'' is passed, the filesystem will occupe all available space on the device. btrfs device show [<dev>|<label>...] Show the btrfs devices btrfs device balance <path> Balance the chunk across the device btrfs device add <dev> [<dev>..] <path> Add a device to a filesystem btrfs device delete <dev> [<dev>..] <path> Remove a device from a filesystem btrfs help|--help|-h Show the help. Btrfs v0.19-22-g07a97f0-dirty ---- $ man man/btrfs.8.in | cat BTRFS(8) btrfs BTRFS(8) NAME btrfs - control a btrfs filesystem SYNOPSIS btrfs subvolume snapshot <source> [<dest>/]<name> btrfs subvolume delete <subvolume> btrfs subvolume create [<dest>/]<name> btrfs filesystem defrag <file>|<dir> [<file>|<dir>...] btrfs filesystem fssync <path> btrfs filesystem resize [+/-]<size>[gkm]|max <filesystem> btrfs device scan [<device> [<device>..]] btrfs device show <dev>|<label> [<dev>|<label>...] btrfs device balance <path> btrfs device add <dev> [<dev>..] <path> btrfs device delete <dev> [<dev>..] <path> ] btrfs help|--help|-h DESCRIPTION btrfs is used to control the filesystem and the files and directo‐ ries stored. It is the tool to create or destroy a new snapshot or a new subvolume for the filesystem, to defrag a file or a directory, to flush the dato to the disk, to resize the filesystem, to scan the device. It is possible to abbreviate the commands unless the commands are ambiguous. For example: it is possible to run btrfs sub snaps instead of btrfs subvolume snapshot. But btrfs dev s is not allowed, because dev s may be interpreted both as device show and as device scan. In this case btrfs returns an error. If a command is terminated by --help , the relevant help is showed. If the passed command matches more commands, the help of all the matched commands are showed. For example btrfs dev --help shows the help of all device* command. COMMANDS subvolume snapshot <source> [<dest>/]<name> Create a writeble snapshot of the subvolume <source> with the name <name> in the <dest> directory. If <source> is not a subvolume, btrfs returns an error. subvolume delete <subvolume> Delete the subvolume <subvolume>. If <subvolume> is not a subvolume, btrfs returns an error. subvolume create [<dest>/]<name> Create a subvolume in <dest> (or in the current directory if <dest> is not passed). filesystem defrag <file>|<dir> [<file>|<dir>...] Defragment files and/or directories. device scan [<device> [<device>..]] Scan devices for a btrfs filesystem. If no devices are passed, btrfs scans all the block devices. filesystem fssync <path> Force a sync for the filesystem identified by <path>. filesystem resize [+/-]<size>[gkm]|max <filesystem> Resize a file system identified by <path>. The <size> param‐ eter specifies the new size of the filesystem. If the prefix + or - is present the size is increased or decreased by the quantity <size>. If no units are specified, the unit of the <size> parameter is the byte. Optionally, the size parameter may be suffixed by one of the following the units designa‐ tors: ''K'', ''M'', or ''G'', kilobytes, megabytes, or gigabytes, respectively. If ''max'' is passed, the filesystem will occupy all available space on the volume(s). The resize command does not manipulate the size of underlying partitions. If you wish to enlarge/reduce a filesystem, you must make sure you can expand/reduce the size of the parti‐ tion also. device show [<dev>|<label>...] Show the btrfs devices with some additional info. If no devices or labels are passed, btrfs scans all the block devices. device balance|-b <path> Balance the chunk of the filesystem identified by <path> across the devices. device add <dev> [<dev>..] <path> Add device(s) to the filesystem identified by <path>. device delete <dev> [<dev>..] <path> Remove device(s) from a filesystem identified by <path>. EXIT STATUS btrfs returns a zero exist status if it succeeds. Non zero is returned in case of failure. AVAILABILITY btrfs is part of btrfs-progs. Btrfs filesystem is currently under heavy development, and not suitable for any uses other than bench‐ marking and review. Please refer to the btrfs wiki http://btrfs.wiki.kernel.org for further details. SEE ALSO mkfs.btrfs(8) btrfs BTRFS(8) -- gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijackATinwind.it> Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512
On Fri, Feb 19, 2010 at 12:12 PM, Goffredo Baroncelli <kreijack@gmail.com> wrote:> Hi all, > > on the basis of the suggestion received, I update my btrfs tool. > > The main changes are: > - removed the short form of the command (like ''-C'') > - deployed the "multi level" command (i.e.: btrfs snapshot create) > - split the source in three files. This because the new parses are quite big > (about 295 lines; for example btrfsctl.c are only 239 lines). > > The "multi level" command parser is quite flexible. They accept the full- > length command (btrfs subvolume create) and a contract form (btrfs subvol cr). > The commands may be arbitrary shortly (even 1 chars) but they have to be un- > ambiguous. For example > - btrfs s s -> OK (matches ''btrfs subvolume snapshot'' only) > - btrfs dev s -> FAIL (matches both ''btrfs dev show'' and > ''btrfs dev scan'') > > The parser highlights which part of the command are ambiguous. > > This is a RFC because there is no agreement about the name of the command. > I am proposing the following structure: > > btrfs <object> <action> > > where <object> are: > - subvolume (valid action: create, delete, snapshot, list [not implemented]) > - filesystem (valid action: defrag, sync, resize [not implemented]) > - device (valid action: add, delete, scan, show, balance) > > You can find the source at > > http://cassiopea.homelinux.net/git/btrfs-command.git > > (commit 3deec45d18879d60b4032dc1f8895d7b7e1211ec, remember to switch to the > "remotes/origin/multi-level-command" branch (I hate git!!!) > > > BR > G.Baroncelli > ---- > > $ git diff remotes/origin/orig | diffstat > Makefile | 6 > btrfs.c | 73 ++++++ > btrfs_cmds.c | 587 +++++++++++++++++++++++++++++++++++++++++++[...] > btrfs_cmds.h | 30 ++ > btrfs_cmds_parse.c | 296 +++++++++++++++++++++++++ > man/Makefile | 5 > man/btrfs.8.in | 148 ++++++++++++ > 13 files changed, 1291 insertions(+), 2 deletions(-) > > ---- > $ ./btrfs > Usage: > btrfs subvolume snapshot [<dest>/]<name> > Create a writeble snapshot of the subvolume <source> with > the name <name> in the <dest> directory. > btrfs subvolume delete <subvolume> > Delete the subvolume <subvolume>. > btrfs subvolume create [<dest>/]<name> > Create a subvolume in <dest> (or the current directory if > not passed). > btrfs filesystem defrag <file>|<dir> [<file>|<dir>...] > Defragment a file or a directory. > btrfs device scan [<device> [<device>..] > Scan all device for or the passed device for a btrfs > filesystem. > btrfs filesystem sync <path> > Force a fs sync on the filesystem <path> > btrfs filesystem resize [+/-]<newsize>[gkm]|max <filesystem> > Resize the file system. If ''max'' is passed, the filesystem > will occupe all available space on the device. > btrfs device show [<dev>|<label>...] > Show the btrfs devices > btrfs device balance <path> > Balance the chunk across the device > btrfs device add <dev> [<dev>..] <path> > Add a device to a filesystem > btrfs device delete <dev> [<dev>..] <path> > Remove a device from a filesystem > > btrfs help|--help|-h > Show the help. > > Btrfs v0.19-22-g07a97f0-dirty > > ---- > > $ man man/btrfs.8.in | cat > BTRFS(8) btrfs BTRFS(8) > > > > NAME > btrfs - control a btrfs filesystem > > SYNOPSIS > btrfs subvolume snapshot <source> [<dest>/]<name> > > btrfs subvolume delete <subvolume> > > btrfs subvolume create [<dest>/]<name> > > btrfs filesystem defrag <file>|<dir> [<file>|<dir>...] > > btrfs filesystem fssync <path> > > btrfs filesystem resize [+/-]<size>[gkm]|max <filesystem> > > btrfs device scan [<device> [<device>..]] > > btrfs device show <dev>|<label> [<dev>|<label>...] > > btrfs device balance <path> > > btrfs device add <dev> [<dev>..] <path> > > btrfs device delete <dev> [<dev>..] <path> ] > > > btrfs help|--help|-h > > DESCRIPTION > btrfs is used to control the filesystem and the files and directo‐ > ries stored. It is the tool to create or destroy a new snapshot or a-create or destroy a new snapshot +create or destroy a snapshot> new subvolume for the filesystem, to defrag a file or a directory,-new subvolume for the filesystem, to defrag a file or a directory +subvolume for the filesystem, defrag a file or a directory> to flush the dato to the disk, to resize the filesystem, to scan the > device.-to flush the dato to the disk, to resize the filesystem, to scan the +flush the data to the disk, resize the filesystem, scan the> > It is possible to abbreviate the commands unless the commands are > ambiguous. For example: it is possible to run btrfs sub snaps > instead of btrfs subvolume snapshot. But btrfs dev s is not > allowed, because dev s may be interpreted both as device show and as > device scan. In this case btrfs returns an error. > > If a command is terminated by --help , the relevant help is showed. > If the passed command matches more commands, the help of all the > matched commands are showed. For example btrfs dev --help shows the > help of all device* command. >Several parts above have more than one space between words, and less than two spaces between sentences.> > COMMANDS > subvolume snapshot <source> [<dest>/]<name> > Create a writeble snapshot of the subvolume <source> with the > name <name> in the <dest> directory. If <source> is not a > subvolume, btrfs returns an error. >-Create a writeble snapshot of the subvolume <source> with the +Create a writeable snapshot of the subvolume <source> with the> > subvolume delete <subvolume> > Delete the subvolume <subvolume>. If <subvolume> is not a > subvolume, btrfs returns an error. > > > subvolume create [<dest>/]<name> > Create a subvolume in <dest> (or in the current directory if > <dest> is not passed). > > > filesystem defrag <file>|<dir> [<file>|<dir>...] > Defragment files and/or directories. >-filesystem defrag <file>|<dir> [<file>|<dir>...] +filesystem defragment <file>|<dir> [<file>|<dir>...] Since the commands can be arbitrarily shortened, might as well spell the full command out.> > device scan [<device> [<device>..]] > Scan devices for a btrfs filesystem. If no devices are > passed, btrfs scans all the block devices. > > > filesystem fssync <path> > Force a sync for the filesystem identified by <path>. >-filesystem fssync <path> +filesystem sync <path> You have done away with specifying what it is working on. I think that''s best, it just needs good error messages to handle the unimplemented cases at the moment. I would also rename "fssync" to "sync".> > > filesystem resize [+/-]<size>[gkm]|max <filesystem>-filesystem resize [+/-]<size>[gkm]|max <filesystem> +filesystem resize [+/-]<size>[gkm]|max <dev>> Resize a file system identified by <path>. The <size> param‐-Resize a file system identified +Resize a filesystem identified> eter specifies the new size of the filesystem. If the prefix > + or - is present the size is increased or decreased by the > quantity <size>. If no units are specified, the unit of the > <size> parameter is the byte. Optionally, the size parameter-<size> parameter is the byte. +<size> parameter defaults to bytes.> may be suffixed by one of the following the units designa‐ > tors: ''K'', ''M'', or ''G'', kilobytes, megabytes, or gigabytes, > respectively. > > If ''max'' is passed, the filesystem will occupy all available > space on the volume(s).-space on the volume(s). +space on the block device specified.> > The resize command does not manipulate the size of underlying > partitions. If you wish to enlarge/reduce a filesystem, you > must make sure you can expand/reduce the size of the parti‐ > tion also. >There are multiple ways to resize a btrfs filesystem. You can add add or remove devices or shrink or enlarge the devices the filesystem is already on. This operation only works on one block device at a time so I think it should be under device instead of filesystem.> > device show [<dev>|<label>...] > Show the btrfs devices with some additional info. If no > devices or labels are passed, btrfs scans all the block > devices. > > > device balance|-b <path> > Balance the chunk of the filesystem identified by <path> > across the devices. >I think this is a bit ambiguous. While true, it is "balancing the filesystem across devices" and "btrfs device balance" is quite descriptive, it is working against a path and not a block device for its argument. I think that just tips the scales enough to put it under filesystem instead of device.> > device add <dev> [<dev>..] <path> > Add device(s) to the filesystem identified by <path>. > > > device delete <dev> [<dev>..] <path> > Remove device(s) from a filesystem identified by <path>. > > EXIT STATUS > btrfs returns a zero exist status if it succeeds. Non zero is > returned in case of failure. > > > AVAILABILITY > btrfs is part of btrfs-progs. Btrfs filesystem is currently under > heavy development, and not suitable for any uses other than bench‐ > marking and review. Please refer to the btrfs wiki > http://btrfs.wiki.kernel.org for further details. > > SEE ALSO > mkfs.btrfs(8) > > > > btrfs BTRFS(8) > > > -- > gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijackATinwind.it> > Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512 >-- 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
Goffredo Baroncelli
2010-Feb-20 10:48 UTC
Re: [RFC] btrfs: a new tool to manage a btrfs filesystem
Hi Mike, Thanks, I implemented all your suggestion except the one related to the resize command. These patches doesn''t address problems related to btrfs itself, and now the interface of the btrfs function is based on the filesystem and not on the device. But I agree with you that today if a btrfs filesystem relies on more than one device, is not clear how "shrink" the occupation of one specific device (remove the device, resize the partition and add the device again ?) I hope to post the new patches (with the implementation of the resize ioctl call) in this week end. BR Goffredo On Friday 19 February 2010, Mike Fedyk wrote:> On Fri, Feb 19, 2010 at 12:12 PM, Goffredo Baroncelli > <kreijack@gmail.com> wrote: > > Hi all, > > > > on the basis of the suggestion received, I update my btrfs tool. > > > > The main changes are: > > - removed the short form of the command (like ''-C'') > > - deployed the "multi level" command (i.e.: btrfs snapshot create) > > - split the source in three files. This because the new parses are quitebig> > (about 295 lines; for example btrfsctl.c are only 239 lines). > > > > The "multi level" command parser is quite flexible. They accept the full- > > length command (btrfs subvolume create) and a contract form (btrfs subvolcr).> > The commands may be arbitrary shortly (even 1 chars) but they have to beun-> > ambiguous. For example > > - btrfs s s -> OK (matches ''btrfs subvolume snapshot'' only) > > - btrfs dev s -> FAIL (matches both ''btrfs dev show'' and > > ''btrfs dev scan'') > > > > The parser highlights which part of the command are ambiguous. > > > > This is a RFC because there is no agreement about the name of the command. > > I am proposing the following structure: > > > > btrfs <object> <action> > > > > where <object> are: > > - subvolume (valid action: create, delete, snapshot, list [notimplemented])> > - filesystem (valid action: defrag, sync, resize [not implemented]) > > - device (valid action: add, delete, scan, show, balance) > > > > You can find the source at > > > > http://cassiopea.homelinux.net/git/btrfs-command.git > > > > (commit 3deec45d18879d60b4032dc1f8895d7b7e1211ec, remember to switch tothe> > "remotes/origin/multi-level-command" branch (I hate git!!!) > > > > > > BR > > G.Baroncelli > > ---- > > > > $ git diff remotes/origin/orig | diffstat > > Makefile | 6 > > btrfs.c | 73 ++++++ > > btrfs_cmds.c | 587+++++++++++++++++++++++++++++++++++++++++++[...]> > btrfs_cmds.h | 30 ++ > > btrfs_cmds_parse.c | 296 +++++++++++++++++++++++++ > > man/Makefile | 5 > > man/btrfs.8.in | 148 ++++++++++++ > > 13 files changed, 1291 insertions(+), 2 deletions(-) > > > > ---- > > $ ./btrfs > > Usage: > > btrfs subvolume snapshot [<dest>/]<name> > > Create a writeble snapshot of the subvolume <source> with > > the name <name> in the <dest> directory. > > btrfs subvolume delete <subvolume> > > Delete the subvolume <subvolume>. > > btrfs subvolume create [<dest>/]<name> > > Create a subvolume in <dest> (or the current directory if > > not passed). > > btrfs filesystem defrag <file>|<dir> [<file>|<dir>...] > > Defragment a file or a directory. > > btrfs device scan [<device> [<device>..] > > Scan all device for or the passed device for a btrfs > > filesystem. > > btrfs filesystem sync <path> > > Force a fs sync on the filesystem <path> > > btrfs filesystem resize [+/-]<newsize>[gkm]|max <filesystem> > > Resize the file system. If ''max'' is passed, the filesystem > > will occupe all available space on the device. > > btrfs device show [<dev>|<label>...] > > Show the btrfs devices > > btrfs device balance <path> > > Balance the chunk across the device > > btrfs device add <dev> [<dev>..] <path> > > Add a device to a filesystem > > btrfs device delete <dev> [<dev>..] <path> > > Remove a device from a filesystem > > > > btrfs help|--help|-h > > Show the help. > > > > Btrfs v0.19-22-g07a97f0-dirty > > > > ---- > > > > $ man man/btrfs.8.in | cat > > BTRFS(8) btrfsBTRFS(8)> > > > > > > > NAME > > btrfs - control a btrfs filesystem > > > > SYNOPSIS > > btrfs subvolume snapshot <source> [<dest>/]<name> > > > > btrfs subvolume delete <subvolume> > > > > btrfs subvolume create [<dest>/]<name> > > > > btrfs filesystem defrag <file>|<dir> [<file>|<dir>...] > > > > btrfs filesystem fssync <path> > > > > btrfs filesystem resize [+/-]<size>[gkm]|max <filesystem> > > > > btrfs device scan [<device> [<device>..]] > > > > btrfs device show <dev>|<label> [<dev>|<label>...] > > > > btrfs device balance <path> > > > > btrfs device add <dev> [<dev>..] <path> > > > > btrfs device delete <dev> [<dev>..] <path> ] > > > > > > btrfs help|--help|-h > > > > DESCRIPTION > > btrfs is used to control the filesystem and the files and directo‐ > > ries stored. It is the tool to create or destroy a new snapshot or a > > -create or destroy a new snapshot > +create or destroy a snapshot > > > new subvolume for the filesystem, to defrag a file or a directory, > > -new subvolume for the filesystem, to defrag a file or a directory > +subvolume for the filesystem, defrag a file or a directory > > > to flush the dato to the disk, to resize the filesystem, to scan the > > device. > > -to flush the dato to the disk, to resize the filesystem, to scan the > +flush the data to the disk, resize the filesystem, scan the > > > > > It is possible to abbreviate the commands unless the commands are > > ambiguous. For example: it is possible to run btrfs sub snaps > > instead of btrfs subvolume snapshot. But btrfs dev s is not > > allowed, because dev s may be interpreted both as device show and as > > device scan. In this case btrfs returns an error. > > > > If a command is terminated by --help , the relevant help is showed. > > If the passed command matches more commands, the help of all the > > matched commands are showed. For example btrfs dev --help shows the > > help of all device* command. > > > > Several parts above have more than one space between words, and less > than two spaces between sentences. > > > > > COMMANDS > > subvolume snapshot <source> [<dest>/]<name> > > Create a writeble snapshot of the subvolume <source> with the > > name <name> in the <dest> directory. If <source> is not a > > subvolume, btrfs returns an error. > > > > -Create a writeble snapshot of the subvolume <source> with the > +Create a writeable snapshot of the subvolume <source> with the > > > > > subvolume delete <subvolume> > > Delete the subvolume <subvolume>. If <subvolume> is not a > > subvolume, btrfs returns an error. > > > > > > subvolume create [<dest>/]<name> > > Create a subvolume in <dest> (or in the current directory if > > <dest> is not passed). > > > > > > filesystem defrag <file>|<dir> [<file>|<dir>...] > > Defragment files and/or directories. > > > > -filesystem defrag <file>|<dir> [<file>|<dir>...] > +filesystem defragment <file>|<dir> [<file>|<dir>...] > > Since the commands can be arbitrarily shortened, might as well spell > the full command out. > > > > > device scan [<device> [<device>..]] > > Scan devices for a btrfs filesystem. If no devices are > > passed, btrfs scans all the block devices. > > > > > > filesystem fssync <path> > > Force a sync for the filesystem identified by <path>. > > > > -filesystem fssync <path> > +filesystem sync <path> > > You have done away with specifying what it is working on. I think > that''s best, it just needs good error messages to handle the > unimplemented cases at the moment. > I would also rename "fssync" to "sync". > > > > > > > filesystem resize [+/-]<size>[gkm]|max <filesystem> > > -filesystem resize [+/-]<size>[gkm]|max <filesystem> > +filesystem resize [+/-]<size>[gkm]|max <dev> > > > Resize a file system identified by <path>. The <size> param‐ > > -Resize a file system identified > +Resize a filesystem identified > > > eter specifies the new size of the filesystem. If the prefix > > + or - is present the size is increased or decreased by the > > quantity <size>. If no units are specified, the unit of the > > <size> parameter is the byte. Optionally, the size parameter > > -<size> parameter is the byte. > +<size> parameter defaults to bytes. > > > may be suffixed by one of the following the units designa‐ > > tors: ''K'', ''M'', or ''G'', kilobytes, megabytes, or gigabytes, > > respectively. > > > > If ''max'' is passed, the filesystem will occupy all available > > space on the volume(s). > > -space on the volume(s). > +space on the block device specified. > > > > > The resize command does not manipulate the size of underlying > > partitions. If you wish to enlarge/reduce a filesystem, you > > must make sure you can expand/reduce the size of the parti‐ > > tion also. > > > > There are multiple ways to resize a btrfs filesystem. You can add add > or remove devices or shrink or enlarge the devices the filesystem is > already on. This operation only works on one block device at a time > so I think it should be under device instead of filesystem. > > > > > device show [<dev>|<label>...] > > Show the btrfs devices with some additional info. If no > > devices or labels are passed, btrfs scans all the block > > devices. > > > > > > device balance|-b <path> > > Balance the chunk of the filesystem identified by <path> > > across the devices. > > > > I think this is a bit ambiguous. While true, it is "balancing the > filesystem across devices" and "btrfs device balance" is quite > descriptive, it is working against a path and not a block device for > its argument. I think that just tips the scales enough to put it > under filesystem instead of device. > > > > > device add <dev> [<dev>..] <path> > > Add device(s) to the filesystem identified by <path>. > > > > > > device delete <dev> [<dev>..] <path> > > Remove device(s) from a filesystem identified by <path>. > > > > EXIT STATUS > > btrfs returns a zero exist status if it succeeds. Non zero is > > returned in case of failure. > > > > > > AVAILABILITY > > btrfs is part of btrfs-progs. Btrfs filesystem is currently under > > heavy development, and not suitable for any uses other than bench‐ > > marking and review. Please refer to the btrfs wiki > > http://btrfs.wiki.kernel.org for further details. > > > > SEE ALSO > > mkfs.btrfs(8) > > > > > > > > btrfsBTRFS(8)> > > > > > -- > > gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo)<kreijackATinwind.it>> > Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512 > > > -- > 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 >-- gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijack@inwind.it> Key fingerprint = 4769 7E51 5293 D36C 814E C054 BF04 F161 3DC5 0512 -- 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