Userspace utilities to manage btrfs filesystems
Go to file
Zhao Lei c1ff75db16 btrfs-progs: mkfs: allow --data DUP for single device
Current code don't support DUP profile on single device, except it
is in mixed mode, because of following reasons:

1: Some SSD do deduplication internally, so the duplication on
   the filesystem side has no effect.
2: On a physical device, if the entire disk broken, --data DUP does not
   help.
3: Half performance compared to single profile.
4: We have a workaround: create multi-partition on a single device,
   and btffs will treat them as multi device.

Instead of refusing --data DUP, we give the user a choice and print
a wrning.

Test:
1: Tested by xfstests
   Run with modified xfstests, I add test items of -d dup in single
   device into btrfs/* and common/rc, run tests of btrfs/*,
   with all mount option, no regression diffed with v4.3.
2: Tested by btrfs-progs
   Checked following commands in "-m dup -d dup" fs with memleck
   checking, all passed:
   mkfs.btrfs -f --data dup --metadata dup /dev/sda6
   btrfs filesystem show /dev/sda6
   btrfs filesystem label /dev/sda6 btrfs_label_test
   btrfs filesystem label /dev/sda6
   btrfs device scan --all-devices
   btrfs device scan /dev/sda6
   btrfs device scan /dev/sda6
   btrfs device ready /dev/sda6
   btrfs check /dev/sda6
   btrfs check -s 1 /dev/sda6
   btrfs check --repair /dev/sda6
   btrfs check --init-csum-tree /dev/sda6
   btrfs check --init-extent-tree /dev/sda6
   btrfs check --check-data-csum /dev/sda6
   btrfs check --qgroup-report /dev/sda6
   btrfs rescue super-recover -y /dev/sda6
   btrfs rescue zero-log /dev/sda6
   btrfs restore -l /dev/sda6
   btrfs restore /dev/sda6 /
   btrfs restore -s /dev/sda6 /
   btrfs restore -x /dev/sda6 /
   btrfs restore -m /dev/sda6 /
   btrfs restore -S /dev/sda6 /
   btrfs restore -v /dev/sda6 /
   btrfs restore -i /dev/sda6 /
   btrfs restore -o /dev/sda6 /
   btrfs restore -u0 /dev/sda6 /
   btrfs restore -u1 /dev/sda6 /
   btrfs restore -D /dev/sda6 /
   btrfs property list /dev/sda6
   btrfs property get /dev/sda6 label
   btrfs property set /dev/sda6 label test
   btrfs property set /dev/sda6 label btrfs_label_test
   btrfs help
   btrfs help --full
   btrfs version
   btrfsck /dev/sda6
   btrfs-find-root /dev/sda6
   btrfs-find-root -a /dev/sda6
   btrfs-map-logical -l1 /dev/sda6
   btrfs-map-logical -l1 -c1 /dev/sda6
   btrfs-map-logical -l1 -o /tmp/btrfs-map-logic-out /dev/sda6
   btrfs-map-logical -l1 -b1 /dev/sda6
   btrfs-select-super -s 0 /dev/sda6
   btrfs-select-super -s 1 /dev/sda6
   btrfstune -S 1 /dev/sda6
   btrfstune -f -S 0 /dev/sda6
   btrfstune -r /dev/sda6
   btrfstune -x /dev/sda6
   btrfstune -n /dev/sda6
   btrfstune -f -U 00000000-0000-0000-0000-000000000000 /dev/sda6
   btrfstune -f -u /dev/sda6
   btrfs-calc-size /dev/sda6
   btrfs-calc-size -v /dev/sda6
   btrfs-calc-size -b /dev/sda6
   btrfs-debug-tree /dev/sda6
   btrfs-debug-tree -e /dev/sda6
   btrfs-debug-tree -d /dev/sda6
   btrfs-debug-tree -r /dev/sda6
   btrfs-debug-tree -R /dev/sda6
   btrfs-debug-tree -u /dev/sda6
   btrfs-debug-tree -b 0 /dev/sda6
   btrfs-debug-tree -t 0 /dev/sda6
   btrfs-debug-tree -t 2 /dev/sda6
   btrfs-show-super /dev/sda6
   btrfs-show-super -i 0 /dev/sda6
   btrfs-show-super -i 1 /dev/sda6
   btrfs-show-super -i 2 /dev/sda6
   btrfs-show-super -a /dev/sda6
   btrfs-show-super -f /dev/sda6
   btrfs-show-super -F /dev/sda6
   btrfs subvolume list /mnt/btrfs-progs-tests
   btrfs subvolume create /mnt/btrfs-progs-tests/mysubvol
   btrfs subvolume list /mnt/btrfs-progs-tests
   btrfs subvolume get-default /mnt/btrfs-progs-tests
   btrfs subvolume set-default 258 /mnt/btrfs-progs-tests
   btrfs subvolume get-default /mnt/btrfs-progs-tests
   btrfs subvolume set-default  /mnt/btrfs-progs-tests
   btrfs subvolume snapshot /mnt/btrfs-progs-tests/mysubvol /mnt/btrfs-progs-tests/mysubvol_snap
   btrfs subvolume list /mnt/btrfs-progs-tests
   btrfs subvolume find-new /mnt/btrfs-progs-tests 0
   btrfs subvolume find-new /mnt/btrfs-progs-tests 0
   btrfs subvolume find-new /mnt/btrfs-progs-tests/mysubvol 0
   btrfs subvolume find-new /mnt/btrfs-progs-tests/mysubvol 0
   btrfs subvolume show /mnt/btrfs-progs-tests
   btrfs subvolume show /mnt/btrfs-progs-tests/mysubvol
   btrfs subvolume show /mnt/btrfs-progs-tests/mysubvol_snap
   btrfs subvolume sync /mnt/btrfs-progs-tests
   btrfs subvolume delete /mnt/btrfs-progs-tests/mysubvol_snap
   btrfs subvolume delete /mnt/btrfs-progs-tests/mysubvol
   btrfs subvolume sync /mnt/btrfs-progs-tests
   btrfs filesystem df /mnt/btrfs-progs-tests
   btrfs filesystem show /mnt/btrfs-progs-tests
   btrfs filesystem sync /mnt/btrfs-progs-tests
   btrfs filesystem label /mnt/btrfs-progs-tests btrfs_label_test
   btrfs filesystem label /mnt/btrfs-progs-tests
   btrfs filesystem usage /mnt/btrfs-progs-tests
   btrfs filesystem defragment -s 1024 -l 2048 /mnt/btrfs-progs-tests/filesystem_test_dir/test_dir_0/test_file_0
   btrfs filesystem defragment /mnt/btrfs-progs-tests/filesystem_test_dir/test_dir_0/test_file_1
   btrfs filesystem defragment -f /mnt/btrfs-progs-tests/filesystem_test_dir/test_dir_0/test_file_2
   btrfs filesystem defragment -czlib /mnt/btrfs-progs-tests/filesystem_test_dir/test_dir_0/test_file_3
   btrfs filesystem defragment -clzo /mnt/btrfs-progs-tests/filesystem_test_dir/test_dir_0/test_file_4
   btrfs filesystem defragment /mnt/btrfs-progs-tests/filesystem_test_dir
   btrfs filesystem defragment -r /mnt/btrfs-progs-tests/filesystem_test_dir
   btrfs filesystem defragment /mnt/btrfs-progs-tests
   btrfs filesystem resize 1:-10M /mnt/btrfs-progs-tests
   btrfs filesystem resize 1:max /mnt/btrfs-progs-tests
   btrfs balance start /mnt/btrfs-progs-tests
   btrfs balance start -v /mnt/btrfs-progs-tests
   btrfs balance start -f /mnt/btrfs-progs-tests
   btrfs balance status -v /mnt/btrfs-progs-tests
   btrfs balance pause /mnt/btrfs-progs-tests
   btrfs balance status /mnt/btrfs-progs-tests
   btrfs balance resume /mnt/btrfs-progs-tests
   btrfs balance status -v /mnt/btrfs-progs-tests
   btrfs balance cancel /mnt/btrfs-progs-tests
   btrfs balance start -dprofiles=single /mnt/btrfs-progs-tests
   btrfs balance start -dconvert=single /mnt/btrfs-progs-tests
   btrfs balance start -ddevid=1 /mnt/btrfs-progs-tests
   btrfs balance start -f -mprofiles=single /mnt/btrfs-progs-tests
   btrfs balance start -f -mconvert=single /mnt/btrfs-progs-tests
   btrfs balance start -f -mdevid=1 /mnt/btrfs-progs-tests
   btrfs balance start -f -sprofiles=single /mnt/btrfs-progs-tests
   btrfs balance start -f -sconvert=single /mnt/btrfs-progs-tests
   btrfs balance start -f -sdevid=1 /mnt/btrfs-progs-tests
   btrfs device add -f /dev/sda10 /mnt/btrfs-progs-tests
   btrfs device del /dev/sda10 /mnt/btrfs-progs-tests
   btrfs device stats /dev/sda6
   btrfs device stats -z /dev/sda6
   btrfs device stats /mnt/btrfs-progs-tests
   btrfs device stats -z /mnt/btrfs-progs-tests
   btrfs device usage /mnt/btrfs-progs-tests
   btrfs scrub status /mnt/btrfs-progs-tests
   btrfs scrub start -B /mnt/btrfs-progs-tests
   btrfs scrub start -B -d /mnt/btrfs-progs-tests
   btrfs scrub start -B -r /mnt/btrfs-progs-tests
   btrfs scrub status /mnt/btrfs-progs-tests
   btrfs scrub start /mnt/btrfs-progs-tests
   btrfs scrub status /mnt/btrfs-progs-tests
   btrfs scrub status /mnt/btrfs-progs-tests
   btrfs scrub status -d /mnt/btrfs-progs-tests
   btrfs scrub status -R /mnt/btrfs-progs-tests
   btrfs scrub status /mnt/btrfs-progs-tests
   btrfs scrub start /dev/sda6
   btrfs scrub status /dev/sda6
   btrfs scrub status /dev/sda6
   btrfs scrub status -d /dev/sda6
   btrfs scrub status -R /dev/sda6
   btrfs scrub status /dev/sda6
   btrfs subvolume snapshot -r /mnt/btrfs-progs-tests /mnt/btrfs-progs-tests/snap1
   btrfs send -f /tmp/btrfs_snapshot_test /mnt/btrfs-progs-tests/snap1
   btrfs send -e -f /tmp/btrfs_snapshot_test /mnt/btrfs-progs-tests/snap1
   btrfs send --no-data -f /tmp/btrfs_snapshot_test /mnt/btrfs-progs-tests/snap1
   btrfs quota enable /mnt/btrfs-progs-tests
   btrfs quota rescan /mnt/btrfs-progs-tests
   btrfs quota rescan -s /mnt/btrfs-progs-tests
   btrfs quota rescan -w /mnt/btrfs-progs-tests
   btrfs quota disable /mnt/btrfs-progs-tests
   btrfs quota enable /mnt/btrfs-progs-tests
   btrfs qgroup create 1/5 /mnt/btrfs-progs-tests
   btrfs qgroup create 2/5 /mnt/btrfs-progs-tests
   btrfs qgroup assign 1/5 2/5 /mnt/btrfs-progs-tests
   btrfs qgroup limit 1G 1/5 /mnt/btrfs-progs-tests
   btrfs qgroup show /mnt/btrfs-progs-tests
   btrfs qgroup show -p -c -r -e -F -f /mnt/btrfs-progs-tests
   btrfs qgroup remove 1/5 2/5 /mnt/btrfs-progs-tests
   btrfs qgroup destroy 2/5 /mnt/btrfs-progs-tests
   btrfs qgroup destroy 1/5 /mnt/btrfs-progs-tests
   btrfs quota disable /mnt/btrfs-progs-tests
   btrfs replace start -f -B /dev/sda6 /dev/sda10 /mnt/btrfs-progs-tests
   btrfs replace status /mnt/btrfs-progs-tests
   btrfs replace start -f -B /dev/sda10 /dev/sda6 /mnt/btrfs-progs-tests
   btrfs-convert /dev/sda6
   btrfs-convert -r /dev/sda6
   btrfs-convert -d /dev/sda6
   btrfs-convert -i /dev/sda6
   btrfs-convert -n /dev/sda6
   btrfs-convert -N 4096 /dev/sda6
   btrfs-convert -l test /dev/sda6
   btrfs-convert -L /dev/sda6
   btrfs-convert --no-progress /dev/sda6
   mkfs.btrfs -f /dev/sda6
   btrfs-image /dev/sda6 /tmp/btrfs_image.img
   btrfs-image -r /tmp/btrfs_image.img /dev/sda6
   mkfs.btrfs -f /dev/sda6
   btrfs-image -c 0 /dev/sda6 /tmp/btrfs_image.img
   btrfs-image -r /tmp/btrfs_image.img /dev/sda6
   mkfs.btrfs -f /dev/sda6
   btrfs-image -c 9 /dev/sda6 /tmp/btrfs_image.img
   btrfs-image -r /tmp/btrfs_image.img /dev/sda6
   mkfs.btrfs -f /dev/sda6
   btrfs-image -t 0 /dev/sda6 /tmp/btrfs_image.img
   btrfs-image -r /tmp/btrfs_image.img /dev/sda6
   mkfs.btrfs -f /dev/sda6
   btrfs-image -t 1 /dev/sda6 /tmp/btrfs_image.img
   btrfs-image -r /tmp/btrfs_image.img /dev/sda6
   mkfs.btrfs -f /dev/sda6
   btrfs-image -t 32 /dev/sda6 /tmp/btrfs_image.img
   btrfs-image -r /tmp/btrfs_image.img /dev/sda6
   mkfs.btrfs -f /dev/sda6
   btrfs-image -w /dev/sda6 /tmp/btrfs_image.img
   btrfs-image -r /tmp/btrfs_image.img /dev/sda6
   mkfs.btrfs -f /dev/sda6
   btrfs-image -w /dev/sda6 /tmp/btrfs_image.img
   btrfs-image -r /tmp/btrfs_image.img /dev/sda6
   btrfs-image -r -t 0 /tmp/btrfs_image.img /dev/sda6
   btrfs-image -r -t 1 /tmp/btrfs_image.img /dev/sda6
   btrfs-image -r -t 32 /tmp/btrfs_image.img /dev/sda6
   btrfs-image -r -o /tmp/btrfs_image.img /dev/sda6
3: Manual check relation source by:
   grep DUP *.c
   Confirmed that all source are modified.
4: Use this raid type manually, do some operations in fs,
   no error found in command and dmesg.
5: Combination of dup conversion with fsck
   Confirmed OK with relative kernel patch titled:
   [PATCH] btrfs: Support convert to -d dup for btrfs-convert

   export TEST_DEV='/dev/vdc'
   export TEST_DIR='/var/ltf/tester/mnt'

   do_dup_test()
   {
       local m_from="$1"
       local d_from="$2"
       local m_to="$3"
       local d_to="$4"

       echo "Convert from -m $m_from -d $d_from to -m $m_to -d $d_to"

       umount "$TEST_DIR" &>/dev/null
       ./mkfs.btrfs -f -m "$m_from" -d "$d_from" "$TEST_DEV" >/dev/null || return 1
       mount "$TEST_DEV" "$TEST_DIR" || return 1

       cp -a /sbin/* "$TEST_DIR"

       [[ "$m_from" != "$m_to" ]] && {
           ./btrfs balance start -f -mconvert="$m_to" "$TEST_DIR" || return 1
       }

       [[ "$d_from" != "$d_to" ]] && {
       local opt=()
           [[ "$d_to" == single ]] && opt+=("-f")
           ./btrfs balance start "${opt[@]}" -dconvert="$d_to" "$TEST_DIR" || return 1
       }

       umount "$TEST_DIR" || return 1
       ./btrfsck "$TEST_DEV" || return 1
       echo

       return 0
   }

   test_all()
   {
       for m_from in single dup; do
       for d_from in single dup; do
       for m_to in single dup; do
       for d_to in single dup; do
       do_dup_test "$m_from" "$d_from" "$m_to" "$d_to" || return 1
       done
       done
       done
       done
   }

   test_all

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Tested-by: Austin S. Hemmelgarn <ahferroin7@gmail.com>
[ minor updates in the changelog ]
Signed-off-by: David Sterba <dsterba@suse.com>
2015-11-26 15:58:38 +01:00
Documentation btrfs-progs: docs: update raid table in mkfs manpage 2015-11-24 18:26:47 +01:00
tests btrfs-progs: tests: add 019-non-skinny-false-alert 2015-11-26 15:20:35 +01:00
.gitignore btrfs-progs: docs: add html build target 2015-11-02 09:35:00 +01:00
Android.mk btrfs-progs: Add Android build mk file 2015-09-01 14:02:49 +02:00
COPYING
INSTALL btrfs-progs: INSTALL: enhance build instructions 2015-09-07 11:46:32 +02:00
Makefile.extrawarn btrfs-progs: build: allow to build with various compiler warnings 2015-10-21 14:29:26 +02:00
Makefile.in btrfs-progs: tests: add test driver for fuzzed images 2015-11-02 09:35:07 +01:00
README.md btrfs-progs: add an initial README 2015-11-02 15:10:13 +01:00
androidcompat.h btrfs-progs: add compat header for android 2015-09-01 14:02:49 +02:00
autogen.sh btrfs-progs: autogen: add check for pkg-config 2015-09-07 11:09:17 +02:00
backref.c btrfs-progs: mute coverity warnings about deadcode 2015-11-02 09:35:05 +01:00
backref.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
bcp
bitops.h btrfs-progs: compat: define DIV_ROUND_UP if not already defined 2015-06-05 23:29:59 +02:00
btrfs-calc-size.c btrfs-progs: calc-size: kill fs_roots structure and its user 2015-11-13 18:24:34 +01:00
btrfs-completion btrfs-progs: inspect: add command min-dev-size 2015-08-31 19:25:08 +02:00
btrfs-convert.c btrfs-progs: convert: add context and operations struct to allow different file systems 2015-11-26 15:48:19 +01:00
btrfs-corrupt-block.c btrfs-progs: corrupt-block: use on-stack path buffer in corrupt_dir_item 2015-11-13 18:24:34 +01:00
btrfs-crc.c
btrfs-debug-tree.c btrfs-progs: Add all missing btrfs_close_all_devices to standalone tools 2015-11-02 09:35:08 +01:00
btrfs-debugfs btrfs-progs: Add simple python front end to the search ioctl 2014-12-04 17:03:49 +01:00
btrfs-find-root.c btrfs-progs: Add all missing btrfs_close_all_devices to standalone tools 2015-11-02 09:35:08 +01:00
btrfs-fragments.c btrfs-progs: fragments: use btrfs_open_dir for btrfs-fragments command 2015-11-02 09:35:02 +01:00
btrfs-image.c btrfs-progs: image: reorder initialization in metadump_init 2015-11-16 14:23:44 +01:00
btrfs-list.c btrfs-progs: use calloc instead of malloc+memset 2015-10-21 14:29:26 +02:00
btrfs-list.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
btrfs-map-logical.c btrfs-progs: Add all missing btrfs_close_all_devices to standalone tools 2015-11-02 09:35:08 +01:00
btrfs-select-super.c btrfs-progs: Add missing close_ctree to btrfs-select-super.c 2015-11-02 09:35:08 +01:00
btrfs-show-super.c btrfs-progs: show-super: Add option to print superblock at given bytenr 2015-11-02 15:45:52 +01:00
btrfs-zero-log.c btrfs-progs: cleanup and deprecate btrfs-zero-log 2015-06-05 18:02:08 +02:00
btrfs.c btrfs-progs: Avoid use pointer in handle_options 2015-11-02 15:10:14 +01:00
btrfsck.h btrfs-progs: chunk-recovery: Fix a float point error 2015-11-19 18:34:30 +01:00
btrfstune.c btrfs-progs: Add all missing btrfs_close_all_devices to standalone tools 2015-11-02 09:35:08 +01:00
chunk-recover.c btrfs-progs: chunk-recovery: Fix a float point error 2015-11-19 18:34:30 +01:00
cmds-balance.c btrfs-progs: add helpers to print ranges 2015-11-02 09:35:04 +01:00
cmds-check.c btrfs-progs: fsck: Fix a false alert where extent record has wrong metadata flag 2015-11-26 15:15:38 +01:00
cmds-device.c btrfs-progs: cleanup cmd_device_usage, simplify loop checks 2015-11-16 14:23:45 +01:00
cmds-fi-usage.c btrfs-progs: utils: rename helpinfo unit vairables 2015-11-06 16:39:49 +01:00
cmds-fi-usage.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
cmds-filesystem.c btrfs-progs: use on-stack buffer for dev_to_fsid 2015-11-13 18:24:17 +01:00
cmds-inspect.c btrfs-progs: use on-stack buffer in __ino_to_path_fd 2015-11-13 18:24:34 +01:00
cmds-property.c btrfs-progs: prop: use macro terminator for command list 2015-08-31 19:25:09 +02:00
cmds-qgroup.c btrfs-progs: utils: rename helpinfo unit vairables 2015-11-06 16:39:49 +01:00
cmds-quota.c btrfs-progs: quota: use btrfs_open_dir for btrfs quota command 2015-11-02 09:35:01 +01:00
cmds-receive.c btrfs-progs: simplify empty stirngs check 2015-11-06 16:53:55 +01:00
cmds-replace.c btrfs-progs: Remove all btrfs_close_all_devices in sub-command 2015-11-02 09:35:07 +01:00
cmds-rescue.c btrfs-progs: cleanup, mark more functions static 2015-09-14 23:45:53 +02:00
cmds-restore.c btrfs-progs: restore: fix off-by-one len check 2015-10-16 19:37:44 +02:00
cmds-scrub.c btrfs-progs: use btrfs_open_dir in open_path_or_dev_mnt 2015-11-02 09:35:01 +01:00
cmds-send.c btrfs-progs: add newline to some error messages 2015-08-31 19:25:13 +02:00
cmds-subvolume.c btrfs-progs: subvolume: use btrfs_open_dir for btrfs subvolume command 2015-11-02 09:35:00 +01:00
commands.h btrfs-progs: alias btrfs device delete to btrfs device remove 2015-06-26 16:33:39 +02:00
configure.ac btrfs-progs: configure: fix typo in summary 2015-06-22 01:13:48 +02:00
crc32c.c
crc32c.h
ctree.c btrfs-progs: Allow btrfs_leaf_free_space to accept NULL root 2015-11-05 13:40:44 +01:00
ctree.h btrfs-progs: Avoid uninitialized data in output of btrfs-convert 2015-09-09 17:43:05 +02:00
dir-item.c btrfs-progs: cleanup, mark more functions static 2015-09-14 23:45:53 +02:00
dir-test.c
disk-io.c btrfs-progs: use on-stack buffer in __csum_tree_block_size 2015-11-13 18:24:34 +01:00
disk-io.h btrfs-progs: export read_extent_data function 2015-06-17 16:08:35 +02:00
extent-cache.c btrfs-progs: Add last_cache_extent() for extent-cache. 2014-12-10 11:54:10 +01:00
extent-cache.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
extent-tree.c btrfs-progs: use system's default path for math.h 2015-11-02 09:35:08 +01:00
extent_io.c btrfs-progs: use calloc instead of malloc+memset 2015-10-21 14:29:26 +02:00
extent_io.h btrfs-progs: Move (set/clear_)extent_buffer_uptodate() to extent_io.h. 2015-02-27 17:44:11 +01:00
file-item.c
file.c btrfs-progs: Add btrfs_get_extent() and btrfs_punch_hole(). 2015-02-02 14:16:38 +01:00
find-root.c btrfs-progs: find-root: Add support to search chunk root 2015-11-16 14:23:45 +01:00
find-root.h btrfs-progs: Add new find-root.[ch] infrastructure 2015-02-11 18:34:04 +01:00
free-space-cache.c btrfs-progs: add newline to some error messages 2015-08-31 19:25:13 +02:00
free-space-cache.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
fsck.btrfs btrfs-progs: fsck.btrfs: Fix bashism and bad getopts processing 2015-05-21 16:53:44 +02:00
hash.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
hasher.c
help.c btrfs-progs: no extra newline between aliased commands in help text 2015-06-26 16:44:29 +02:00
inode-item.c btrfs-progs: fix overflow check in btrfs_insert_inode_ref 2014-12-30 15:48:55 +01:00
inode-map.c btrfs-progs: Fix uninitialized key.type for btrfs_find_free_objectid 2015-11-02 15:10:14 +01:00
inode.c btrfs-progs: handle orphan creation error in btrfs_unlink 2015-01-06 18:46:03 +01:00
ioctl-test.c
ioctl.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
kerncompat.h btrfs-progs: compilation errors when using musl libc 2015-08-31 19:25:11 +02:00
library-test.c btrfs-progs: build, add basic build test for library 2014-11-07 17:52:57 +01:00
list.h
list_sort.c
list_sort.h
mkfs.c btrfs-progs: mkfs: allow --data DUP for single device 2015-11-26 15:58:38 +01:00
print-tree.c btrfs-progs: print-tree: Output stripe dev uuid 2015-11-03 13:11:14 +01:00
print-tree.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
props.c btrfs-progs: Introduce change_header_uuid function 2015-05-14 15:41:07 +02:00
props.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
qgroup-verify.c btrfs-progs: read_tree_block() and read_node_slot() cleanup. 2015-02-02 19:21:24 +01:00
qgroup-verify.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
qgroup.c btrfs-progs: fix memory leak in cmd_qgroup_show() 2015-11-02 09:35:03 +01:00
qgroup.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
quick-test.c btrfs-progs: use calloc instead of malloc+memset 2015-10-21 14:29:26 +02:00
radix-tree.c btrfs-progs: Remove a unused function root_gtp_mask(). 2014-12-19 15:04:56 +01:00
radix-tree.h
raid6.c
random-test.c
rbtree-utils.c
rbtree-utils.h
rbtree.c
rbtree.h
rbtree_augmented.h
repair.c
repair.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
root-tree.c
send-stream.c btrfs-progs: fix compiler warning 2014-11-07 18:14:38 +01:00
send-stream.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
send-test.c btrfs-progs: drop feature defines from C files, in favour of CFLAGS defines 2015-01-27 14:45:59 +01:00
send-utils.c btrfs-progs: drop argument from attribute deprecated 2015-06-30 15:05:07 +02:00
send-utils.h btrfs-progs: drop argument from attribute deprecated 2015-06-30 15:05:07 +02:00
send.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
show-blocks
string-table.c btrfs-progs: simplify empty stirngs check 2015-11-06 16:53:55 +01:00
string-table.h btrfs-progs: string table: fix whitespace damage 2015-11-03 00:55:20 +01:00
super-recover.c Btrfs-progs: skip opening all devices with restore 2015-02-09 14:53:15 -05:00
task-utils.c btrfs-progs: Check periodic.timer_fd's value before use 2015-11-16 14:23:45 +01:00
task-utils.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
transaction.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
ulist.c
ulist.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
utils-lib.c btrfs-progs: drop feature defines from C files, in favour of CFLAGS defines 2015-01-27 14:45:59 +01:00
utils.c btrfs-progs: mkfs: allow --data DUP for single device 2015-11-26 15:58:38 +01:00
utils.h btrfs-progs: mkfs: allow --data DUP for single device 2015-11-26 15:58:38 +01:00
uuid-tree.c
version.h.in btrfs-progs: re-introduce BTRFS_BUILD_VERSION in version.h 2015-03-16 18:40:06 +01:00
version.sh Btrfs progs v4.3.1 2015-11-16 14:29:25 +01:00
volumes.c btrfs-progs: find-root: Add support to search chunk root 2015-11-16 14:23:45 +01:00
volumes.h btrfs-progs: find-root: Add support to search chunk root 2015-11-16 14:23:45 +01:00

README.md

Btrfs-progs

Userspace utilities to manage btrfs filesystems. License: GPLv2.

Btrfs is a copy on write (COW) filesystem for Linux aimed at implementing advanced features while focusing on fault tolerance, repair and easy administration.

This repository hosts following utilities:

  • btrfs — the main administration tool (manual page)
  • mkfs.btrfs — utility to create the filesystem (manual page)

See INSTALL for build instructions.

Release cycle

The major version releases are time-based and follow the cycle of the linux kernel releases. The cycle usually takes 2 months. A minor version releases may happen in the meantime if there are queued bug fixes or minor useful improvements.

Development

The patch submissions, development or general discussions take place at linux-btrfs@vger.kernel.org mailinglist, subsciption not required.

References