summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Btrfs-progs: add function btrfs_get_subvol to get root_info of a subvolAnand Jain2013-02-01
| | | | | | | | We need a function which can get the root_info of a given subvol. This is in preparation to add support for the show sub-cli. Signed-off-by: Anand Jain <anand.jain@oracle.com>
* Btrfs-progs: move struct root_info to btrfs-list.hAnand Jain2013-02-01
| | | | | | | | As we would add more ways to list and manage the subvols and snapshots, its better if we have struct root_info defined in the header file. Signed-off-by: Anand Jain <anand.jain@oracle.com>
* Btrfs-progs: add parent uuid for snapshotsAnand Jain2013-02-01
| | | | Signed-off-by: Anand Jain <anand.jain@oracle.com>
* Btrfs-progs: move printing subvol list outside of btrfs_list_subvolsAnand Jain2013-02-01
| | | | | | | To improve the code reuse its better to have btrfs_list_subvols just return list of subvols witout printing Signed-off-by: Anand Jain <anand.jain@oracle.com>
* Btrfs-progs: List all subvolumes by defaultLukas Czerner2013-02-01
| | | | | | | | | | | | | | | | | | | | | | | Commit a1e89891eb6af5381539d9875b85c196150171b6 changed subvolume list command so that we list only subvolumes under the specified directory. However this is confusing and unnecessary obstacle, because one usually want to see all subvolumes in the file system. It was introduced with the notion the full_path may be invalid which is not exactly true as the full_path is always relative to the root subvolume which makes perfect sense. Simply making option '-a' default is not enough since it introduces the relative/absolute path distinction effectively obfuscating the subvolume nesting. This commit returns the subvolume list command behaviour before commit a1e89891eb6af5381539d9875b85c196150171b6 where we list all subvolumes in the filesystem with path naming from root subovolume. IMO this is the best default as it is well understood and gives all the important information about file system subvolumes including subvolume nesting without the need to parse additional information. Signed-off-by: Lukas Czerner <lczerner@redhat.com>
* Btrfs-progs: add '-o' option into subvolume list commandLukas Czerner2013-02-01
| | | | | | | | This commit introduces new option '-o' to list only subvolumes under the specified path. This does not change subvolume list behaviour. It has been default in the past and it is even with this commit. Signed-off-by: Lukas Czerner <lczerner@redhat.com>
* Btrfs-progs: move path modification to filtersLukas Czerner2013-02-01
| | | | | | | | | | | | Commit 8e8e019e910f20947fea7eff5da40753639d8870 introduces -a option which will list all subvolumes with distinguishing between relative and absolute by prepending absolute patch with "<FS_TREE>". This commit moves the path modification to a filter code rather than doing so in path construction in resolve_root(). This gives us more flexibility in formatting path output. Signed-off-by: Lukas Czerner <lczerner@redhat.com>
* Btrfs-progs: Complete the help information of btrfs send/receiveChen Yang2013-02-01
| | | | | | | | | | When typing command "btrfs send --help" or "btrfs receive --help", the help information of the commands is incomplete, which only shows a short usage. This patch helps to display the complete infomation of the commands. Signed-off-by: Cheng Yang <chenyang.fnst@cn.fujitsu.com>
* Update the man page with the new prefixes.Goffredo Baroncelli2013-02-01
| | | | Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it>
* btrfs-progs: mkfs support for extended inode refsMark Fasheh2013-01-31
| | | | | | | This patch turns on the BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF superblock flag when creating a new file system in mkfs, enabling extended inode refs. Signed-off-by: Mark Fasheh <mfasheh@suse.de>
* btrfs-progs: add extended inode ref support to btrfsckMark Fasheh2013-01-31
| | | | | | | | | | | | | | | | Add a function, process_inode_extref() to be called from process_one_leaf() when an item type of BTRFS_INODE_EXTREF_KEY is encountered. Similarly to process_inode_ref(), process_inode_extref() walks an extref and adds an inode_backref structure for each reference found within. I modified fsck's inode_backref to get a type field (ref_type) which helps us internally track the exact type of backrefs found. Of course this field could be overwritten in case of disk corruption (duplicate refs) but duplicate refs themselves are tracked by btrfsck so that should not be an issue as btrfsck is written today. Signed-off-by: Mark Fasheh <mfasheh@suse.de>
* btrfs-progs: Basic support for extended inode refsMark Fasheh2013-01-31
| | | | | | | | This patch syncs the extended inode ref definitions from kernels ctree.h and adds support in btrfs-debug-tree for visualizing the state of extended refs on disk. Signed-off-by: Mark Fasheh <mfasheh@suse.de>
* Btrfs-prog/send: fix wrong dump_fd check in cmd_send_start()Chen Yang2013-01-31
| | | | | | | | In cmd_send_start(), there is a check to make sure dump_fd is not a tty before parsing command options. So if we use the option "-f file", it doesn't work for the dump_fd has not been created. So fix it. Signed-off-by: Cheng Yang <chenyang.fnst@cn.fujitsu.com>
* Btrfs-progs: man btrfs: subcommands must be grouped togetherAnand Jain2013-01-31
| | | | Signed-off-by: Anand Jain <anand.jain@oracle.com>
* btrfs-progs: fix parallel buildDavid Sterba2013-01-31
| | | | | | | | Parallel build may fail due to late creation of version.h, fix the rule name that does not match the filename. Signed-off-by: David Sterba <dsterba@suse.cz> Reviewed-by: Eri Sandeen <sandeen@redhat.com>
* btrfs-progs: fix mkfs.btrfs -r optionEric Sandeen2013-01-31
| | | | | | | | | | | | | | Commit 605e806166847872bb91831b397d58f95027975a broke the mkfs.btrfs -r option, because it calls make_btrfs without ever setting dev_block_count, in the -r case, so we tell it to make a filesystem of size 0. Then we wander into ENOSPC land and segfault. As a quick one-line-fix, just set the dev_block_count to the size of the destination image file. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* Btrfs-progs: add support for device replace procedureStefan Behrens2013-01-31
| | | | | | | | | | | This is the user mode part of the device replace patch series. The command group "btrfs replace" is added with three commands: - btrfs replace start srcdev|srcdevid targetdev [-Bfr] mount_point - btrfs replace status mount_point [-1] - btrfs replace cancel mount_point Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
* Btrfs-progs: add command to get/reset device stats via ioctlStefan Behrens2013-01-31
| | | | | | | | "btrfs device stats" is used to retrieve and print the device stats. "btrfs device stats -z" is used to atomically retrieve, reset and print the stats. Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
* Btrfs-progs: make two utility functions globally availableStefan Behrens2013-01-30
| | | | | | | | Two convenient utility functions that have so far been local to scrub are moved to utils.c. They will be used in the device stats code in a following commit. Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
* Btrfs-progs: move open_file_or_dir() to utils.cAnand Jain2013-01-30
| | | | | | | | | | | The definition of the function open_file_or_dir() is moved from common.c to utils.c in order to be able to share some common code between scrub and the device stats in the following step. That common code uses open_file_or_dir(). Since open_file_or_dir() makes use of the function dirfd(3), the required XOPEN version was raised from 6 to 7. Signed-off-by: Anand Jain <anand.jain@oracle.com> Original-Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
* btrfs-progs: fix build warnings in btrfslabel.cDavid Sterba2013-01-30
| | | | Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: fix unaligned accesses v2Ben Peddell2013-01-28
| | | | | | | | | | | | | | | gcc optimizes out the memcpy calls at -O2 and -Os. Replacing memcpy with memmove does't work - gcc treats memmove the same way it treats memcpy. This patch brings in {get|put}_unaligned_le{16|32|64} (using the packed struct method), and uses them in the failing get/set calls. On architectures where unaligned accesses are cheap, these unaligned macros should be optimized out by the compiler. Signed-off-by: Ben Peddell <klightspeed@killerwolves.net>
* Btrfs-progs: Fix trival compiler error in cmds-qgroup.cGene Czarcinski2013-01-28
| | | | | | | The compiler does not realize that usage() never returns. Initializing the variable keeps it quiet. Signed-off-by: Gene Czarcinski <gene@czarc.net>
* btrfs-progs: update options in find-root.cWang Sheng-Hui2013-01-26
| | | | | | | Remove the useless option "-v" and add the option "-o" in the description of usage. Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>
* btrfs-progs pretty/quiet buildEric Sandeen2013-01-26
| | | | | | | | | | | | | | | | | | A quieter build makes warnings more obvious. This could probably be improved, but just to see if people like this or if they hate it. :) make V=1 overrides it and gets you the full glory again. [CC] ctree.o [CC] disk-io.o [CC] radix-tree.o [CC] extent-tree.o ... Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: kill check for /'s in labelsJosef Bacik2013-01-25
| | | | | | | | This patch kills a check in mkfs's label stuff which doesn't allow labels that have /'s in them. This causes problems for Anaconda which try to label volumes with their mountpoints. Thanks, Signed-off-by: Josef Bacik <jbacik@redhat.com>
* Btrfs-progs: we need to have the string null terminatedAnand Jain2013-01-25
| | | | | | | | | | | | | | | | | | Bug: ------------- btrfs subvolume list / -a ID 258 gen 4226 top level 384 path media/smbshare :: btrfs subvolume list /home -a ID 258 gen 4226 top level 5 path <FS_TREE>/__active/media/smbshare4.snap In the first command's output, this path is printed correctly, however in the second output it has "4.snap" appended, similar to the names of the snapshots I made 22 hours ago. ------------ Signed-off-by: Anand Jain <anand.jain@oracle.com> Reported-by: Brendan Hide <brendan@swiftspirit.co.za>
* Btrfs-prog/send: fix wrong best-parent assignment in, find_good_parent()Chen Yang2013-01-25
| | | | | | | | | We use find_good_parent() to look for a suit snapshot in the clone source snapshots as the parent, not the source subvolume of the snapshot which is about to be sent. fix it Reviewed-by: Jan Schmidt <list.btrfs@jan-o-sch.net> Signed-off-by: Cheng Yang <chenyang.fnst@cn.fujitsu.com>
* btrfs-progs: Add btrfs-show-superStefan Behrens2013-01-23
| | | | | | | Just a small program to print the fields of a super block. Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de> Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it>
* Btrfs-progs: add btrfs device ready commandJosef Bacik2013-01-23
| | | | | | | | | | | This command will be used by things like dracut that wish to know very simply if all of the devices have been added to the kernel cache yet for the device to be fully mounted. This keeps initrd's from constantly having to try to mount the file system until it succeeds every time a device is added to the system. Thanks, Signed-off-by: Josef Bacik <jbacik@fusionio.com> Signed-off-by: Gene Czarcinski <gene@czarc.net>
* Btrfs-progs: detect if the disk we are formatting is a ssdJosef Bacik2013-01-23
| | | | | | | | | | | | | | Patch rebased because of changes in mkfs.c but otherwise the same as created by Josef Bacik SSD's do not gain anything by having metadata DUP turned on. The underlying file system that is a part of all SSD's could easily map duplicate metadat blocks into the same erase block which effectively eliminates the benefit of duplicating the metadata on disk. So detect if we are formatting a single SSD drive and if we are do not use DUP. Thanks, Signed-off-by: Josef Bacik <jbacik@fusionio.com> Signed-off-by: Gene Czarcinski <gene@czarc.net>
* btrfs-progs: Use sysconf instead of getpagesizeEric Sandeen2013-01-23
| | | | | | | | | | | | | | | | | | Rawhide is getting cranky with posix compliance, and a few things have stopped building. getpagesize() is now only available -with- __USE_XOPEN_EXTENDED or __USE_BSD, and NOT __USE_XOPEN2K. _GNU_SOURCE must define __USE_XOPEN2K because getpagesize() has gone away for mkfs. I gave up and used sysconf. Also, something used to pull in stat that no longer does, so things like S_ISREG weren't getting defined. The following fixes things for me. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: fix build, manpage compression commandChristian Hesse2013-01-23
| | | | | | | | | | | | | | | man pages for btrfs-progs are compressed by gzip by default. In Makefile the variable GZIP is use, this evaluates to 'gzip gzip' on my system. From man gzip: > The environment variable GZIP can hold a set of default options for gzip. > These options are interpreted first and can be overwritten by explicit > command line parameters. So using any other variable name fixes this. Patch is attached. Signed-off-by: Christian Hesse <list@eworm.de> Signed-off-by: Gene Czarcinski <gene@czarc.net>
* Btrfs-progs: Fix typo in balance start usage; filetrs -> filters.Andreas Fischer2013-01-22
| | | | | | | Fix typo in "btrfs balance start" usage documentation: 'filetrs' should have been 'filters'. Signed-off-by: Andreas Fischer <info@andreasfischer.net>
* Btrfs-progs: fix an off-by-one in write_dev_supers()Stefan Behrens2013-01-22
| | | | | | Fix an off-by-one in write_dev_supers(). Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
* Btrfs-progs: bugfix for subvolume parent determination in btrfs sendJan Schmidt2013-01-21
| | | | | | | | | | We missed to add the default subvolume, because it has no ROOT_BACKREF_ITEM. This made get_parent always fail for direct decendants of the default subvolume, resulting in lots of full streams where incremental streams were requested. Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net> Reviewed-by: Alexander Block <ablock84@googlemail.com>
* Btrfs-progs: correcting misnamed parameter options for btrfs sendJan Schmidt2013-01-21
| | | | | | | | | | | | Unfortunately, the command line options for btrfs send were misnamed. The -i option should not be used to give "clone sources", we'll be using -c instead. Compatibily note: -i option was broken anyway, which makes it less critical renaming it. For potential users of the old option style, we emit a fatal warning if the -i option is used. Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
* btrfs-progs: initialize data before send ioctlArvin Schnell2013-01-21
| | | | | | | Likely not strictly needed but I noticed valgrind complaining about uninitialised memory in the ioctl call. Signed-off-by: Arvin Schnell <aschnell@suse.de>
* Btrfs-progs: check the relation of two group by real level numbersWang Shilong2013-01-21
| | | | | | | | | Comparing qgroupid is not good way to check the relationship of two groups, the right way is to compare the real level numbers. Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com> Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Gene Czarcinski <gene@czarc.net>
* Btrfs-progs: clean up reduplicate parse_qgroupid() and replace atoi with ↵Wang Shilong2013-01-21
| | | | | | | | | | | strtoull 1. parse_qgroupid() is implemented twice, clean up the reduplicate code. 2. atoi() can not detect errors, so use strtoull() instead of it. Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com> Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Gene Czarcinski <gene@czarc.net>
* Btrfs-progs: fix arg parsing for btrfs qgroup limit commandsWang Shilong2013-01-21
| | | | | | | | | | | | | | | | | | | We can use this command in two ways. 1. btrfs qgroup limit size qgroupid path 2. btrfs qgroup limit size path Before applying this patch, we differentiate them by check the parsing result of the second argument. It is not so good because it may make some mistakes, For example: btrfs qgroup limit 1M 123456 ^ It is a subvolume name. In fact, we can differentiate them just by the number of arguments, so fix it by this way. Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com> Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Gene Czarcinski <gene@czarc.net>
* Btrfs-progs: correct btrfs receive usage stringUlrik2013-01-21
| | | | | | | | Fix the usage string to specify the correct '-f' option for input file, not '-i'. Signed-off-by: Ulrik Sverdrup <ulrik.sverdrup@gmail.com> Signed-off-by: Gene Czarcinski <gene@czarc.net>
* Btrfs-progs: fix resolving of loop devicesNirbheek Chauhan2013-01-21
| | | | | | | | | | The LOOP_GET_STATUS ioctl truncates filenames to 64 characters. We should get the backing file for a given loop device from /sys/. This is how losetup does it as well. Signed-off-by: Nirbheek Chauhan <nirbheek.chauhan@collabora.co.uk> Signed-off-by: Gene Czarcinski <gene@czarc.net> Tested-By: Hector Oron <hector.oron@collabora.co.uk>
* btrfs-progs: Handle errors returned from open_ctreeDanny Kukawka2013-01-21
| | | | | Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: add malloc check in transaction.h/btrfs_start_transactionWang Sheng-Hui2013-01-18
| | | | | | | For malloc may fail, we should check it before assign values to the struct btrfs_trans_handle *h. Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>
* Btrfs-progs: bugfix for scrubbing single devicesArne Jansen2013-01-18
| | | | | | | | | | Scrub can be invoked to scrub only a single device of a (mounted) filesystem. The code determines whether the given path is a mountpoint of a filesystem by issueing a btrfs-specific ioctl to it. Only in case of EINVAL it assumed it may be a device, all other errnos just caused it fail, but some devices (correctly) return ENOTTY. This patch adds this to the error check. Signed-off-by: Arne Jansen <sensille@gmx.net>
* Ignore the error ENXIO and ENOMEDIUM during a devs scanGoffredo Baroncelli2013-01-18
| | | | | | | | | | Ignore the error ENXIO (device don't exists) and ENOMEDIUM ( No medium found -> like a cd tray empty) in the function btrfs_scan_one_dir. This avoids spurios errors due to an empty CD or a block device node without a device (which is frequent in a static /dev). Signed-off-by: Goffredo Baroncelli <kreijack@inwind.it>
* btrfs-progs: ignore -a option in mkfsDavid Sterba2013-01-17
| | | | | | | | | | | Let mkfs accept '-a' option and not complain. When a partition has non-zero value in the fs_passno filed in /etc/fstab, the fsck is run but fails and boot stops. As fsck does not break things currently, it's safe to ignore the option and let the boot proceed. Reference: https://bugzilla.novell.com/show_bug.cgi?id=655906 Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: remove '-h' from btrfs man pageSimon Xu2013-01-17
| | | | | | Remove '-h' from btrfs man page as it's not supported by the btrfs utility. Signed-off-by: Simon Xu <xu.simon@oracle.com>
* btrfs-progs: remove "device show" from btrfs man pageSimon Xu2013-01-17
| | | | | | | Remove "device show" from btrfs man page as it's not supported by the btrfs utility. Signed-off-by: Simon Xu <xu.simon@oracle.com>