summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* btrfs-progs: build: use -std=gnu89 for sparseDavid Sterba2017-09-25
| | | | | | | Sparse does not seem to support gnu90 that we'd like to keep for the regular build. Use gnu89 for C=1 build. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: build: add missing defines for the C=1 buildDavid Sterba2017-09-25
| | | | | | | | Sparse complains that BTRFSCONVERT_EXT2 and _RESIERFS are not defined. The per-target options are missing from the default CFLAGS and only added in the specific rule. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: updated and add missing function attributes to the definitionDavid Sterba2017-09-25
| | | | | | | Reported by sparse. Make the prototype match the definition and put the attributes before the function. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: free-space-cache: fix endianity when reading from disk_keyDavid Sterba2017-09-25
| | | | | | | | | | | | | | Sparse reports: free-space-cache.c:921:13: warning: incorrect type in assignment (different base types) free-space-cache.c:921:13: expected unsigned long long [unsigned] [usertype] ino free-space-cache.c:921:13: got restricted __le64 [addressable] [usertype] objectid we need to use the helper to read objectid, as read_eb_member just copies the data without disk->cpu transformation. This could lead to bogus results on bigendian machines. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: print-tree: use proper helper for reading offsetDavid Sterba2017-09-25
| | | | | | | | | | | | | Sparse warns print-tree.c:1261:49: warning: incorrect type in argument 4 (different base types) print-tree.c:1261:49: expected unsigned long long [unsigned] [usertype] start print-tree.c:1261:49: got restricted __le64 [addressable] [usertype] offset which means we have to use the helper instead of directly accessing the offset member. This could print bogus number on bigendian arch. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: fix debugging macro checksDavid Sterba2017-09-25
| | | | | | | Sparse warns that the DEBUG_*_ERROR macros are not defined when checked. Use the ifdef check rather then relying on the implicit behaviour. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: Remove misleading BCP 78 boilerplate from SHA implementationNicholas D Steeves2017-09-25
| | | | | | | | | | | | | | | | | | | BCP 78 applies to RFC 6234, but sha224-256.c is Simplified BSD. This causes the following lintian error when building on Debian and Debian derivatives: E: btrfs-progs source: license-problem-non-free-RFC-BCP78 tests/sha224-256.c Please consult the following email from debian-legal@lists.debian.org for more information: https://lists.debian.org/debian-legal/2017/08/msg00004.html Signed-off-by: Nicholas D Steeves <nsteeves@gmail.com> [ I've copied too much from the RFC that's not related to the code, covered by the explicit copyright notice in the file ] Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: Add required IETF Trust copyright to SHA implementationNicholas D Steeves2017-09-25
| | | | | Signed-off-by: Nicholas D Steeves <nsteeves@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: docs: start ioctl documentation manual pageDavid Sterba2017-09-25
| | | | | | | | | | | | Start documenting the ioctl interface to btrfs. The overall structure should be settled, the formatting of the ioctl description may change in the future, newly added ioctl descriptions should follow the examples of BTRFS_IOC_SUBVOL_CREATE. The document is not finished yet and will not be installed until most of ioctls' details are filled in. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: make sure _is_file_or_command does not get confusedDavid Sterba2017-09-25
| | | | | | | | | | | The test cli/007-check-force reports something like: $ type -p '--string that starts with dashes' bash: type: --: invalid option Add the option/argument separator. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Fix one-byte overlap bug in free_block_group_cacheQu Wenruo2017-09-25
| | | | | | | | | | | | | | | | free_block_group_cache() calls clear_extent_bits() with wrong end, which is one byte larger than the correct range. This will cause the next adjacent cache state to be split. And due to the split, private pointer (which points to block group cache) will be reset to NULL. This is very hard to detect as this function only gets called in cleanup_temp_chunks() which is just before mkfs finishes. This bug only gets exposed when reworking --rootdir option. Signed-off-by: Qu Wenruo <quwenruo.btrfs@gmx.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Refactor find_next_chunk to get rid of parameter root and objectidQu Wenruo2017-09-25
| | | | | | | | | | | | | Function find_next_chunk() is used to find next chunk start position, which should only do search on chunk tree and objectid is set to BTRFS_FIRST_CHUNK_TREE_OBJECTID. So refactor the parameter list to get rid of @root, which should be obtained from fs_info->chunk_root, and @objectid, which is set to BTRFS_FIRST_CHUNK_TREE_OBJECTID. Signed-off-by: Qu Wenruo <quwenruo.btrfs@gmx.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: build: omit unnecessary -MD flagNaohiro Aota2017-09-25
| | | | | | | | | | | According to gcc(1), "-MD is equivalent to -M -MF file, except that -E is not implied." Since the rule in the Makefile is just generating dependency file and not building object file, it is no use to have "-MD" here. Also, it's overridden and conflicting with the following "-MM" flag. I guess we can drop it. Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: build: generate all dependency filesNaohiro Aota2017-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're missing several dependency files like: $ diff -u <(find -name '*.o'|cut -d. -f2|sort) <(find -name '*.o.d'|cut -d. -f2|sort) @@ -3,7 +3,6 @@ /btrfs-corrupt-block /btrfs-debug-tree /btrfs-find-root -/btrfs-list /btrfs-map-logical /btrfs-select-super /btrfstune @@ -29,11 +28,6 @@ /cmds-scrub /cmds-send /cmds-subvolume -/convert/common -/convert/main -/convert/source-ext2 -/convert/source-fs -/convert/source-reiserfs /ctree /dir-item /disk-io <snip> This is due to moving things out of objects and cmds_objects variables. Such missing dependency files cause mis-building of some source files (try touch utils.h; make mkfs/main.o). This patch introduce a new variable "all_objects" to keep all the objects and use the variable to generate proper dependency file building rules. Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: mkfs: refactor create_data_reloc_treeyingyil2017-09-25
| | | | | | | | | Add an objectid parameter to make the function a general one for inserting root items and rename it to create_tree. The change cascades down to the callchain. Signed-off-by: yingyil <yingyil@google.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: build: whitespace adjustment of [LD] fssumDavid Sterba2017-09-25
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: remove temporary images in mkfs/005 and mkfs/006David Sterba2017-09-25
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: remove temporary loopdev filesDavid Sterba2017-09-25
| | | | | | Remove files for testing loop devices when using the helper. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: convert: use correct string printing for errcode_tDavid Sterba2017-09-25
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: cleanup whitespaces of btrfs-completionMisono, Tomohiro2017-09-25
| | | | | | | Clean up spaces and use only tabs. No functional change. Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: add testing image for zstd for btrfs-restoreNick Terrell2017-09-25
| | | | | | | | | | | Adds tests for the new features based on a prebuilt btrfs image with a zstd compressed file. Split from the previous patch. Signed-off-by: Nick Terrell <terrelln@fb.com> [ with some cleanups ] Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Add zstd supportNick Terrell2017-09-25
| | | | | | | | | | | | | | | | Adds zstd support to the btrfs program. An optional dependency on libzstd >= 1.0.0 is added. Autoconf accepts `--enable-zstd' or `--disable-zstd' and defaults to detecting if libzstd is present using `pkg-config'. The patch is also available in my fork of btrfs-progs [1], which passes Travis-CI with the new tests. The prebuilt binary is available there. I haven't updated Android.mk. [1] https://github.com/terrelln/btrfs-progs/tree/devel Signed-off-by: Nick Terrell <terrelln@fb.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: update btrfs-completionMisono, Tomohiro2017-09-25
| | | | | | | | | | | | This patch updates btrfs-completion: - add "filesystem du" and "rescure zero-log" - restrict _btrfs_mnts to show btrfs type only - add more completion in last case statements (This file contains both spaces/tabs and may need cleanup.) Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: build: sync Makefile to Android.mkDavid Sterba2017-09-25
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: fix run_mustfail in cli-tests/007-check-forceDavid Sterba2017-09-25
| | | | | | | | The sanity check in run_mustfail does not work as expected and allowed the command to continue without the missing parameter Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=196893 Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: README: update links, enhance contribution sectionDavid Sterba2017-09-25
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: image: use CRC32C reversing instead of brute force to find ↵Piotr Pawlow2017-09-25
| | | | | | | collisions Author: Piotr Pawlow <pp@siedziba.pl> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: image: add a function to check if generated filename suffix is ↵Piotr Pawlow2017-09-25
| | | | | | | valid Author: Piotr Pawlow <pp@siedziba.pl> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: image: add a function to calculate CRC32C collisionsPiotr Pawlow2017-09-25
| | | | | | | | | | The function uses the reverse CRC32C table to quickly calculate a 4-byte suffix, that when added to the original data will make it match desired checksum. Author: Piotr Pawlow <pp@siedziba.pl> [ minor adjustments ] Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: image: add reverse CRC32C tablePiotr Pawlow2017-09-25
| | | | | | | The table will be used to speed up calculations of CRC32C collisions. Author: Piotr Pawlow <pp@siedziba.pl> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: image: move core find_collision code to a separate functionPiotr Pawlow2017-09-25
| | | | | Author: Piotr Pawlow <pp@siedziba.pl> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: image: fix non-printable characters in generated file namesPiotr Pawlow2017-09-25
| | | | | | | | | Function find_collision sometimes generated file names with non-printable DEL characters (code 127), for example file name "|5gp!" would be changed to "U'2<DEL>y" when using "crc-collisions" sanitize mode. Author: Piotr Pawlow <pp@siedziba.pl> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: Removed missing header file, fixes compilation errorUli Heller2017-09-25
| | | | | | | (From pull request #61.) Author: Uli Heller <uli.heller@daemons-point.com> Signed-off-by: David Sterba <dsterba@suse.com>
* Btrfs progs v4.13David Sterba2017-09-08
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: update CHANGES for v4.13David Sterba2017-09-08
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: test: add new test for inspect-internal rootidMisono, Tomohiro2017-09-08
| | | | | | | | | | | This new test checks inspect-internal rootid - handle path to subvolume/directory/file as an argument - get different id for each subvolume - get the expected id for each file/directory (i.e. the same as containing subvolume) Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: check for kernel support for reiserfsDavid Sterba2017-09-08
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: enhance post-rollback fsck testsDavid Sterba2017-09-08
| | | | | | | | The post-rollback helper still assumes just extN, we need an extra argument that'll get passed to fsck. Change all callsites at once so the tests do not fail temporarily. Signed-off-by: David Sterba <dsterba@suse.com>
* Btrfs-progs: print-tree: check num_stripes in print_chunkZhang Yu2017-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | [TEST/fuzz] case: 004-simple-dump-tree Since the wrong key(DATA_RELOC_TREE CHUNK_ITEM 0) in root tree, error calling print_chunk(), resulting in num_stripes == 0. ERROR: [TEST/fuzz] 004-simple-dump-tree ctree.h:317: btrfs_chunk_item_size: BUG_ON `num_stripes == 0` triggered, value 1 failed (ignored, ret=134): /myproject/btrfs-progs/btrfs inspect-internal dump-tree /myproject/btrfs-progs/tests/fuzz-tests/images/ bko-155201-wrong-chunk-item-in-root-tree.raw.restored test failed for case 004-simple-dump-tree Makefile:288: recipe for target 'test-fuzz' failed make: *** [test-fuzz] Error 1 So, check on num_stripes in print_chunk Signed-off-by: Zhang Yu <zhangyu-fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: test: fix name generation not to contain trailing spacesMisono, Tomohiro2017-09-08
| | | | | | | | | | | | | First patch causes test-convert fails. This is because generate_dataset() creates a name containing trailing spaces for "slow_symlink" type, and cause getfacl error in convert_test_perm(). (This is not noticed since original run_check_stdout() throws away the error.) Fix this by use space for delimiter for cut. Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: test: fix run_check_stdout() call _fail()Misono, Tomohiro2017-09-08
| | | | | | | | | | run_check_stdout() uses "... | tee ... || _fail". However, since tee won't fail, _fail() is not called even if first command fails. Fix this by checking PIPESTATUS in the end. Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: Add test case for mkfs --rootdir parameterQu Wenruo2017-09-08
| | | | | | | | Add test case which checks if -r|--rootdir mkfs option can handle symlink/char/block/fifo files. Signed-off-by: Qu Wenruo <quwenruo.btrfs@gmx.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: mkfs: Fix wrong file type for dir items and indexes when ↵Qu Wenruo2017-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | specifying root directory [Bug] If using mkfs.btrfs with "-r" parameter and specified directory has fifo/socket/char/block special file, then created filesystem can't pass fsck: ------ checking fs roots unresolved ref dir 241158 index 3 namelen 9 name S.dirmngr filetype 0 errors 80, filetype mismatch ERROR: errors found in fs roots ------ [Reason] Btrfs dir items/indexes records inode type, while "-r" only handles directories, regular files and symlink, it makes such special files type to be regular file and caused the problem. [Fix] Add missing types for add_directory_items(), so that result of "mkfs.btrfs -r" can pass mkfs. Signed-off-by: Qu Wenruo <quwenruo.btrfs@gmx.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: mkfs: Move the tree root creation to own functionGu Jinxiang2017-09-08
| | | | | | | | | | | | | make_btrfs is too long to understand, make creatation of root tree in a function. Some of the tree roots are now created in a loop, where the code is just copypasted. We now make use of the reference_root_table to translate block index to root objectid. Signed-off-by: Gu Jinxiang <gujx@cn.fujitsu.com> [ updated changelog ] Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: missing device and slack space reportDavid Sterba2017-09-08
| | | | | | | Verify that a missing device will not result in reporting a negative value interpreted as 16EiB. Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: device usage: don't calculate slack on missing devicePatrik Lundquist2017-09-08
| | | | | | | | Print Device slack: 0.00B instead of Device slack: 16.00EiB Signed-off-by: Patrik Lundquist <patrik.lundquist@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: inspect rootid: Allow a file to be specifiedMisono, Tomohiro2017-09-08
| | | | | | | | | | | | | Since cmd_inspect_rootid() calls btrfs_open_dir(), it rejects a file to be specified. But as the document says, a file should be supported. This patch introduces btrfs_open_file_or_dir(), which is a counterpart of btrfs_open_dir(), to safely check and open btrfs file or directory. The original btrfs_open_dir() content is moved to btrfs_open() and shared by both function. Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: convert misc/011-delete-missing-device to loopdevsDavid Sterba2017-09-08
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: convert misc/006-image-on-missing-device to loopdevsDavid Sterba2017-09-08
| | | | Signed-off-by: David Sterba <dsterba@suse.com>
* btrfs-progs: tests: move loopdev helpers out of the testcase to commonDavid Sterba2017-09-08
| | | | Signed-off-by: David Sterba <dsterba@suse.com>