summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* btrfs-progs: add missing includes to header filesDavid Sterba2015-06-10
| | | | | | | Add includes that let the header files compile or add explicit include of kerncompat if the uXX types are used. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: add helper to wait for subvolume cleaningDavid Sterba2015-06-09
| | | | Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: subvol: let sync check only current deletionsDavid Sterba2015-06-09
| | | | | | | | | | | | | | | | | | | | So far the subvol sync command takes a shortcut and looks if there are any deleted subvols at all. It does not print the deleted subvolumes as they get cleaned. Arguably this is what the user would like to see and has to do $ btrfs subvol sync /path $(btrfs subvol list -d /path | "extract the ids") to see the progress. Make it look for all currently deleted subvolumes automatically and print the progress as if the ids were listed manually. This is a slight change in the semantics of the command. Previously, any new subvol deletion would prevent subvol sync to return. To simulate the old behaviour, run 'subvol sync' in a loop until it returns 0. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: cleanup after errors in open_file_or_dir3David Sterba2015-06-09
| | | | | | | | We should zero the dirstream in case we close it ourselves, so the caller does not do it again. Most current callers do not do that and exit immediatelly. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: receive: fix minor resource leakDavid Sterba2015-06-09
| | | | | Resolves-coverity-id: 1302985 Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: print compact help for btrfsDavid Sterba2015-06-09
| | | | | | | | Running 'btrfs' without arguments will print complete help that spans a lot of lines and is really helpful. Print only subcommand group names with short descriptions, similar to what 'git' does. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: add command group info stringsDavid Sterba2015-06-09
| | | | | | They're printed in the 'btrfs' command group summary. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: fix argv0_buf handlingDavid Sterba2015-06-09
| | | | | | | | | | | | | | | | The variable argv0_buf was duplicated and the changes done in utils.c were not propagated to help.c. So if an unknown commandline token was found, the error message did not contain the known part: $ btrfs scrub test : unknown token 'test' instead of $ btrfs scrub test btrfs scrub: uknown token 'test' Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: remove stray deprecation noticeDavid Sterba2015-06-08
| | | | | | | The 1st level balance subcommand is the right one but it accidentally inherited the notice about 'filesystem balance' deprecation. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs: make the summary more compactDavid Sterba2015-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Single device example: btrfs-progs v4.0.1-39 See http://btrfs.wiki.kernel.org for more information. Label: (null) UUID: a88bfc85-b454-4a32-8de7-276c01f04d58 Node size: 16384 Sector size: 4096 Filesystem size: 2.00GiB Block group profiles: Data: single 8.00MiB Metadata: single 8.00MiB System: single 4.00MiB SSD detected: no Incompat features: extref, skinny-metadata Number of devices: 1 Devices: ID SIZE PATH 1 2.00GiB /dev/sda Multiple devices: btrfs-progs v4.0.1-39 See http://btrfs.wiki.kernel.org for more information. Label: (null) UUID: 9db282ef-55f3-4070-a59f-012a654614b2 Node size: 16384 Sector size: 4096 Filesystem size: 8.00GiB Block group profiles: Data: RAID6 417.50MiB Metadata: RAID6 417.50MiB System: RAID6 20.00MiB SSD detected: no Incompat features: extref, raid56, skinny-metadata Number of devices: 4 Devices: ID SIZE PATH 1 2.00GiB /dev/sda 2 2.00GiB /dev/sdb 3 2.00GiB /dev/sdc 4 2.00GiB /dev/sdd Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs: drop mixed from summaryDavid Sterba2015-06-08
| | | | | | The mixed-bg incompat feature should be enough. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs, drop UUID from device summaryDavid Sterba2015-06-08
| | | | Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs, move uuid to the end of device summaryDavid Sterba2015-06-08
| | | | Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs: print the summaryGoffredo Baroncelli2015-06-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch prints the summary of the filesystem after the creation. The main fileds printed are: - devices list with their uuid, devid, path and size - raid profile (dup,single,raid0...) - leafsize/nodesize/sectorsize - filesystem features (raid56, extref, mixed-bg) - chunk size and type If the '-v' switched is passed, the output is more verbose; if the '-q' switched is passed, only the errors are printed. Below an example: BTRFS filesystem summary: Label: btrfs-test UUID: 14ae8a88-98ac-4f22-8441-79f76ec622f7 Node size: 4096 Leaf size: 4096 Sector size: 4096 Initial chunks: Data+Metadata: 9.01GiB System: 18.06MiB Metadata profile: RAID5 Data profile: RAID5 Mixed mode: YES SSD detected: NO Incompat features: mixed-bg, extref, raid56 Number of devices: 10 UUID ID SIZE PATH ------------------------------------ -- --------- ----------- df1c7f50-1980-4da2-8bc9-7ee6ffb0b554 1 50.00GiB /dev/vdb 32c808a0-cd7b-4497-a2c0-1d77a9854af9 2 50.00GiB /dev/vdc 3159782e-d108-40bc-9e15-090ecac160b4 3 50.00GiB /dev/vdd db7eaf0c-beb8-4093-a9d0-b9c25c146305 4 50.00GiB /dev/vde c367ca04-1f71-49c0-a331-11fc0b87e9fc 5 50.00GiB /dev/vdf e9b73c86-4058-4b3a-90ac-18741a276e70 6 50.00GiB /dev/vdg c4298b7a-ad41-4690-bf10-bf748b319413 7 50.00GiB /dev/vdh 1cf048c8-af8a-4225-b09a-5d12e9b217fa 8 2.00GiB /dev/vdi 7e157869-768a-4725-bad5-82e6bd05fd17 9 2.00GiB /dev/vdj 2c9431ac-c7f0-45a5-8529-cef8cf6e4033 10 2.00GiB /dev/vdk Total devices size: 356.01GiB Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs: track sizes of created block groupsGoffredo Baroncelli2015-06-08
| | | | | Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: return the fsid from make_btrfs()Goffredo Baroncelli2015-06-08
| | | | | | | | | | | The function make_btrfs() has as argument the fsid of the filesystem. If this fsid is empty or null make_btrfs() generates a new fsid. However If the buffer is valid (but the string is empty) the generated fsid is copied back to the caller. Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it> Reviewed-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: add strdup in btrfs_add_to_fsid() to track the device pathGoffredo Baroncelli2015-06-08
| | | | | | | | | When creating a new btrfs_device, copy the path to track it. This path is then used by mkfs.btrfs to list all devices. Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it> Reviewed-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs: do not try to register non-block-devicesDavid Sterba2015-06-08
| | | | | | | | | | | | | | | | | A mkfs on a regular file will try to call the DEV_SCAN ioctl that will take the loop through the kernel and fail: ERROR: device scan failed './test.img' - Block device required If a user without permission to open the control device tries to mkfs a regular file, an error message is printed: failed to open /dev/btrfs-control skipping device registration: Permission denied So we should not try to pass a non-block-device besides that this makes the --quiet option more quiet. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs: move info message out of btrfs_add_to_fsidDavid Sterba2015-06-08
| | | | Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs: accept mixed case for profile namesDavid Sterba2015-06-06
| | | | Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: mkfs: add option to make it quietDavid Sterba2015-06-06
| | | | | | | | Add option to silecne mkfs and print only errors, warnings or info on user request like features or help. Based on patch from Goffredo Baroncelli <kreijack@inwind.it> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: convert: factor out block iteration callbackJeff Mahoney2015-06-05
| | | | | | | | | block_iterate_proc uses the libext2fs error return codes when it doesn't need them to return the error. We can push this out to __block_iterate_proc and allow the reiserfs converter to share the code. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: convert: factor out adding dirent into convert_insert_direntJeff Mahoney2015-06-05
| | | | | | | | Adding a dirent consists of multiple steps that will need to be taken by any converter. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: convert: fix typo in btrfs_insert_dir_item callJeff Mahoney2015-06-05
| | | | | | | | EXT2_FT_REG_FILE and BTRFS_FT_REG_FILE happen to share the same value, but btrfs_insert_dir_item expects the btrfs version. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: compat: define DIV_ROUND_UP if not already definedJeff Mahoney2015-06-05
| | | | | | | DIV_ROUND_UP may not be defined, so define it if it's not already. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: convert: rename ext2_root to image_rootJeff Mahoney2015-06-05
| | | | | | | | In preparation to extend to other file systems, rename ext2_root to image_root. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: convert: remove unused inode_key in copy_single_inodeJeff Mahoney2015-06-05
| | | | | Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: convert: remove unused fs argument from block_iterate_procJeff Mahoney2015-06-05
| | | | | | | The fs argument is unused, so let's not pass it. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: convert: clean up blk_iterate_data handling wrt record_file_blocksJeff Mahoney2015-06-05
| | | | | | | | Hand off initialization of blk_iterate_data to init_blk_iterate_data and pass the structure when the elements are the only values passed anyway. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: qgroup limit: add a check for invalid input of 'T/G/M/K'Dongsheng Yang2015-06-05
| | | | | | | | | | | | | Add a check to error out in the following case: # ./btrfs qgroup limit T /mnt/ Invalid size argument given Without this patch, btrfs-progs would parse the input as 0 and continue. Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: qgroup limit: error out if input value is negativeDongsheng Yang2015-06-05
| | | | | | | | | | | | | If we pass a negative value to command qgroup limit, btrfs-progs would convert it to unsigned long long silently. That's a little confusing to user, why I can limit my quota to a negative value. This patch add a check in parse_limit, if the input value is negative, error out to user. Reported-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com> Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: qgroup: allow user to clear some limitation on qgroup.Dongsheng Yang2015-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, we can not clear a limitation on a qgroup. Although there is a 'none' choice provided to user to do it, it does not work well. It does not set the flag which user want to clear, then kernel will never know what the user want to do at all. *Without this commit* # ./btrfs qgroup show -re /mnt qgroupid rfer excl max_rfer max_excl -------- ---- ---- -------- -------- 0/5 2.19GiB 2.19GiB 5.00GiB none 0/257 100.02MiB 100.02MiB none none # ./btrfs qgroup limit none /mnt # ./btrfs qgroup show -re /mnt qgroupid rfer excl max_rfer max_excl -------- ---- ---- -------- -------- 0/5 2.19GiB 2.19GiB 5.00GiB none 0/257 100.02MiB 100.02MiB none none This patch will set the flag user want to clear and pass a size=-1 to kernel. Then kernel will clear it correctly. *With this commit* # ./btrfs qgroup show -re /mnt qgroupid rfer excl max_rfer max_excl -------- ---- ---- -------- -------- 0/5 2.19GiB 2.19GiB 5.00GiB none 0/257 100.02MiB 100.02MiB none none # ./btrfs qgroup limit none /mnt # ./btrfs qgroup show -re /mnt qgroupid rfer excl max_rfer max_excl -------- ---- ---- -------- -------- 0/5 2.19GiB 2.19GiB none none 0/257 100.02MiB 100.02MiB none none Reported-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com> Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com> Tested-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: qgroup: show 'none' when we did not limit it on this qgroupDongsheng Yang2015-06-05
| | | | | | | | | | | | | | | | | | | There are two understanding of the '0' value in btrfs qgroup show. (1) is no-limitation on this qgroup. (2) is the max-limitation is 0. This patch make it showing in different way. (1) max-limitation for 0 is still showing '0'. (2) no-limitation will show 'none'. qgroupid rfer excl max_rfer max_excl parent -------- ---- ---- -------- -------- ------ 0/5 2.19GiB 2.19GiB none none --- 0/257 100.02MiB 100.02MiB none none --- Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com> Tested-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: tests: add test for zero-logDavid Sterba2015-06-05
| | | | | | | | Simple test to verify that the log_root is reset after the command, but we yet need to provide a testing image with log_root set to something sensible or crafted images with borked log_root pointer. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: cleanup and deprecate btrfs-zero-logDavid Sterba2015-06-05
| | | | | | Sync with the 'rescue zero-log' code, add a warning about deprecation. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: tests: update convert tests to set fs featuresDavid Sterba2015-06-04
| | | | Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: convert: allow to set filesystem featuresDavid Sterba2015-06-04
| | | | | | | | | | | | | | | Curretnly there are no features set for the converted filesystem and it's not possible to request it like in mkfs. Add new option -O|--features, use -O list-all to show all that are supported for convert. Note: from now on, convert without any -O option will use the same defaults as mkfs. The original behaviour was rather confusing. Convert is now more verbose about the parameters of the btrfs filesytem. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: add function to stringify filesystem featuresDavid Sterba2015-06-04
| | | | Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: scrub: more friendly duration format in statusDavid Sterba2015-06-04
| | | | | | | | scrub status for d4dc0da9-e8cc-4bfe-9b6f-2dcf8e0754f5 scrub started at Sat Jan 1 00:00:01 UTC 2000 and finished after 00:43:05 total bytes scrubbed: 111.17GiB with 0 errors Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: doc: update btrfs-rescue page and drop btrfs-zero-logDavid Sterba2015-06-04
| | | | | | | | - fix page title - update zero-log text - delete btrfs-zero-log.asciidoc as page is not shipped anymore Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: ioctl.h: add btrfs_ioctl_feature_flags structDavid Sterba2015-06-03
| | | | | | Copied from uapi/linux/btrfs.h. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: ioctl.h: update btrfs_ioctl_fs_info_argsDavid Sterba2015-06-03
| | | | | | Copied from uapi/linux/btrfs.h. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: ioctl.h: update type annotationsDavid Sterba2015-06-03
| | | | | | Add the __user annotations to pointers in structures. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: ioctl.h: add send flag maskDavid Sterba2015-06-03
| | | | | | Copied from uapi/linux/btrfs.h. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: ioctl.h: add EXTENT_SAME ioctl and structuresDavid Sterba2015-06-03
| | | | | | Copied from uapi/linux/btrfs.h. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: ioctl.h: copy commented version of balance structuresDavid Sterba2015-06-03
| | | | | | Copied from uapi/linux/btrfs.h, no-op change. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: ioctl.h: copy commented version of scrub_progress structureDavid Sterba2015-06-03
| | | | | | Copied from uapi/linux/btrfs.h, no-op change. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: ioctl.h: reorder to match kernel uapi headerDavid Sterba2015-06-03
| | | | | | | This is a no-op change, move the code that also exists in the uapi/linux/btrfs.h header. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: btrfstune: make uuid rewrite progress more verboseDavid Sterba2015-06-03
| | | | Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: tests: add misc tests for uuid rewriteDavid Sterba2015-06-03
| | | | | | Simple tests of the -u/-U options of btrfstune. Signed-off-by: David Sterba <dsterba@suse.cz>