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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
David Sterba [Fri, 27 Jan 2017 18:09:05 +0000 (19:09 +0100)]
btrfs-progs: build: use target deps on commandline via automatic variable
The dependencies are duplicated in many targets, but we can use the $^
variable to simplify the command line.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 18:00:10 +0000 (19:00 +0100)]
btrfs-progs: build: replace target names with automatic variable
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 17:50:56 +0000 (18:50 +0100)]
btrfs-progs: build: reorder target dependencies
Reorder target dependencies:
1) target-specific objects
2) common objects
3) library objects
4) static libraries
1-3 are for faster detection of build failures, the specific objects
reflect changes to the source, but otherwise is only a cosmetic change.
The 4 is for correct order during linking, if we'd use the $^ variable.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 17:34:51 +0000 (18:34 +0100)]
btrfs-progs: build: split LIBS
Not all the build targets use all libs listed in LIBS, separate the
common and compression ones.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 16:55:25 +0000 (17:55 +0100)]
btrfs-progs: build: list mkfs.btrfs build objects in a variable
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 16:55:25 +0000 (17:55 +0100)]
btrfs-progs: build: list convert build objects in a variable
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 14:47:17 +0000 (15:47 +0100)]
btrfs-progs: convert: move implementation for interal conversion API to own file
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 15:56:37 +0000 (16:56 +0100)]
btrfs-progs: convert: move ext2 conversion out of main.c
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 15:51:03 +0000 (16:51 +0100)]
btrfs-progs: convert: move ext2 definitions out of main
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 14:47:17 +0000 (15:47 +0100)]
btrfs-progs: convert: move definitions for interal conversion API to own file
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Thu, 26 Jan 2017 12:27:58 +0000 (13:27 +0100)]
btrfs-progs: move fs features implementation to own file
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Thu, 26 Jan 2017 12:13:36 +0000 (13:13 +0100)]
btrfs-progs: move fs features declarations to own header from utils
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 25 Jan 2017 16:21:02 +0000 (17:21 +0100)]
btrfs-progs: convert: move common api implementation to own file
Lots of moved code but no actual changes.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 25 Jan 2017 16:21:02 +0000 (17:21 +0100)]
btrfs-progs: mkfs: move common api implementation to own file
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 25 Jan 2017 16:09:10 +0000 (17:09 +0100)]
btrfs-progs: move convert definitions to own header
Create a header for filesystem conversion API, the config and the main
entry function.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 25 Jan 2017 15:54:35 +0000 (16:54 +0100)]
btrfs-progs: move mkfs definitions to own header
Create a header for filesystem creation API, the config and the main
entry function.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 25 Jan 2017 15:54:35 +0000 (16:54 +0100)]
btrfs-progs: move some common definitions to own header
Start a header for various defines that are supposed to be used in any
context or subpart.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 25 Jan 2017 15:35:00 +0000 (16:35 +0100)]
btrfs-progs: move help implemetnation to own file
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 25 Jan 2017 15:35:00 +0000 (16:35 +0100)]
btrfs-progs: move help defines to own header
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 25 Jan 2017 15:23:24 +0000 (16:23 +0100)]
btrfs-progs: find-root: rename usage helper
This would clash with the generic usage from commands.h.
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Tue, 24 Jan 2017 03:03:06 +0000 (11:03 +0800)]
btrfs-progs: Introduce macro to calculate backup superblock offset
Introduce a new macro, BTRFS_SB_OFFSET() to calculate backup superblock
offset, this is handy if one wants to initialize static array at
declaration time.
Suggested-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Tue, 24 Jan 2017 03:03:05 +0000 (11:03 +0800)]
btrfs-progs: Introduce kernel sizes to cleanup large intermediate number
Large numbers like (1024 * 1024 * 1024) may cost reader/reviewer to
waste one second to convert to 1G.
Introduce kernel include/linux/sizes.h to replace any intermediate
number larger than 4096 (not including 4096) to SZ_*.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Mon, 21 Nov 2016 12:52:01 +0000 (13:52 +0100)]
btrfs-progs: introduce global config
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 27 Jan 2017 14:15:59 +0000 (15:15 +0100)]
Btrfs progs v4.9.1
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 25 Jan 2017 09:14:32 +0000 (10:14 +0100)]
btrfs-progs: update CHANGES for v4.9.1
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 24 Jan 2017 18:36:15 +0000 (19:36 +0100)]
btrfs-progs: mkfs/convert: separate the convert part from make_btrfs
The regulare mkfs_btrfs does not anything special about convert and just
passes the arguments. Make that two functions.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 24 Jan 2017 17:19:27 +0000 (18:19 +0100)]
btrfs-progs: tests: use built binaries for 004-send-parent-multi-subvol
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 24 Jan 2017 16:59:47 +0000 (17:59 +0100)]
btrfs-progs: tests: add variable quotation to cli-tests
Signed-off-by: David Sterba <dsterba@suse.com>
Tsutomu Itoh [Thu, 15 Dec 2016 04:33:05 +0000 (13:33 +0900)]
btrfs-progs: tests: add test for --sync option of qgroup show
Simple test script for the following patch.
btrfs-progs: qgroup: add sync option to 'qgroup show'
Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 24 Jan 2017 16:46:10 +0000 (17:46 +0100)]
btrfs-progs: qgroup show: do not error if sync fails
The sync call is unlikely to fail so we optimistically turn it to a
warning if that happens so we return inaccurate numbers instead of a
hard exit.
Signed-off-by: David Sterba <dsterba@suse.com>
Tsutomu Itoh [Thu, 15 Dec 2016 04:30:55 +0000 (13:30 +0900)]
btrfs-progs: qgroup: change the value of sort option
The value of sort option ('S') is not used for option letter.
Therefore, I'll change the single letter to non-character.
Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Tsutomu Itoh [Thu, 15 Dec 2016 04:29:28 +0000 (13:29 +0900)]
btrfs-progs: qgroup: add sync option to 'qgroup show'
The 'qgroup show' command does not synchronize filesystem.
Therefore, 'qgroup show' may not display the correct value unless
synchronized with 'filesystem sync' command etc.
So add the '--sync' option so that we can choose whether or not
to synchronize when executing the command.
Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 24 Jan 2017 15:05:24 +0000 (16:05 +0100)]
btrfs-progs: kerncompat: simplify warning_trace
The value of assertion is always set.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 24 Jan 2017 15:02:44 +0000 (16:02 +0100)]
btrfs-progs: kerncompat: disconnect assert and warning messages
The assertion and warn/bug have reversed condition checks, using the
same helpers drops the exact value, so we'll print the message directly
without the helpers.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 24 Jan 2017 12:17:25 +0000 (13:17 +0100)]
btrfs-progs: kerncompat: pass exact condition value from ASSERT
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 24 Jan 2017 12:15:41 +0000 (13:15 +0100)]
btrfs-progs: kerncompat: add separate trace print for BUG_ON
We want to pass unmodified condition down to the handlers so we can't
use assert_trace for that purpose.
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Thu, 19 Jan 2017 04:00:03 +0000 (12:00 +0800)]
btrfs-progs: Fix disable backtrace assert error
Due to commit
00e769d04c2c83029d6c71(btrfs-progs: Correct value printed
by assertions/BUG_ON/WARN_ON), which changed the assert_trace()
parameter, the condition passed to assert/WARN_ON/BUG_ON are logical
notted for backtrace enabled and disabled case.
Such behavior makes us easier to pass value wrong, and in fact it did
cause us to pass wrong condition for ASSERT().
Instead of passing different conditions for ASSERT/WARN_ON/BUG_ON()
manually, this patch will use ASSERT() to implement the resting
ASSERT/WARN_ON/BUG() for disable backtrace case, and use assert_trace()
to implement ASSERT() and BUG_ON(), to allow them to print correct
value.
Also, move WARN_ON() out of the ifdef branch, as it's completely the
same for both branches.
Cc: Goldwyn Rodrigues <rgoldwyn@suse.de>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Jeff Mahoney [Wed, 18 Jan 2017 01:56:39 +0000 (20:56 -0500)]
btrfs-progs: quota: fix printing during wait mode
If we call "btrfs quota rescan -w", it will attempt to start the rescan
operation, wait for it, and then print the "quota rescan started" message.
The wait could last an arbitrary amount of time, so printing it after
the wait isn't very helpful.
This patch reworks how we print the rescan started message as well as the
printing of the messages, including adding an error message for status
query failures (which could be EPERM/EFAULT/ENOMEM, not just no rescan
in progress) and wait failures.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Goldwyn Rodrigues [Fri, 20 Jan 2017 19:03:33 +0000 (13:03 -0600)]
btrfs-progs: sanitize - Use correct source for memcpy
While performing a memcpy, we are copying from uninitialized dst
as opposed to src->data. Though using eb->len is correct, I used
src->len to make it more readable.
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Wed, 18 Jan 2017 05:21:07 +0000 (13:21 +0800)]
btrfs-progs: check: fix false alert on dropped leaf in lowmem mode
For btrfs-progs test case 021-partially-dropped-snapshot-case, if the
first leaf is already dropped, btrfs check low-memory mode will report
false alert:
checking fs roots
checksum verify failed on
29917184 found
E4E3BDB6 wanted
00000000
checksum verify failed on
29917184 found
E4E3BDB6 wanted
00000000
checksum verify failed on
29917184 found
E4E3BDB6 wanted
00000000
checksum verify failed on
29917184 found
E4E3BDB6 wanted
00000000
This is caused by we are calling check_fs_first_inode() function,
unlike the rest part of check_fs_root_v2(), it doesn't have enough check
on dropping progress, and caused the false alert.
Fix it by checking dropping progress before searching slot.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 20 Jan 2017 16:54:04 +0000 (17:54 +0100)]
btrfs-progs: tests: 005-qgroup-show
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 20 Jan 2017 16:52:12 +0000 (17:52 +0100)]
btrfs-progs: qgroup show: refine error messages
When qgroup show is called on a filesystem that does not have quotas
enabled, the error message is very unclear:
ERROR: can't perform the search - No such file or directory
ERROR: can't list qgroups: No such file or director
Remove the error from low level helper and let the command handler
decide what to print.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 20 Jan 2017 16:41:55 +0000 (17:41 +0100)]
btrfs-progs: qgroups show: clean up errno passing
We should use return value for errors, not errno.
Signed-off-by: David Sterba <dsterba@suse.com>
Esteve Fernandez [Mon, 9 Jan 2017 16:59:02 +0000 (17:59 +0100)]
btrfs-progs: docs: fix typo in btrfs-subvolume
Signed-off-by: David Sterba <dsterba@suse.com>
Lakshmipathi.G [Thu, 5 Jan 2017 17:03:58 +0000 (18:03 +0100)]
btrfs-progs: corrupt-block: Include more inode fields
Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in>
Signed-off-by: David Sterba <dsterba@suse.com>
Lakshmipathi.G [Thu, 5 Jan 2017 10:08:32 +0000 (11:08 +0100)]
btrfs-progs: corrupt-block: Include inode nlink field
Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in>
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Thu, 12 Jan 2017 14:12:09 +0000 (15:12 +0100)]
btrfs-progs: defrag: remove v1 ioctl support
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Thu, 12 Jan 2017 14:00:47 +0000 (15:00 +0100)]
btrfs-progs: defrag: force using v2 defrag ioctl and make default 32M threshold actually work
A user reported on IRC that the new 32M default for target extent size
does not work. This happens because if there are no commandline options,
the v1 ioctl is used that does not do any fine grained defrag. As the v2
ioctl has been introduced 6 years ago (2010, kernel 2.6.33) we won't
keep backward compatibility anymore.
Signed-off-by: David Sterba <dsterba@suse.com>
Nicholas D Steeves [Fri, 6 Jan 2017 03:40:47 +0000 (22:40 -0500)]
btrfs-progs: Fix spelling/typos in user-facing strings
Signed-off-by: Nicholas D Steeves <nsteeves@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 6 Jan 2017 12:47:07 +0000 (13:47 +0100)]
btrfs-progs: mkfs: print device name while trimming
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 3 Jan 2017 17:26:43 +0000 (18:26 +0100)]
btrfs-progs: enable negative numbers for unallocated device space
The unallocated space is not calculated correctly when a device
deltion/replace is in progress. This appears as huge number, EiB-sized.
It's really a negative number, because we don't have entire information
available and mixing numbers that do and don't take the deleted device
size into account.
We have to query search ioctl to retrieve the missing information, also
this requires root access for the ioctl, so we still need a workaround
for non-root case. Here the negative numbers seem to be a bit more
practical than EiB numbers.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Tue, 3 Jan 2017 17:03:44 +0000 (18:03 +0100)]
btrfs-progs: make negative number pretty printing optional
Add a unit mode that will interpret the input number as a signed 64bit,
optionally and not by default for all numbers.
Signed-off-by: David Sterba <dsterba@suse.com>
Zygo Blaxell [Sat, 3 Dec 2016 20:39:54 +0000 (15:39 -0500)]
btrfs-progs: utils: negative numbers are more plausible than sizes over 8 EiB
I got tired of seeing "16.00EiB" whenever btrfs-progs encounters a
negative size value, e.g. during resize:
Unallocated:
/dev/mapper/datamd18 16.00EiB
This version is much more useful:
Unallocated:
/dev/mapper/datamd18 -26.29GiB
Signed-off-by: Zygo Blaxell <ce3g8jdj@umail.furryterror.org>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Goldwyn Rodrigues [Tue, 20 Dec 2016 12:08:54 +0000 (06:08 -0600)]
btrfs-progs: check: get the highest inode for lost+found
root->highest_inode is not accurate at the time of creating a lost+found
and it fails because the highest_inode+1 is already present. This could be
because of fixes after highest_inode is set. Instead, search
for the highest inode in the tree and use it for lost+found.
This makes root->highest_inode unnecessary and hence deleted.
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Reviewed-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Fri, 23 Dec 2016 18:50:39 +0000 (19:50 +0100)]
Btrfs progs v4.9
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Wed, 14 Dec 2016 14:22:52 +0000 (15:22 +0100)]
btrfs-progs: update CHANGES for v4.9
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Mon, 19 Dec 2016 06:56:42 +0000 (14:56 +0800)]
btrfs-progs: convert-test: trigger chunk allocation after convert
Populate fs after convert so we can trigger data chunk allocation.
This can expose too restrict old rollback condition
Reported-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Mon, 19 Dec 2016 06:56:37 +0000 (14:56 +0800)]
btrfs-progs: file-item: Fix wrong file extents inserted
If we specify NO_HOLES incompat feature when converting, the result
image still uses hole file extents.
And further more, the hole is incorrect as its disk_num_bytes is not
zero.
The problem is at btrfs_insert_file_extent() which doesn't check if we
are going to insert hole file extent.
Modify it to skip hole file extents to allow it follow restrict NO_HOLES
flag.
And since no_holes flag can be triggered on half-way, so current fsck
won't report such error, as it consider it as old file holes.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Thu, 15 Dec 2016 08:37:02 +0000 (16:37 +0800)]
btrfs-progs: Fix NULL pointer when receive clone operation
Regression introduced by
a2f7af94abe4a3491ca1280a2ae1d63edc0d62ab
"btrfs-progs: subvol_uuid_search: return error encoded pointer"
IS_ERR() will only check if it's an error code, won't check if it's
NULL. And for all the caller the commit modifies, it can return NULL
and makes cause segfault.
Fix it by introducing new IS_ERR_OR_NULL() macro, and for NULL pointer
and needs to return int case, convert NULL pointer to -ENOENT.
Reported-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Tested-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Mon, 5 Dec 2016 09:07:56 +0000 (17:07 +0800)]
btrfs-progs: check: Fix false alert on generation mismatch for tree reloc tree
For fs with tree reloc tree(under balancing), lowmem mode will report
false alert like:
ERROR: extent[
62914560 4096] backref generation mismatch, wanted: <=9,
have: 13
This is because lowmem mode adds a more restrict check, to ensure
generation in fs tree won't be smaller than extent tree.
In fact such assumption is not right for tree reloc tree, so remove such
check.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Mon, 5 Dec 2016 09:07:55 +0000 (17:07 +0800)]
btrfs-progs: check: Fix lowmem false alert on tree reloc tree
Lowmem mode will report false alert if the fs has tree reloc tree like:
ERROR: shared extent[
30011392 4096] lost its parent (parent:
30011392,
level: 1)
The problem is check_shared_block_backref() can't handle tree reloc
tree's self-pointing backref.
And still try to read out the tree block then seeking for the
referencer.
The correct method for it is to check if it's tree reloc root.
In that case, we should check found the ROOT_ITEM of tree reloc tree in
root tree.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Mon, 5 Dec 2016 09:07:54 +0000 (17:07 +0800)]
btrfs-progs: check: Fix lowmem mode stack overflow caused by fsck/023
Lowmem mode fsck will overflow its stack since it will do infinite
backref check for tree reloc root.
We should not check backref if it's pointing to itself for tree reloc
root.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Qu Wenruo [Mon, 5 Dec 2016 09:07:53 +0000 (17:07 +0800)]
btrfs-progs: check: Fix assert when using lowmem on fs with tree reloc tree
When using lowmem mode, btrfs check will report ASSERT for calling
btrfs_read_fs_root() on tree reloc tree.
Fix it by checking objectid and call btrfs_read_fs_root_no_cache() for
tree reloc tree.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Chandan Rajendra [Thu, 8 Dec 2016 13:56:20 +0000 (19:26 +0530)]
btrfs-progs: convert: Fix migrate_super_block() to work with 64k sectorsize
migrate_super_block() uses sectorsize to refer to the size of the
superblock. Hence on 64k sectorsize filesystems, it ends up computing
checksum beyond the super block length (i.e.
BTRFS_SUPER_INFO_SIZE). This commit fixes the bug by using
BTRFS_SUPER_INFO_SIZE instead of sectorsize of the underlying
filesystem.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Chandan Rajendra [Thu, 8 Dec 2016 13:56:19 +0000 (19:26 +0530)]
btrfs-progs: convert: Prevent accounting blocks beyond end of device
When looping across data block bitmap, __ext2_add_one_block() may add
blocks which do not exist on the underlying disk. This commit prevents
this from happening by checking the block index against the maximum
block count that was present in the ext4 filesystem instance that is
being converted.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Mon, 12 Dec 2016 17:38:47 +0000 (18:38 +0100)]
btrfs-progs: defrag: warn when deframgenting directories without -r
The current implementaion of defrag ioctl on directoreis does not do
what users expect. The -r needs to be specified, but we should also
print a warning to avoid confusion.
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba [Mon, 12 Dec 2016 17:22:10 +0000 (18:22 +0100)]
btrfs-progs: defrag: cleanup temporary errno value
Rename a single letter variable and move the defintion to the scope of
use.
Signed-off-by: David Sterba <dsterba@suse.com>
Anand Jain [Tue, 6 Dec 2016 04:39:38 +0000 (12:39 +0800)]
btrfs-progs: recursive defrag cleanup duplicate code
Signed-off-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>