Commit Graph

3352 Commits

Author SHA1 Message Date
David Sterba
5bcff79f14 btrfs-progs: convert: remove unused includes
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:46 +01:00
David Sterba
4927a9b268 btrfs-progs: convert: use on-stack buffer for subvol name dir
Get rid of dynamic allocation.

Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:46 +01:00
David Sterba
6b74f2fbe3 btrfs-progs: convert: use fixed lenght array for source fs name
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:46 +01:00
David Sterba
cf83a41a02 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>
2017-03-08 13:00:46 +01:00
David Sterba
663253415f btrfs-progs: build: add rule for building cscope index
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:46 +01:00
David Sterba
732056e3d3 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>
2017-03-08 13:00:46 +01:00
David Sterba
0c49ff5fb5 btrfs-progs: build: add rule for ctags
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:46 +01:00
David Sterba
f989881ccd 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>
2017-03-08 13:00:46 +01:00
David Sterba
c0acc29c99 btrfs-progs: convert: use wider types types for inode counts for progress reports
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:46 +01:00
David Sterba
0a5d16eca7 btrfs-progs: mkfs: make list of source fs more visible
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:46 +01:00
David Sterba
6550f5b9ed 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>
2017-03-08 13:00:46 +01:00
David Sterba
dc1c2c4bb0 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>
2017-03-08 13:00:45 +01:00
David Sterba
9876a6b24c btrfs-progs: build: replace target names with automatic variable
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
d9119007d1 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>
2017-03-08 13:00:45 +01:00
David Sterba
839d857c7e 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>
2017-03-08 13:00:45 +01:00
David Sterba
c439152191 btrfs-progs: build: list mkfs.btrfs build objects in a variable
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
30dc24dc84 btrfs-progs: build: list convert build objects in a variable
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
3a724cbde0 btrfs-progs: convert: move implementation for interal conversion API to own file
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
03c085861b btrfs-progs: convert: move ext2 conversion out of main.c
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
27e927e775 btrfs-progs: convert: move ext2 definitions out of main
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
2798a5df33 btrfs-progs: convert: move definitions for interal conversion API to own file
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
a20142ed71 btrfs-progs: move fs features implementation to own file
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
14f9565c11 btrfs-progs: move fs features declarations to own header from utils
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
203c52a850 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>
2017-03-08 13:00:45 +01:00
David Sterba
ef9ddf7a5c btrfs-progs: mkfs: move common api implementation to own file
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
5f276edfda 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>
2017-03-08 13:00:45 +01:00
David Sterba
ad7c469ac3 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>
2017-03-08 13:00:45 +01:00
David Sterba
50ac7b6dc8 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>
2017-03-08 13:00:45 +01:00
David Sterba
a52537a594 btrfs-progs: move help implemetnation to own file
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
1c880f34f1 btrfs-progs: move help defines to own header
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
e235f12de2 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>
2017-03-08 13:00:45 +01:00
Qu Wenruo
c928522052 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>
2017-03-08 13:00:45 +01:00
Qu Wenruo
a2203246ae 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>
2017-03-08 13:00:45 +01:00
David Sterba
95f515f2d1 btrfs-progs: introduce global config
Signed-off-by: David Sterba <dsterba@suse.com>
2017-03-08 13:00:45 +01:00
David Sterba
96485c34ac
Btrfs progs v4.9.1
Signed-off-by: David Sterba <dsterba@suse.com>
2017-01-27 15:15:59 +01:00
David Sterba
42c90d2a5e btrfs-progs: update CHANGES for v4.9.1
Signed-off-by: David Sterba <dsterba@suse.com>
2017-01-27 12:20:43 +01:00
David Sterba
c855e60f7e 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>
2017-01-27 12:20:43 +01:00
David Sterba
78e1787c55 btrfs-progs: tests: use built binaries for 004-send-parent-multi-subvol
Signed-off-by: David Sterba <dsterba@suse.com>
2017-01-27 12:20:43 +01:00
David Sterba
2182142471 btrfs-progs: tests: add variable quotation to cli-tests
Signed-off-by: David Sterba <dsterba@suse.com>
2017-01-27 12:20:43 +01:00
Tsutomu Itoh
55e3a60195 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>
2017-01-27 12:20:42 +01:00
David Sterba
5c87a1b92c 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>
2017-01-25 09:48:38 +01:00
Tsutomu Itoh
6f7c540d77 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>
2017-01-25 09:48:36 +01:00
Tsutomu Itoh
bd1ac1fb1d 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>
2017-01-25 09:48:33 +01:00
David Sterba
6b62b76470 btrfs-progs: kerncompat: simplify warning_trace
The value of assertion is always set.

Signed-off-by: David Sterba <dsterba@suse.com>
2017-01-25 09:48:25 +01:00
David Sterba
bc2d4ccc46 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>
2017-01-25 09:48:23 +01:00
David Sterba
eb6e3d6518 btrfs-progs: kerncompat: pass exact condition value from ASSERT
Signed-off-by: David Sterba <dsterba@suse.com>
2017-01-25 09:48:17 +01:00
David Sterba
be5e0b230c 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>
2017-01-25 09:48:15 +01:00
Qu Wenruo
5826f1e9ff 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>
2017-01-25 09:48:13 +01:00
Jeff Mahoney
795cfb9b17 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>
2017-01-25 09:48:09 +01:00
Goldwyn Rodrigues
1c5301a4b6 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>
2017-01-25 09:48:06 +01:00