summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* btrfs-progs: convert-tests: Add test for backup superblock migrationQu Wenruo2016-06-01
| | | | | | | | | | | | | | New convert framework uses new and simpler chunk layout, while the cost is the more complex superblock range migration logical, compared to old convert. Enhance the convert test script to create file which will takes up 2nd backup superblock space, to ensure the superblock migration is working as expected. Suggested-by: David Sterba <dsterba@suse.cz> Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: document cli-tests in readmeDavid Sterba2016-06-01
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: convert: dump all superblocks after conversionDavid Sterba2016-06-01
| | | | | | We want to see all of them, even if they're not valid. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: make btrfs-image restore to support dupLu Fengqi2016-06-01
| | | | | | | | | | | | | | Previously btrfs-image restore would set the chunk items to have 1 stripe, even if the chunk is dup. If you use btrfsck on the restored file system, some dev_extent will not find any relative chunk stripe, and the bytes-used of dev_item will not equal to the dev_extents's total_bytes. This patch store a additional physical just for the dup case when build the in-memory chunk-tree. Currently btrfsck on the restored file system, only single and dup is no problem. raid* support should be added in the future. Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: run rollback after conversionDavid Sterba2016-06-01
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: convert, run md5sum with sudo helperDavid Sterba2016-06-01
| | | | | | | Some of the files might not end up in the checksum list because of permissions. This is reported by md5sum as incorrectly formatted lines. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: add 020-extent-ref-casesLu Fengqi2016-06-01
| | | | | | | | | | | | | | | In order to confirm that btrfsck supports to check a variety of refs, add the following cases: * keyed_block_ref * keyed_data_ref * shared_block_ref * shared_data_ref * no_inline_ref (a extent item without inline ref) * no_skinny_ref Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: doc: fix typo in btrfs-subvolumeMerlin Hartley2016-06-01
| | | | | Signed-off-by: Merlin Hartley <merlinhartley@hotmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: switch to common message helpers in utils.cDavid Sterba2016-06-01
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: fix type mismatch in backtrace dumping functionsDavid Sterba2016-06-01
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: drop O_CREATE from open_ctree_fs_infoDavid Sterba2016-06-01
| | | | | | | We stat the filesystem path before trying to open it so there's no point to pass O_CREAT ("btrfs-progs: add stat check in open_ctree_fs_info"). Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Return earlier for previous itemQu Wenruo2016-06-01
| | | | | | | | | | | | | | Follow kernel code to return earlier for btrfs_previous_item() function. Before this patch, btrfs_previous_item() doesn't use its min_objectid to exit, this makes caller to check key to exit, and if caller doesn't check, it will iterate all previous item. This patch will check min_objectid and type, to early return and save some time. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Enhance tree block check by checking empty leaf or nodeQu Wenruo2016-06-01
| | | | | | | | | | | For btrfs, it's possible to have empty leaf, but empty node is not possible. Add check for empty node for tree blocks. Suggested-by: Josef Bacik <jbacik@fb.com> Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: makefile: add target for testing installationDavid Sterba2016-06-01
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: clean up commands.hAnand Jain2016-06-01
| | | | | | | | | | | This function is declared in utils.h so remove it from commands.h int test_issubvolume(const char *path); This function does not exists delete the declaration get_subvol_name(char *mnt, char *full_path); Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: makefile: add clean-all to the usageAnand Jain2016-06-01
| | | | | Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: device usage: report slack spaceDavid Sterba2016-06-01
| | | | | | | | | The total filesystem space on a given device might be smaller than the device size. We should report that space as well. The original idea was to report the 'occupied' size but the term was not all clear, so the logic was reversed to report the slack space. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: docs: compression is disabled with nodatasum/nodatacowDavid Sterba2016-06-01
| | | | | | Explicitly mention the constraints in all involved options. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: autogen: Make build success in CentOS 6 and 7Zhao Lei2016-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | btrfs-progs build failed in CentOS 6 and 7: #./autogen.sh ... configure.ac:131: error: possibly undefined macro: PKG_CHECK_VAR If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. ... Seems PKG_CHECK_VAR is new in pkgconfig 0.28 (24-Jan-2013): http://redmine.audacious-media-player.org/boards/1/topics/736 And the max available version for CentOS 7 in yum-repo and rpmfind.net is: pkgconfig-0.27.1-4.el7 http://rpmfind.net/linux/rpm2html/search.php?query=pkgconfig&submit=Search+...&system=centos&arch= I updated my pkgconfig to 0.30, but still failed at above error. (Maybe it is my setting problem) To make user in centos 6 and 7 building btrfs-progs without more changes, we can avoid using PKG_CHECK_VAR in following way found in: https://github.com/audacious-media-player/audacious-plugins/commit/f95ab6f939ecf0d9232b3165f9241d2ea9676b9e Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: autogen: Don't show success message on failZhao Lei2016-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | When autogen.sh failed, the success message is still in output: # ./autogen.sh ... configure.ac:131: error: possibly undefined macro: PKG_CHECK_VAR If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. Now type './configure' and 'make' to compile. # Fixed by check return value of autoconf. After patch: # ./autogen.sh ... configure.ac:132: error: possibly undefined macro: PKG_CHECK_VAR If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. # Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: autogen: Avoid chdir fail on dirname with blankZhao Lei2016-06-01
| | | | | | | | | | | | | If source put in dir with blanks, as: /var/lib/jenkins/workspace/btrfs progs autogen will failed: ./autogen.sh: line 95: cd: /var/lib/jenkins/workspace/btrfs: No such file or directory Can be fixed by adding quotes into cd command. Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: send: add quiet optionM G Berberich2016-06-01
| | | | | | | | | | | | Add new options -q,--quiet to prevent printing messages on stderr, added --verbose as alternative for -v. Moved 'Mode NO_FILE_DATA enabled' message to stderr. The default verboisty level is 1 to keep some backward compatibility. Signed-off-by: M G Berberich <btrfs@oss.m-berberich.de> [ minor adjustments in the options, help text and changelog, added manual page text ] Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: build: add support for debugging buildsDavid Sterba2016-06-01
| | | | | | | | | | | | Add an easy way to build a debugging version, without optimizations and with debugging info by default. Any overrides can be done via DEBUG_CFLAGS that are added on top of the defaults. Can be combined with V, C or W options. Usage: $ make D=1 Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: typo review of strings and commentsNicholas D Steeves2016-06-01
| | | | | Signed-off-by: Nicholas D Steeves <nsteeves@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: udev: add rules for dm devicesJeff Mahoney2016-06-01
| | | | | | | | | | | | | | | | | | | | | Systemd's btrfs rule runs btrfs dev ready on each device as it's discovered. The btrfs command is executed as a builtin command via an IMPORT{builtin} rule, which means it gets executed at rule evaluation time, not rule execution time. That means that the device mapper links haven't been setup yet and the only nodes that can be depended upon are /dev/dm-#. That we see /dev/mapper/name names in /proc/mounts is only because we replace the device name we have cached with the one passed in via mount. If we have a multi-device file system and the primary device is removed, the remaining devices will show /dev/dm-#. In addition, if the udev rule is executed again by someone generating a change event (e.g. partprobe), the names are also replaced by the /dev/dm-# names. This patch adds a new rule that adds a run rule that calls btrfs dev ready again using the device mapper links once they're created. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: prop: remove conditions which never be satisfiedSatoru Takeuchi2016-05-11
| | | | | | | | | | parse_args() always set at least one parameter, 'object', for {get,list} subcommands. In addition, it always set all three parameters, 'object', 'name', and 'value' for set subcommand. So the following conditions can be removed. Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: prop: simplify parse_args()Satoru Takeuchi2016-05-11
| | | | | | | | | | Since <object> parameter is mandatory for all subcommands, 'object' is always set by parse_args()'s callers. In addition, on setting '*name' and '*value', if 'optind < argc' is satisfied here, they are always set by parse_args()'s callers. Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* Btrfs progs v4.5.3David Sterba2016-05-11
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: update CHANGES for 4.5.3David Sterba2016-05-11
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: add fuzzed testing images, superblock and chunksLiu Bo2016-05-11
| | | | | | | | | | This adds 4 fuzz testing images, btrfsck either doesn't detect errors in them or crashes immediately. Reported-by: Vegard Nossum <vegard.nossum@oracle.com> Reported-by: Quentin Casasnovas <quentin.casasnovas@oracle.com> Signed-off-by: Liu Bo <bo.li.liu@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: replace printf with message helpers in check_superLiu Bo2016-05-11
| | | | | Signed-off-by: Liu Bo <bo.li.liu@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: add three more validation checks for superblockLiu Bo2016-05-11
| | | | | | | | | | | | | | | This adds validation checks for super_total_bytes, super_bytes_used and super_stripesize. Since these checks are made after superblock finishes checksum checking, this also adds a notice of "superblock checksum matches but..". Reported-by: Vegard Nossum <vegard.nossum@oracle.com> Reported-by: Quentin Casasnovas <quentin.casasnovas@oracle.com> Signed-off-by: Liu Bo <bo.li.liu@oracle.com> [ adjusted message wording ] Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: add validation checks for chunk loadingLiu Bo2016-05-11
| | | | | | | | | | | | | | | | | To survive fuzz filesystem images, we need various validation checks to make btrfsck detect any invalid value inside chunks including those in sys_array. Note that these checks may not be sufficient to cover all corner cases, we may need to add more later. This also refractor previous various checks into a helper function so that we can add more checks into it in the future. Reported-by: Vegard Nossum <vegard.nossum@oracle.com> Reported-by: Quentin Casasnovas <quentin.casasnovas@oracle.com> Signed-off-by: Liu Bo <bo.li.liu@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: prop: convert error messages to use error()Satoru Takeuchi2016-05-11
| | | | | | | | props.c uses 'fprintf(stderr, "ERROR: ...")' as its error messages, however we have generic error() function. Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: docs: clarify why mkfs selects single for SSDsDavid Sterba2016-05-11
| | | | | | The section raised some user questions on IRC. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: docs: update btrfs-checkDavid Sterba2016-05-11
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: docs: update btrfs-select-superDavid Sterba2016-05-11
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: docs: update btrfs-receiveDavid Sterba2016-05-11
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: docs: update btrfs-sendDavid Sterba2016-05-11
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: docs: update btrfs-scrubDavid Sterba2016-05-11
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: docs: update btrfs-man5David Sterba2016-05-11
| | | | | | Wording, added new options. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Adjust timing of safety delay countdownNoah Massey2016-05-11
| | | | | | | | | | | When printing the countdown in the safety delay, the number should correspond to the number of seconds remaining to wait at the time the delay is printed. In other words, there should be a one second sleep after printing '1'. Signed-off-by: Noah Massey <noah.massey@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: subvolume sync: fix handling of -s optionMarek Rusinowski2016-05-11
| | | | | | | | | | | | | Setting check interval for subvolume sync resulted in picking wrong element from argv for it's value: $ btrfs subvolume sync -s 10 ./dir ERROR: invalid sleep interval ./dir $ btrfs subvolume sync ./dir -s 10 Segmentation fault Signed-off-by: Marek Rusinowski <marekrusinowski@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: fix incorrect flag check while recovering superLiu Bo2016-05-11
| | | | | | | | The flag OPEN_CTREE_RECOVER_SUPER is set when it's going to recover any bad superblock copy, the current code doesn't match that. Signed-off-by: Liu Bo <bo.li.liu@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: use ioctl search headers everywhereDavid Sterba2016-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generated by following semantic patch and manually tweaked. <SmPL> @@ struct btrfs_ioctl_search_header *SH; @@ ( - SH->objectid + btrfs_search_header_objectid(SH) | - SH->offset + btrfs_search_header_offset(SH) | - SH->transid + btrfs_search_header_transid(SH) | - SH->len + btrfs_search_header_len(SH) | - SH->type + btrfs_search_header_type(SH) ) </SmPL> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=112131 Reported-and-tested-by: Anatoly Pugachev <matorola@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: add getters for ioctl search_headerDavid Sterba2016-05-11
| | | | | | | The search header is usually accessed in an unaligned way, we could trigger errors (SIGBUS) on architectures that do not support that. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: kerncompat: introduce get_unaligned helpersDavid Sterba2016-05-11
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: fi du: switch to negative error codesDavid Sterba2016-05-11
| | | | | | We're using the kernel-style negative error numbers. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: check: fix found bytes accounting errorQu Wenruo2016-05-11
| | | | | | | | | | | | In the new add_extent_rec_nolookup() function, we add bytes_used to update found bytes accounting. However there is a typo that we used tmpl->nr, which should be rec->nr. This will make us to add 1 for data backref, instead the correct size. Reported-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com> Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: check: check stripe crossing against nodesizeDavid Sterba2016-05-11
| | | | | | | | The extent record's max_size might be 0 and the stripe crossing check will report a false positive, should use the filesyste nodesize. There's a global fs_info available. Signed-off-by: David Sterba <dsterba@suse.com>