summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* btrfs-progs: close fd on cmd_subvol_list returnEric Sandeen2013-03-10
| | | | | | stops an fd leak that Coverity found. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: update mkfs.btrfs help info for raid5/6Zhi Yong Wu2013-03-10
| | | | | | Since raid5/6 support was introduced, we should update mkfs.btrfs help info. Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
* btrfs-progs: usage should match what is codedAnand Jain2013-03-03
| | | | Signed-off-by: Anand Jain <anand.jain@oracle.com>
* btrfs-progs: from troubleshooting point of view messages must be uniqueAnand Jain2013-03-03
| | | | | | | | | ----- cmds-device.c: fprintf(stderr, "ERROR: unable to scan the device '%s' - %s\n", utils.c: fprintf(stderr, "ERROR: unable to scan the device '%s' - %s\n", ----- Signed-off-by: Anand Jain <anand.jain@oracle.com>
* Btrfs-progs: add correct indentationAnand Jain2013-02-27
| | | | | | A trivial fix, corrects the indentation. Signed-off-by: Anand Jain <anand.jain@oracle.com>
* Btrfs-progs: fix segmentation fault of "btrfs check"Tsutomu Itoh2013-02-27
| | | | | | | | | | | | Segmentation fault occurred in the following command. # btrfs check /dev/sdc7 No valid Btrfs found on /dev/sdc7 Segmentation fault (core dumped) Fix it. Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
* Btrfs-progs: output the error reason when qgroup_show failsWang Shilong2013-02-27
| | | | | | | The original code forgot to output the reason why the commands failed, fix it. Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
* Btrfs-progs: let the error message outputed only onceWang Shilong2013-02-27
| | | | | | | | | | | | If we fail to execute the command: btrfs qgroup show <mnt> It will output the follow messages: ERROR: can't perform the search - Inappropriate ioctl for device ERROR: can't list qgroups The error is outputed twice, this is wrong, fix it. Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
* btrfs-progs: don't link binaries to a dynamic libraryDavid Sterba2013-02-27
| | | | | | | | | | | | Linking 'btrfs' and other binaries against the dynamic library makes it tedious to use directly from the git repo. This is useful for testing various fixes, but now it'd need to also set LD_LIBRARY_PATH or install the library to a known path. Add a target for static library and use it for linking, the dynamic library is to be used by external users. Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: libify some parts of btrfs-progsMark Fasheh2013-02-27
| | | | | | | | | | | | | | | External software wanting to use the functionality provided by the btrfs send ioctl has a hard time doing so without replicating tons of work. Of particular interest are functions like btrfs_read_and_process_send_stream() and subvol_uuid_search(). As that functionality requires a bit more than just send-stream.c and send-utils.c we have to pull in some other parts of the progs package. This patch adds code to the Makefile and headers to create a library, libbtrfs which the btrfs command now links to. Signed-off-by: Mark Fasheh <mfasheh@suse.de> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: initialize save_ptr prior to strtok_rEric Sandeen2013-02-27
| | | | | | | | | | | | | The coverity runs had a false positive complaining that save_ptr is uninitialized in the call to strtok_r. Turns out that under the covers glibc was doing enough to confuse the checker about what was being called. Just to keep the noise down, do a harmless initialization, with a comment as to why. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: fix fd leak in cmd_subvol_set_defaultEric Sandeen2013-02-27
| | | | | | | | | | Rearrange cmd_subvol_set_default() slightly so we don't have to close the fd on an error return. While we're at it, fix whitespace & remove magic return values. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: Tidy up resolve_rootEric Sandeen2013-02-27
| | | | | | | Whitespace fixes and fix a variable declaration after code. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: fix mem leak in resolve_rootEric Sandeen2013-02-27
| | | | | | | If we exit with error we must free the allocated memory to avoid a leak. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: close fd on cmd_subvol_get_default returnEric Sandeen2013-02-27
| | | | | | | | | Without this we leak the fd when we return from the function. Also, remove the senseless random return values. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: free allocated di_args in cmd_start_replaceEric Sandeen2013-02-27
| | | | | | | We only freed this allocation in error paths, and leaked a bit when it went out of scope normally. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: provide positive errno to strerror in cmd_restoreEric Sandeen2013-02-27
| | | | | | | check_mounted returns a negative errno, so it needs to be flipped again before passing to strerror. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: don't call close on error fdEric Sandeen2013-02-27
| | | | | | | In the error case where fd < 0, close(fd) is the wrong thing to do. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: free memory before error exit in read_whole_ebEric Sandeen2013-02-27
| | | | | | | | Free the memory allocated to "multi" before the error exit in read_whole_eb(). Set it to NULL after we free it in the loop to avoid any potential double-free. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: more scrub cancel error handlingEric Sandeen2013-02-27
| | | | | | | | | | | | | | | | | | | If we request scrub cancel on an unmounted or non-btrfs device, we still get a "scrub canceled" success message: # btrfs scrub cancel /dev/loop1 scrub cancelled # blkid /dev/loop1 /dev/loop1: UUID="7f586941-1d5e-4ba7-9caa-b35934849957" TYPE="xfs" Fix this so that if check_mounted_where returns 0 we don't report success. While we're at it, use perror to report the reason for an open failure, if we get one. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: fix close of error fd in scrub cancelEric Sandeen2013-02-27
| | | | | | | | If we retry opening the mountpoint and fail, we'll call close on a filehandle w/ value -1. Rearrange so the retry uses the same open and same error handling. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: fix open error test in cmd_start_replaceEric Sandeen2013-02-27
| | | | | | open() returns a negative fd on failure, not 0. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: avoid double-free in __btrfs_map_blockEric Sandeen2013-02-27
| | | | | | | | | | __btrfs_map_block() can possibly do the goto again: loop after having allocated & freed the "multi" pointer. There are then a couple error conditions where it will attempt to again kfree the now non-NULL multi pointer. So before retrying, reset multi to NULL after we free it. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: btrfs_list_get_path_rootid error handlingEric Sandeen2013-02-27
| | | | | | | | | | | btrfs_list_get_path_rootid() tries to return a negative number on error, but it's a u64 function. Callers which test for a return < 0 will never see an error. Change the function to fill in the rootid via a pointer, and then return a simple int as error. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: Remove write-only var fdres in cmd_dev_stats()Eric Sandeen2013-02-27
| | | | | | | fdres is initialized to -1, then later tested, but never set. Just remove it. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: fix btrfs_get_subvol cut/paste errorEric Sandeen2013-02-27
| | | | | | | | | | | | | | | in btrfs_get_subvol(), there is a cut and paste error: if (ri->full_path) the_ri->full_path = strdup(ri->full_path); else the_ri->name = NULL; It should be setting the_ri->full_path to NULL here. Do it in a function instead of the cpoy & paste to avoid future errors. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: move btrfslabel.[c|h] stuff to utils.[c|h]Jeff Liu2013-02-26
| | | | | | | | | Clean btrfslabel.[c|h] out of the source tree and move those related functions to utils.[c|h]. CC: Gene Czarcinski <gene@czarc.net> Signed-off-by: Jie Liu <jeff.liu@oracle.com> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: refactor check_label()Jeff Liu2013-02-26
| | | | | | | | | | | | | | | | Refactor check_label(). - Make it be static at first, this is a preparation step since we'll remove btrfslabel.[c|h] and move those functions from there to utils.[c|h], we can do pre-checking against the input label string with it. - Fix the label length check up from BTRFS_LABEL_SIZE to BTRFS_LABEL_SIZE - 1. - Kill the check of label contains an invalid character, see below commits for detail: 79e0e445fc2365e47fc7f060d5a4445d37e184b8 btrfs-progs: kill check for /'s in labels. Signed-off-by: Jie Liu <jeff.liu@oracle.com> CC: David Sterba <dsterba@suse.cz> CC: Gene Czarcinski <gene@czarc.net>
* Btrfs-progs: fix cmd_label_usage to reflect this change.Jeff Liu2013-02-26
| | | | | | | | Fix the command usage of "btrfs filesystem label" to reflect this change. i.e. so that we can get/set the label of a mounted filesystem against the mountpoint. Signed-off-by: Jie Liu <jeff.liu@oracle.com> Signed-off-by: Anand Jain <anand.jain@oracle.com>
* Btrfs-progs: Fix set_label_unmounted() with label length validationJeff Liu2013-02-26
| | | | | | | | | | Currently, we keeping silent if the label length is exceeding BTRFS_LABEL_SIZE - 1, and just truncating the characters beyond that. This patch make it return error and exit in this situation. Signed-off-by: Jie Liu <jeff.liu@oracle.com> Signed-off-by: Anand Jain <anand.jain@oracle.com>
* Btrfs-progs: Change the label of a mounted file systemJeff Liu2013-02-26
| | | | | | | | With this new ioctl(2), we can set/change the label for a mounted file system. It still does normal process for an umounted file system. Signed-off-by: Jie Liu <jeff.liu@oracle.com> Signed-off-by: Anand Jain <anand.jain@oracle.com>
* btrfsprogs: btrfstune support for extended inode refsMark Fasheh2013-02-21
| | | | | | | | This patch adds an option to btrfstune, '-r' which will enable the extended inode refs flag on the provided btrfs superblock. We don't have a disable option at the moment as that would require far more work. Signed-off-by: Mark Fasheh <mfasheh@suse.de>
* Btrfs-progs: fix segmentation fault of 'btrfs-debug-tree -e'Liu Bo2013-02-19
| | | | | | | | Due to some historical reasons, we remove 'printing leaf' part, which'd lead to 'Segmentation fault' of btrfs-debug-tree -e, this patch adds it back. Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
* btrfs-progs: require mkfs -f force option to overwrite filesystem or ↵Eric Sandeen2013-02-19
| | | | | | | | | | | | | | | | | | | | | | | | partition table The core of this is shamelessly stolen from xfsprogs. Use blkid to detect an existing filesystem or partition table on any of the target devices. If something is found, require the '-f' option to overwrite it, hopefully avoiding disaster due to mistyped devicenames, etc. # mkfs.btrfs /dev/sda1 WARNING! - Btrfs v0.20-rc1-59-gd00279c-dirty IS EXPERIMENTAL WARNING! - see http://btrfs.wiki.kernel.org before using /dev/sda1 appears to contain an existing filesystem (xfs). Use the -f option to force overwrite. # This does introduce a requirement on libblkid. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
* btrfs-progs: Fix pointer math in __ino_to_path_fdMark Fasheh2013-02-19
| | | | | | | | | We are casting an array of u64 values into a char ** array so when we dereference this array (as a char **) on a 32 bit system we're then re-casting that back to a 32 bit value. This causes problems when we try to print those strings. Signed-off-by: Mark Fasheh <mfasheh@suse.de>
* Btrfs-progs: check out if the swap deviceTsutomu Itoh2013-02-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the following commands succeed. # cat /proc/swaps Filename Type Size Used Priority /dev/sda3 partition 8388604 0 -1 /dev/sdc8 partition 9765884 0 -2 # mkfs.btrfs /dev/sdc8 WARNING! - Btrfs v0.20-rc1-165-g82ac345 IS EXPERIMENTAL WARNING! - see http://btrfs.wiki.kernel.org before using fs created label (null) on /dev/sdc8 nodesize 4096 leafsize 4096 sectorsize 4096 size 9.31GB Btrfs v0.20-rc1-165-g82ac345 # btrfs fi sh /dev/sdc8 Label: none uuid: fc0bdbd0-7eed-460f-b4e9-131273b66df2 Total devices 1 FS bytes used 28.00KB devid 1 size 9.31GB used 989.62MB path /dev/sdc8 Btrfs v0.20-rc1-165-g82ac345 # But we should check out the swap device. Fixed it. Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com> Tested-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: make libbtrfs usable from C++Arvin Schnell2013-02-19
| | | | | | | | Please find attached a patch to make the new libbtrfs usable from C++ (at least for the parts snapper will likely need). Signed-off-by: Arvin Schnell <aschnell@suse.de> Signed-off-by: Mark Fasheh <mfasheh@suse.de>
* Btrfs-progs: make 0 a valid usage filter argumentIlya Dryomov2013-02-13
| | | | | | | | This is a progs counterpart to a "Btrfs: allow for selecting only completely empty chunks". usage=0 now means "select only only completely empty chunks and nothing else". Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
* btrfs-progs: add send-testMark Fasheh2013-02-13
| | | | | | | | send-test.c links against libbtrfs and uses the send functionality provided to decode and print a send stream to the console. Signed-off-by: Mark Fasheh <mfasheh@suse.de> Signed-off-by: David Sterba <dsterba@suse.cz>
* btrfs-progs: Add support for BTRFS_SEND_FLAG_NO_FILE_DATAMark Fasheh2013-02-12
| | | | | | | | | | | The flag and command are synced from kernel to user. Also, this patch adds a callback for the BTRFS_SEND_C_UPDATE_EXTENT in struct btrfs_send_ops. read_and_process_cmd() is updated to decode BTRFS_SEND_C_UPDATE_EXTENT and send the values through the right callback. I did not add a callback definition to cmds-receive.c as that code never uses BTRFS_SEND_FLAG_NO_FILE_DATA. Signed-off-by: Mark Fasheh <mfasheh@suse.de>
* Btrfs-progs: add restore command to btrfsIan Kumlien2013-02-12
| | | | | | | | Add 'btrfs restore' command which previously existed as a separate utility btrfs-restore. Signed-off-by: Ian Kumlien <pomac@demius.net> Signed-off-by: David Sterba <dsterba@suse.cz>
* Btrfs-progs: restore.c -> cmds-restore.cIan Kumlien2013-02-12
| | | | | | | The btrfs-restore functionality will be integrated in btrs as "btrfs restore" Signed-off-by: Ian Kumlien <pomac@demius.net>
* btrfs-progs: build btrsfck to keep compatibilityDavid Sterba2013-02-12
| | | | | | | The command 'btrfsck' is commonly used and we should build it by default. Signed-off-by: David Sterba <dsterba@suse.cz>
* Btrfs-progs: add btrfsck name detection to btrfsIlya Dryomov2013-02-12
| | | | | | | | | | This patch adds a busybox-style name detection for the name "btrfsck" to btrfs utility. The idea is to maintain backwards compatibility by linking btrfsck to btrfs and have btrfs invoke the check sub-command when called through the btrfsck link. This has been suggested on the mailing list and approved by Dave and Chris. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
* Btrfs-progs: move crc32c optimization initIlya Dryomov2013-02-12
| | | | | | | Don't call crc32c_optimization_init() until we know that a command is actually going to be invoked. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
* Btrfs-progs: add btrfsck functionality to btrfsIan Kumlien2013-02-12
| | | | | | | | This patch includes the functionality of btrfs, it's found as "btrfs check". Signed-off-by: Ian Kumlien <pomac@demius.net> Signed-off-by: David Sterba <dsterba@suse.cz>
* Btrfs-progs: Rename btrfsck.c -> cmds-check.cIan Kumlien2013-02-12
| | | | | | In preparation for merging btrfsck functionality in to btrfs. Signed-off-by: Ian Kumlien <pomac@demius.net>
* Btrfs-progs: -U_FORTIFY_SOURCE before -DIan Kumlien2013-02-12
| | | | | | | | | | My builds are cluttered with: <command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default] Which makes it hard to tell if something breaks or not. Signed-off-by: Ian Kumlien <pomac@demius.net>
* Btrfs-progs: add static compile targetIan Kumlien2013-02-12
| | | | | | | | | | | | | | Sometimes, when you least expect it, a static binary is what you need to rescue your data... Or just get a good enough handle on things to make it work again ;) "make static" is a gift to you, dear user with filesystem problems! Anyway, on a more serious note, changed the cflags and ldflags so that we create a smaller binary, 1.1MB stripped on my 64 bit system (2.7MB with debug data) Signed-off-by: Ian Kumlien <pomac@demius.net>
* btrfs-progs: code cleanup for root-tree.c/btrfs_del_rootWang Sheng-Hui2013-02-07
| | | | | | | Remove the redundant if check on the condition ret > 0. Leave BUG_ON check here. Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>