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