Hi Goffredo,

It sounds good for me though detailed points need more discussion.
btrfs-progs seems unkind for operator as you mentioned, and many
features will be implemented to btrfsctl from now, it's good that
we arrange and unify btrfs-progs now.

As for me, plain keywords(delete,defrag...) as commands are welcome.

Regards,
taruisi

(2010/01/22 4:29), Goffredo Baroncelli wrote:
> Hi all
> 
> this RFC is about unify all btrfs command (btrfsctl, btrfs-show, btrfs-tune.. 
> ) in only one called "btrfs" (or whatever we want).
> 
> Today "btrfsctl" needs a "bit" of care because
>   * the help is basically wrong [1]
>   * the return codes are incoherent [2]
>   * the syntax of the command are very ugly (a lot of people complained 
>     about the subvolumes/snapshot creation, because they aren't very clear)
>     [3]
>   * the code is a mess (in the main there is a useless for(); there a lot
>     of 'if' because sometime the last argument is the target of ioctl,
>     sometime no..) [4]
>   * The checks of the number of argument are incorrect [5]
> 
> I think that is better to rewrite from scratch a new command instead of 
> patching the old one. So we don't care about the backward compatibility.
> 
> Other filesystem (hammer, tux3, zfs) have only one command for management 
> purpose. Instead we have btrfsctl (which has a lot of different
> function) and btrfs-show, btrfs-tune, btrfs-volume which have few functions.
> 
> There are patches which address [6] some of the previous issues, 
> but these are not integrated (because the developers are busy on other 
> issues). To me rewriting from scratch seems a fast path for solving these 
> issues.
> 
> I made a prototype (see attached file) in bash of what "btrfs" should be. The 
> major different from btrfsctl are:
> - I talk about clone and not snapshot
> - If a sub-volume is required (for example for the cloning), the program 
> check 
> that the argument is a root of the subvolume and not a subdirectory
> - Creating a sub-volume requires only one argument 
> 
> Below some examples:
> 
> $ btrfs                         
> Usage:                                              
>         btrfs clone|-c <source> [<dest>/]<name>     
>                 Clone the subvolume <source> with the name <name> in the 
> <dest>
>                 directory.                                                    
>  
>         btrfs delete|-d <subvolume>                                           
>  
>                 Delete the subvolume <subvolume>.                             
>  
>         btrfs create|-C [<dest>/]<name>
>                 Create a subvolume in <dest> (or the current directory if not
>                 passed.
>         btrfs defrag|-d <file>|<dir> [<file>|<dir>...]
>                 Defragment a file or a directory.
>         btrfs fssync|-s <path>
>                 Force a fs sync on the filesystem <path>
>         btrfs resize|-r [+/-]<newsize>[gkm]|max <filesystem>
>                 Resize the file system. If 'max' is passed, the filesystem
>                 will occupe all available space on the device.
>         btrfs scan|-S [<device> [<device>..]
>                 Scan all device for or the passed device for a btrfs 
> filesystem.
>         btrfs show|-l <dev>|<label> [<dev>|<label>.. ]
>                 Show the btrfs devices
>         btrfs balance|-b <path>
>                 Balance teh chunk across the device
>         btrfs add|-A <dev> <path>
>                 Add a device to a filesystem
>         btrfs rem|-R <dev> <path>
>                 Remove a device to a filesystem
> 
>         btrfs help|--help|-h
>                 Show the help.
> 
> 
> 
> Comment are welcome
> 
> 
> 
> 
> [1] In the help the -r, -c options seem that don't need any further argument; 
> The -D command seems that accpet only "." as 2nd parameter....
> 
> [2] If something goes wrong btrfsctl returns 1; if the ioctl return 0 the 
> command still returns 1...
> 
> [3] See the email in the mailing list
> 
> [4] If I does
>    btrfsctl -c -d -A -S a .
> what result do you aspect ?
> 
> [5] If I pass more argument than the ones needed no error is showed. -D 
> checks 
> if there is only one argument, when it needs two argument...
> 
> [6] 
> - 10/26/09 - little fixme in btrfsctl.c [PATCH] - From: 
> David Nicol <davidni...@gmail.com>
> - 12/24/09 - [PATCH] btrfs-progs: check slash in deleting subvolumes. - From: 
> TARUISI 
> - 12/13/09 - [PATCH] Improve the btrfsctl help - From: 
> Goffredo Baroncelli <kreij...@gmail.com>
> 
> 

--
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

Reply via email to