platform/upstream/btrfs-progs.git
7 years agobtrfs-progs: report I/O errors when closing the filesystem
Omar Sandoval [Fri, 3 Mar 2017 17:02:14 +0000 (09:02 -0800)]
btrfs-progs: report I/O errors when closing the filesystem

If the final fsync() on the Btrfs device fails, we just swallow the
error and don't alert the user in any way. This was uncovered by xfstest
generic/405, which checks that mkfs fails when it encounters EIO.

Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: tests: use dd in 025-file-extents for creating files
David Sterba [Wed, 1 Mar 2017 16:16:46 +0000 (17:16 +0100)]
btrfs-progs: tests: use dd in 025-file-extents for creating files

Drop the dependency on xfs_io as it's not a standard tool, though it
provides convenience. We use a simple write here so dd can manage.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: tests: fix permissions of temporary files in 025-file-extents
David Sterba [Wed, 1 Mar 2017 16:10:44 +0000 (17:10 +0100)]
btrfs-progs: tests: fix permissions of temporary files in 025-file-extents

If the tests are started from non-root user, the fallocate and xfs_io
fail. Use the root helper as a workaround, we'd should fix the perms
instead.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: enhance return values of walk_down_tree_v2
Su Yue [Tue, 21 Feb 2017 08:34:38 +0000 (16:34 +0800)]
btrfs-progs: check: enhance return values of walk_down_tree_v2

In lowmem mode, 'walk_down_tree_v2' returns negative values wheather
the error is fatal or not. It causes the loop where 'walk_down_tree_v2'
is to break even the error is tolerated and then subsequent nodes process
will be skipped.

Fix it by redefining meanings of values 'walk_down_tree_v2' returns.
Do a similar fix for 'process_one_leaf_v2'.

Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: Fix lowmem mode override to allow it skip repair work
Lu Fengqi [Tue, 21 Feb 2017 08:34:37 +0000 (16:34 +0800)]
btrfs-progs: check: Fix lowmem mode override to allow it skip repair work

Current common.local doesn't handle lowmem mode well.
It passes "--mode=lowmem" alone with "--repair", making it unable to
check lowmem mode.

It's caused by the following bugs:

1) Wrong variable in test/common.local
   We should check TEST_ARGS_CHECK, not TEST_CHECK, which is not defined
   so we never return 1.

2) Wrong parameter passed to _cmd_spec() in test/common
   This prevents us from grepping the correct parameters.

Fix it.

Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: tests: Add new test case for file extent false alerts
Qu Wenruo [Tue, 21 Feb 2017 08:34:36 +0000 (16:34 +0800)]
btrfs-progs: tests: Add new test case for file extent false alerts

Lowmem mode exposed several false alerts, all related to file extents
check.

1) Partly written prealloc extent
   Cause lowmem mode to report missing csum or prealloc extent should
   not have csum

2) Compressed inline extent
   Cause lowmem mode to find mismatch on inline len and item len.
   While no error message is output but exit silently.

Reported-by: Chris Murphy <chris@colorremedies.com>
Reported-by: Christoph Anton Mitterer <calestyo@scientia.net>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: tests: Make fsck-test/013 compatible with lowmem mode
Qu Wenruo [Tue, 21 Feb 2017 08:34:35 +0000 (16:34 +0800)]
btrfs-progs: tests: Make fsck-test/013 compatible with lowmem mode

fsck-tests/013-extent-tree-rebuild uses "--init-extent-tree", which
implies "--repair".

But the test script doesn't specify "--repair" for lowmem mode test to
detect it.

Add it so lowmem mode test can be happy with it.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: tests: Add test image for lowmem mode block group false alert
Qu Wenruo [Tue, 21 Feb 2017 08:34:34 +0000 (16:34 +0800)]
btrfs-progs: tests: Add test image for lowmem mode block group false alert

Add a minimal image which can reproduce the block group used space
false alert for lowmem mode fsck.

Reported-by: Christoph Anton Mitterer <calestyo@scientia.net>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: tests: Move fsck-tests/015 to fuzz tests
Qu Wenruo [Tue, 21 Feb 2017 08:34:33 +0000 (16:34 +0800)]
btrfs-progs: tests: Move fsck-tests/015 to fuzz tests

The test case fsck-tests/015-check-bad-memory-access can't be repair by
btrfs check, and it's a fortunate bug makes original mode to forget the
error code from extent tree, making original mode pass it.

So fuzz-tests is more suitable for it.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: lowmem: Fix silent error if first inode item missing
Qu Wenruo [Tue, 21 Feb 2017 08:34:32 +0000 (16:34 +0800)]
btrfs-progs: check: lowmem: Fix silent error if first inode item missing

If first inode item is missing, lowmem check will detect it but does not
output any error message.

Add error message for it.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: lowmem: Fix false alert on inline compressed extent
Qu Wenruo [Tue, 21 Feb 2017 08:34:31 +0000 (16:34 +0800)]
btrfs-progs: check: lowmem: Fix false alert on inline compressed extent

Old lowmem check doesn't check if the inline extent is compressed and
always checks extent numbytes against inline item size.

And when it finds the extent numbytes mismatch with inline item size it
doesn't output any error message, just return error silently, making it
quite hard to debug.

Fix it by only checking extent numbytes against inline item size when
the extent is not compressed, and output error message.

Reported-by: Christoph Anton Mitterer <calestyo@scientia.net>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: lowmem: Fix extent item size false alert
Qu Wenruo [Tue, 21 Feb 2017 08:34:30 +0000 (16:34 +0800)]
btrfs-progs: check: lowmem: Fix extent item size false alert

If one extent item has no inline ref, btrfs lowmem mode check can give
false alert without outputting any error message.

The problem is lowmem mode always assumes that extent item has inline
refs, and when it encounters such case it flags the extent item has
wrong size, but doesn't output the error message.

Although we already have such image submitted, at the commit time due to
another bug in cmds-check return value, it doesn't detect it until that
bug is fixed.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: lowmem: Fix false alert in checking data extent csums
Qu Wenruo [Tue, 21 Feb 2017 08:34:29 +0000 (16:34 +0800)]
btrfs-progs: check: lowmem: Fix false alert in checking data extent csums

Btrfs lowmem check can report false csum error like:
ERROR: root 5 EXTENT_DATA[257 0] datasum missing
ERROR: root 5 EXTENT_DATA[257 4096] prealloc shouldn't have datasum

This is because lowmem check code always compare the found csum size
with the whole extent which data extents points to.

Normally it's OK, but when prealloc extent is written, or reflink is
done, data extent can points to part of a larger extent, making the csum
check wrong.

To fix it, the csum check part is modified to handle plain and
compressed extents in different ways:

1) Plain extent
   Only search csums for the range it refers to.
   So the search range is from (disk_bytenr + extent_offset) and search
   length is (extent_num_bytes)

2) Compressed extent
   Search the whole extent.
   Search range is from (disk_bytner) and search length is
   (disk_num_bytes)

Reported-by: Chris Murphy <chris@colorremedies.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: Output verbose error when fsck found a bug in any tree
Qu Wenruo [Tue, 21 Feb 2017 08:34:28 +0000 (16:34 +0800)]
btrfs-progs: check: Output verbose error when fsck found a bug in any tree

Although we output error like "errors found in extent allocation tree or
chunk allocation", but we lacks such output for other trees, but leaving
the final "found error is %d" to catch the last return value(and
sometime it's cleared)

This patch adds extra error message for top level error path, and modify
the last "found error is %d" to "error(s) found" or "no error found".

Cc: Christoph Anton Mitterer <calestyo@scientia.net>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: lowmem: Fix several bugs related to afterward search
Qu Wenruo [Tue, 21 Feb 2017 08:34:27 +0000 (16:34 +0800)]
btrfs-progs: check: lowmem: Fix several bugs related to afterward search

Since btrfs_search_slot() can point to the slot which is beyond the
leaves' capacity, we should pay extra attention when doing afterward
search.

While for lowmem check, several places uses afterward search:
1) Block group item used space check
2) Device item used space check
3) Data extent backref check.

In the following case for block group item check, btrfs lowmem mode
check will skip the block group and report false alert:

leaf 29405184 items 37 free space 1273 generation 11 owner 2
...
        item 36 key (77594624 EXTENT_ITEM 2097152)
                extent refs 1 gen 8 flags DATA
                extent data backref root 5 objectid 265 offset 0 count 1
leaf 29409280 items 43 free space 670 generation 11 owner 2
        item 0 key (96468992 EXTENT_ITEM 2097152)
                extent refs 1 gen 8 flags DATA
                extent data backref root 5 objectid 274 offset 0 count 1
        item 1 key (96468992 BLOCK_GROUP_ITEM 33554432)
                block group used 2265088 chunk_objectid 256 flags DATA

When checking block group item, we will search key (96468992 0 0) to
start from the first item in the block group.

While search_slot() will point to leaf 29405184, slot 37 which is beyond
leaf capacity.

And when reading key from slot 37, uninitialized data can be read out
and cause us to exit block group item check, leading to false alert.

Fix it by checking path.slot[0] before reading out the key.

Reported-by: Christoph Anton Mitterer <calestyo@scientia.net>
Reported-by: Chris Murphy <chris@colorremedies.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: docs: fix many typos, plus three edits for clarity
Nicholas D Steeves [Tue, 21 Feb 2017 23:14:38 +0000 (18:14 -0500)]
btrfs-progs: docs: fix many typos, plus three edits for clarity

Signed-off-by: Nicholas D Steeves <nsteeves@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: send-dump: add missing newlines
Benedikt Morbach [Wed, 22 Feb 2017 21:32:46 +0000 (22:32 +0100)]
btrfs-progs: send-dump: add missing newlines

make sure to include newlines after commands that have only one
argument, such as 'unlink' or 'mkfile'

changes

    unlink          ./baz.0/file_autimes          ./baz.0/                        atime=2017-02-22T11:59:16+0100 mtime=2017-02-22T11:59:16+0100 ctime=2017-02-22T11:59:16+0100
    truncate        ./baz.0/file_a                  size=131072
    chmod           ./baz.0/file_a                  mode=644
    utimes          ./baz.0/file_a                  atime=2017-02-22T11:59:16+0100 mtime=2017-02-22T11:59:16+0100 ctime=2017-02-22T11:59:16+0100
    mkfile          ./baz.0/o258-11-0rename          ./baz.0/o258-11-0               dest=./baz.0/file_b
    utimes          ./baz.0/                        atime=2017-02-22T11:59:16+0100 mtime=2017-02-22T11:59:16+0100 ctime=2017-02-22T11:59:16+0100

to

    unlink          ./baz.0/file_a
    utimes          ./baz.0/                        atime=2017-02-22T11:59:16+0100 mtime=2017-02-22T11:59:16+0100 ctime=2017-02-22T11:59:16+0100
    truncate        ./baz.0/file_a                  size=131072
    chmod           ./baz.0/file_a                  mode=644
    utimes          ./baz.0/file_a                  atime=2017-02-22T11:59:16+0100 mtime=2017-02-22T11:59:16+0100 ctime=2017-02-22T11:59:16+0100
    mkfile          ./baz.0/o258-11-0
    rename          ./baz.0/o258-11-0               dest=./baz.0/file_b
    utimes          ./baz.0/                        atime=2017-02-22T11:59:16+0100 mtime=2017-02-22T11:59:16+0100 ctime=2017-02-22T11:59:16+0100

Signed-off-by: Benedikt Morbach <benedikt.morbach@googlemail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: docs: fix typo in btrfs-quota
Joey Sabey [Wed, 22 Feb 2017 09:08:17 +0000 (09:08 +0000)]
btrfs-progs: docs: fix typo in btrfs-quota

qgruops -> qgroups

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: docs: fix typo in btrfs-quota
Joey Sabey [Wed, 22 Feb 2017 09:04:19 +0000 (09:04 +0000)]
btrfs-progs: docs: fix typo in btrfs-quota

reinstall ation -> reinstallation

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: tests: fix library-test rules and deps
David Sterba [Mon, 20 Feb 2017 13:58:57 +0000 (14:58 +0100)]
btrfs-progs: tests: fix library-test rules and deps

The symbol __error was undefined and the rule did not use the
dependencies from the rule definiton, like the rest.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: readme: fix link to issue tracker on github.
Matthias Krüger [Sat, 18 Feb 2017 10:11:33 +0000 (11:11 +0100)]
btrfs-progs: readme: fix link to issue tracker on github.

Signed-off-by: Matthias Krüger <matthias.krueger@famsik.de>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: docs: fix typo in btrfs-scrub manual page
Erik Logtenberg [Fri, 17 Feb 2017 20:11:48 +0000 (21:11 +0100)]
btrfs-progs: docs: fix typo in btrfs-scrub manual page

Changed "An" to "A".

Signed-off-by: Erik Logtenberg <erik@logtenberg.eu>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: corrupt-block: remove unused argument from corrupt_extent
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: corrupt-block: remove unused argument from corrupt_extent

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: mkfs: remove unused argument from add_file_items
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: mkfs: remove unused argument from add_file_items

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: image: remove unused argument from copy_log_trees
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: image: remove unused argument from copy_log_trees

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: mkfs: remove unused arguments from add_inode_items
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: mkfs: remove unused arguments from add_inode_items

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: mkfs: remove unused argument from make_root_dir
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: mkfs: remove unused argument from make_root_dir

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from maybe_repair_root_item
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from maybe_repair_root_item

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from process_duplicates
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from process_duplicates

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from print_device_chunks
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from print_device_chunks

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from print_device_sizes
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from print_device_sizes

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from get_raid56_used
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from get_raid56_used

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from calc_extent_flag
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from calc_extent_flag

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from fix_item_offset
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from fix_item_offset

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from delete_bogus_item
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from delete_bogus_item

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from fix_key_order
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from fix_key_order

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from free_extent_record_cache
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from free_extent_record_cache

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from create_inode_item
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from create_inode_item

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused arguments from delete_dir_index
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused arguments from delete_dir_index

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from check_child_node
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from check_child_node

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: check: remove unused argument from process_dir_item
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: check: remove unused argument from process_dir_item

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from clear_extent_dirty
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from clear_extent_dirty

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from set_extent_dirty
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from set_extent_dirty

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from btrfs_add_system_chunk
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from btrfs_add_system_chunk

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from set_extent_bits
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from set_extent_bits

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from clear_extent_bits
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from clear_extent_bits

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused function wait_on_tree_block_writeback
David Sterba [Thu, 9 Feb 2017 17:01:31 +0000 (18:01 +0100)]
btrfs-progs: remove unused function wait_on_tree_block_writeback

This used to be a kernel stub but has been removed from kernel long time
ago.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from btrfs_lookup_inode_ref
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from btrfs_lookup_inode_ref

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from free_chunk_item
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from free_chunk_item

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from write_and_map_eb
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from write_and_map_eb

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from setup_inline_extent_backref
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from setup_inline_extent_backref

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from extent_data_ref_count
David Sterba [Thu, 9 Feb 2017 16:42:02 +0000 (17:42 +0100)]
btrfs-progs: remove unused argument from extent_data_ref_count

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused argument from btrfs_csum_data
David Sterba [Thu, 9 Feb 2017 16:39:44 +0000 (17:39 +0100)]
btrfs-progs: remove unused argument from btrfs_csum_data

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused parameter from truncate_one_csum
David Sterba [Thu, 9 Feb 2017 16:32:05 +0000 (17:32 +0100)]
btrfs-progs: remove unused parameter from truncate_one_csum

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: opencode trivial helper btrfs_free_transaction
David Sterba [Thu, 9 Feb 2017 16:24:50 +0000 (17:24 +0100)]
btrfs-progs: opencode trivial helper btrfs_free_transaction

It also does not exist in kernel code.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: remove unused helpers from ctree.h
David Sterba [Thu, 9 Feb 2017 16:23:05 +0000 (17:23 +0100)]
btrfs-progs: remove unused helpers from ctree.h

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: shared: cleanup includes in ulist.c
David Sterba [Thu, 9 Feb 2017 15:54:17 +0000 (16:54 +0100)]
btrfs-progs: shared: cleanup includes in ulist.c

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: shared: remove debug code from ulist
David Sterba [Thu, 9 Feb 2017 15:21:04 +0000 (16:21 +0100)]
btrfs-progs: shared: remove debug code from ulist

Sync with kernel sources, we don't define CONFIG_BTRFS_DEBUG in
userspace anyway.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: shared: copy ulist_del from kernel
David Sterba [Thu, 9 Feb 2017 15:16:02 +0000 (16:16 +0100)]
btrfs-progs: shared: copy ulist_del from kernel

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: move ulist.[ch] to kernel-shared
David Sterba [Thu, 9 Feb 2017 15:13:14 +0000 (16:13 +0100)]
btrfs-progs: move ulist.[ch] to kernel-shared

The implementation of ulist_* is same for kernel and userspace, without
dependencies, so we can keep it separately for code sync.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: move prefixcmp helper to utils
David Sterba [Thu, 9 Feb 2017 14:20:16 +0000 (15:20 +0100)]
btrfs-progs: move prefixcmp helper to utils

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: Remove unused function arg in delete_extent_records
Goldwyn Rodrigues [Fri, 3 Feb 2017 16:15:32 +0000 (10:15 -0600)]
btrfs-progs: Remove unused function arg in delete_extent_records

new_len is not used in delete_extent_records().

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: better document btrfs receive security
Austin S. Hemmelgarn [Fri, 3 Feb 2017 19:38:05 +0000 (14:38 -0500)]
btrfs-progs: better document btrfs receive security

This adds some extra documentation to the btrfs-receive manpage that
explains some of the security related aspects of btrfs-receive.  The
first part covers the fact that the subvolume being received is writable
until the receive finishes, and the second covers the current lack of
sanity checking of the send stream.

Signed-off-by: Austin S. Hemmelgarn <ahferroin7@gmail.com>
Suggested-by: Graham Cobb <g.btrfs@cobb.uk.net>
Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: drop unused argument from btrfs_del_ptr
David Sterba [Thu, 2 Feb 2017 12:38:44 +0000 (13:38 +0100)]
btrfs-progs: drop unused argument from btrfs_del_ptr

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: drop unused argument from btrfs_extend_item
David Sterba [Thu, 2 Feb 2017 12:38:44 +0000 (13:38 +0100)]
btrfs-progs: drop unused argument from btrfs_extend_item

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: drop unused argument from btrfs_truncate_item
David Sterba [Thu, 2 Feb 2017 12:38:44 +0000 (13:38 +0100)]
btrfs-progs: drop unused argument from btrfs_truncate_item

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: docs: fix typo in receive man page
Jonathan Boulle [Fri, 27 Jan 2017 17:08:26 +0000 (18:08 +0100)]
btrfs-progs: docs: fix typo in receive man page

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: move message helpers implementation out of header
David Sterba [Wed, 1 Feb 2017 15:20:23 +0000 (16:20 +0100)]
btrfs-progs: move message helpers implementation out of header

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: move message helpers out of utils
David Sterba [Wed, 1 Feb 2017 15:14:06 +0000 (16:14 +0100)]
btrfs-progs: move message helpers out of utils

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: move utils code out of header
David Sterba [Wed, 1 Feb 2017 15:09:47 +0000 (16:09 +0100)]
btrfs-progs: move utils code out of header

There are not performance critical static inlines, we can do the normal
declaration/definition split for various helpers.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: improve assert in make_convert_btrfs
David Sterba [Wed, 1 Feb 2017 14:41:06 +0000 (15:41 +0100)]
btrfs-progs: convert: improve assert in make_convert_btrfs

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: rename members that clash with other functions
David Sterba [Wed, 1 Feb 2017 14:06:04 +0000 (15:06 +0100)]
btrfs-progs: convert: rename members that clash with other functions

Rename 'free' and also 'used' for consistency.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: mkfs: use const char for label
David Sterba [Wed, 1 Feb 2017 13:27:24 +0000 (14:27 +0100)]
btrfs-progs: mkfs: use const char for label

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: mkfs: make make_cfg::blocks an internal member
David Sterba [Wed, 1 Feb 2017 13:25:18 +0000 (14:25 +0100)]
btrfs-progs: mkfs: make make_cfg::blocks an internal member

The caller of make_btrfs does not need to set it, it's for internal use
and can be read after mkfs ends.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: mkfs: describe fields of btrfs_mkfs_config
David Sterba [Wed, 1 Feb 2017 13:17:12 +0000 (14:17 +0100)]
btrfs-progs: mkfs: describe fields of btrfs_mkfs_config

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: mkfs: clear whole mkfs_cfg at once
David Sterba [Wed, 1 Feb 2017 13:15:08 +0000 (14:15 +0100)]
btrfs-progs: mkfs: clear whole mkfs_cfg at once

Zero out the structure and set only the requested fields.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: build: remove unused variables from docs makefile
David Sterba [Wed, 1 Feb 2017 12:37:42 +0000 (13:37 +0100)]
btrfs-progs: build: remove unused variables from docs makefile

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: build: use MAKEOPTS where missing
David Sterba [Wed, 1 Feb 2017 12:23:04 +0000 (13:23 +0100)]
btrfs-progs: build: use MAKEOPTS where missing

$(MAKE) should also use MAKEOPTS.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: build: drop deprecated utility from test dependencies
David Sterba [Wed, 1 Feb 2017 10:53:21 +0000 (11:53 +0100)]
btrfs-progs: build: drop deprecated utility from test dependencies

Standalone btrfs-debug-tree has been superseded by
'btrfs inspect-internal dump-tree'.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: move internal bg size definition
David Sterba [Wed, 1 Feb 2017 10:42:01 +0000 (11:42 +0100)]
btrfs-progs: convert: move internal bg size definition

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: rename ext2 function to create a symlink
David Sterba [Tue, 31 Jan 2017 10:08:09 +0000 (11:08 +0100)]
btrfs-progs: convert: rename ext2 function to create a symlink

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: move mkfs helper implementation out of utils
David Sterba [Tue, 31 Jan 2017 22:13:54 +0000 (23:13 +0100)]
btrfs-progs: move mkfs helper implementation out of utils

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: move more mkfs declarations to the common header
David Sterba [Tue, 31 Jan 2017 22:13:54 +0000 (23:13 +0100)]
btrfs-progs: move more mkfs declarations to the common header

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: kerncompat: print trace from ASSERT, if enabled
David Sterba [Tue, 31 Jan 2017 19:34:27 +0000 (20:34 +0100)]
btrfs-progs: kerncompat: print trace from ASSERT, if enabled

Commit bc2d4ccc46e2807964c74ce805fb6405ca2bc842 "btrfs-progs:
kerncompat: disconnect assert and warning messages" forgot to add the
print_trace call to assert_trace.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: build: build library by default
David Sterba [Mon, 30 Jan 2017 17:15:31 +0000 (18:15 +0100)]
btrfs-progs: build: build library by default

Add a convenience rule and build the library by default, not just at the
installation phase.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: build: add stub makefile to convert
David Sterba [Mon, 30 Jan 2017 17:00:39 +0000 (18:00 +0100)]
btrfs-progs: build: add stub makefile to convert

A shortcut to compile btrfs-convert from inside the directory.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: use bit field for convert flags
David Sterba [Mon, 30 Jan 2017 16:52:15 +0000 (17:52 +0100)]
btrfs-progs: convert: use bit field for convert flags

Use one flag field instead of several variables. The change cascades
down to the callchain and modifies several functions.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: use helper for special inode number check
David Sterba [Mon, 30 Jan 2017 16:14:03 +0000 (17:14 +0100)]
btrfs-progs: convert: use helper for special inode number check

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: better error handling in ext2_read_used_space
David Sterba [Mon, 30 Jan 2017 15:58:57 +0000 (16:58 +0100)]
btrfs-progs: convert: better error handling in ext2_read_used_space

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: remove unused includes
David Sterba [Mon, 30 Jan 2017 15:52:07 +0000 (16:52 +0100)]
btrfs-progs: convert: remove unused includes

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: use on-stack buffer for subvol name dir
David Sterba [Mon, 30 Jan 2017 13:20:30 +0000 (14:20 +0100)]
btrfs-progs: convert: use on-stack buffer for subvol name dir

Get rid of dynamic allocation.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: use fixed lenght array for source fs name
David Sterba [Mon, 30 Jan 2017 13:11:19 +0000 (14:11 +0100)]
btrfs-progs: convert: use fixed lenght array for source fs name

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: move struct initialization to the init function
David Sterba [Mon, 30 Jan 2017 12:41:36 +0000 (13:41 +0100)]
btrfs-progs: convert: move struct initialization to the init function

The context is zeroed in convert_open_fs after and overwrites the rbtree
initialization, which accidentally is the same (NULL).

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: build: add rule for building cscope index
David Sterba [Mon, 30 Jan 2017 12:29:22 +0000 (13:29 +0100)]
btrfs-progs: build: add rule for building cscope index

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: build: split makefile to generated and stable parts
David Sterba [Mon, 30 Jan 2017 10:04:16 +0000 (11:04 +0100)]
btrfs-progs: build: split makefile to generated and stable parts

It's not really necessary to configure and regenerate Makefiles in cases
like adding a new source file. The build environment and optional
features are not affected by that.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: build: add rule for ctags
David Sterba [Mon, 30 Jan 2017 09:49:55 +0000 (10:49 +0100)]
btrfs-progs: build: add rule for ctags

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: update some forward declarations
David Sterba [Mon, 30 Jan 2017 09:36:16 +0000 (10:36 +0100)]
btrfs-progs: convert: update some forward declarations

Add missing and reorder so they come next to the structures using them.

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: convert: use wider types types for inode counts for progress reports
David Sterba [Mon, 30 Jan 2017 09:33:01 +0000 (10:33 +0100)]
btrfs-progs: convert: use wider types types for inode counts for progress reports

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: mkfs: make list of source fs more visible
David Sterba [Mon, 30 Jan 2017 09:11:22 +0000 (10:11 +0100)]
btrfs-progs: mkfs: make list of source fs more visible

Signed-off-by: David Sterba <dsterba@suse.com>
7 years agobtrfs-progs: build: remove directory-specific include paths
David Sterba [Fri, 27 Jan 2017 18:12:08 +0000 (19:12 +0100)]
btrfs-progs: build: remove directory-specific include paths

The convert and image utilities used include, but we specify the headers
by path relative to the toplevel directory for clarity. The compiler
option is not needed.

Signed-off-by: David Sterba <dsterba@suse.com>