Userspace utilities to manage btrfs filesystems
Go to file
David Sterba 2ff04db5f4 btrfs-progs: two staged filesystem creation
The filesystem existence on a device is manifested by the signature,
during the mkfs process we write it first and then create other
structures. Such filesystem is not valid and should not be registered
during device scan nor listed among devices from blkid.

This patch will introduce two staged creation. In the first phase, the
signature is wrong, but recognized as a partially created filesystem (by
open or scan helpers). Once we successfully create and write everything,
we fixup the signature. At this point automated scanning should find
a valid filesystem on all devices.

We can also rely on the partially created filesystem to do better error
handling during creation. We can just bail out and do not need to clean
up.

The partial signature is '!BHRfS_M', can be shown by

  btrfs inspect-internal dump-super -F image

Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2016-08-24 14:37:31 +02:00
Documentation btrfs-progs: docs: refer to btrfs(5) from btrfs(8) 2016-08-18 19:50:43 +02:00
m4 btrfs-progs: build: add m4 macros for AC_CHECK_DEFINE 2016-06-24 14:05:44 +02:00
tests btrfs-progs: convert-test: Check if the ext2_save/image is read only 2016-08-19 13:53:28 +02:00
.gitignore btrfs-progs: build: let autotools include m4 2016-06-24 14:05:44 +02:00
64-btrfs-dm.rules btrfs-progs: udev: add rules for dm devices 2016-06-01 14:56:56 +02:00
Android.mk btrfs-progs: Add Android build mk file 2015-09-01 14:02:49 +02:00
androidcompat.h btrfs-progs: add compat header for android 2015-09-01 14:02:49 +02:00
autogen.sh btrfs-progs: build: let autotools include m4 2016-06-24 14:05:44 +02:00
backref.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
backref.h
bcp
bitops.h
btrfs-calc-size.c btrfs-progs: copy btrfs-calc-size to inspect-internal tree-stats 2016-05-02 14:39:53 +02:00
btrfs-completion btrfs-progs: update docs and completion for tree-stats 2016-05-02 14:39:57 +02:00
btrfs-convert.c btrfs-progs: two staged filesystem creation 2016-08-24 14:37:31 +02:00
btrfs-corrupt-block.c btrfs-progs: corrupt block: handle eb read and write errors 2016-07-15 17:03:28 +02:00
btrfs-crc.c btrfs-progs: btrfs-crc: make argc check more strict 2016-06-03 14:49:43 +02:00
btrfs-debug-tree.c btrfs-progs: unify naming of argc and argv 2016-03-14 13:42:47 +01:00
btrfs-debugfs btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
btrfs-find-root.c btrfs-progs: Add new option for specify chunk root bytenr 2016-03-14 13:42:47 +01:00
btrfs-fragments.c btrfs-progs: use ioctl search headers everywhere 2016-05-11 15:53:16 +02:00
btrfs-image.c btrfs-progs: image: fix minor resource leak 2016-07-15 16:27:06 +02:00
btrfs-list.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +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: fix btrfs-map-logical to only print extent mapping info 2016-07-15 11:45:29 +02:00
btrfs-select-super.c btrfs-progs: utils: switch more error messages to common helpers 2016-03-14 14:38:16 +01:00
btrfs-show-super.c btrfs-progs: introduce inspect-internal dump-super 2016-03-14 13:42:47 +01:00
btrfs-zero-log.c btrfs-progs: unify argc min/max checking 2016-03-14 13:42:47 +01:00
btrfs.c btrfs-progs: move prefixcmp to utils 2016-01-14 11:07:10 +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: pass OPEN_CTREE flags as unsigned 2016-08-24 14:36:54 +02:00
CHANGES btrfs-progs: update CHANGES for 4.7 2016-07-29 15:05:47 +02:00
chunk-recover.c btrfs-progs: make superblock reading/scanning api more generic 2016-08-24 14:36:58 +02:00
cmds-balance.c btrfs-progs: balance: add another (shorter) option for background 2016-07-26 19:30:39 +02:00
cmds-check.c btrfs-progs: pass OPEN_CTREE flags as unsigned 2016-08-24 14:36:54 +02:00
cmds-device.c btrfs-progs: refactor and extend btrfs_prepare_device arguments 2016-07-28 14:08:30 +02:00
cmds-fi-du.c btrfs-progs: do not set optind if not necessary 2016-07-13 19:41:55 +02:00
cmds-fi-du.h btrfs-progs: filesystem: add 'du' command 2016-03-14 13:42:47 +01:00
cmds-fi-usage.c btrfs-progs: do not set optind if not necessary 2016-07-13 19:41:55 +02: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: make superblock reading/scanning api more generic 2016-08-24 14:36:58 +02:00
cmds-inspect-dump-super.c btrfs-progs: dump-super: add more long options 2016-03-15 16:41:06 +01:00
cmds-inspect-dump-super.h btrfs-progs: unify naming of argc and argv 2016-03-14 13:42:47 +01:00
cmds-inspect-dump-tree.c btrfs-progs: deprecate and stop using btrfs_level_size 2016-05-02 14:40:23 +02:00
cmds-inspect-dump-tree.h btrfs-progs: unify naming of argc and argv 2016-03-14 13:42:47 +01:00
cmds-inspect-tree-stats.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
cmds-inspect-tree-stats.h btrfs-progs: copy btrfs-calc-size to inspect-internal tree-stats 2016-05-02 14:39:53 +02:00
cmds-inspect.c btrfs-progs: do not set optind if not necessary 2016-07-13 19:41:55 +02:00
cmds-property.c btrfs-progs: prop: remove conditions which never be satisfied 2016-05-11 16:43:42 +02:00
cmds-qgroup.c btrfs-progs: do not set optind if not necessary 2016-07-13 19:41:55 +02:00
cmds-quota.c btrfs-progs: do not set optind if not necessary 2016-07-13 19:41:55 +02:00
cmds-receive.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
cmds-replace.c btrfs-progs: refactor and extend btrfs_prepare_device arguments 2016-07-28 14:08:30 +02:00
cmds-rescue.c btrfs-progs: unify argc min/max checking, a few more 2016-03-14 13:42:47 +01:00
cmds-restore.c btrfs-progs: replace leafsize with nodesize 2016-05-02 14:40:18 +02:00
cmds-scrub.c btrfs-progs: do not set optind if not necessary 2016-07-13 19:41:55 +02:00
cmds-send.c btrfs-progs: send: add quiet option 2016-06-01 14:56:56 +02:00
cmds-subvolume.c btrfs-progs: switch ternary op to an if in cmd_subvol_show 2016-08-19 15:45:04 +02:00
commands.h btrfs-progs: clean up commands.h 2016-06-01 14:56:56 +02:00
configure.ac btrfs-progs: build: check if FIEMAP_EXTENT_SHARED is defined 2016-06-24 14:05:44 +02:00
COPYING
crc32c.c
crc32c.h
ctree.c btrfs-progs: extent-tree: Introduce function to find the first overlapping extent 2016-06-07 18:15:19 +02:00
ctree.h btrfs-progs: two staged filesystem creation 2016-08-24 14:37:31 +02:00
dir-item.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
dir-test.c
disk-io.c btrfs-progs: two staged filesystem creation 2016-08-24 14:37:31 +02:00
disk-io.h btrfs-progs: two staged filesystem creation 2016-08-24 14:37:31 +02:00
extent_io.c btrfs-progs: handler memory allocation error in write_data_to_disk 2016-07-28 14:08:30 +02:00
extent_io.h btrfs-progs: update values of EXTENT_* bits 2016-07-28 14:08:30 +02:00
extent-cache.c btrfs-progs: extent-tree: Add add_merge_cache_extent function 2016-01-12 15:01:03 +01:00
extent-cache.h btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
extent-tree.c btrfs-progs: check: introduce function to check data backref in extent tree 2016-08-17 18:51:19 +02:00
file-item.c btrfs-progs: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +01:00
file.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
find-root.c btrfs-progs: replace leafsize with nodesize 2016-05-02 14:40:18 +02:00
find-root.h btrfs-progs: find-root: Allow btrfs-find-root to search chunk root even chunk root is corrupted 2016-02-26 17:27:58 +01:00
free-space-cache.c btrfs-progs: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +01:00
free-space-cache.h btrfs-progs: check the free space tree in btrfsck 2016-01-12 15:02:54 +01:00
free-space-tree.c btrfs-progs: free-space-tree: minor message adjustments 2016-01-12 15:02:55 +01:00
free-space-tree.h btrfs-progs: check the free space tree in btrfsck 2016-01-12 15:02:54 +01:00
fsck.btrfs
hash.h
hasher.c
help.c btrfs-progs: move prefixcmp to utils 2016-01-14 11:07:10 +01:00
inode-item.c
inode-map.c btrfs-progs: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +01:00
inode.c btrfs-progs: convert: Fix a regression that ext2_save/image is not readonly 2016-08-19 13:52:43 +02:00
INSTALL btrfs-progs: INSTALL: enhance build instructions 2015-09-07 11:46:32 +02:00
internal.h btrfs-progs: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +01:00
interval_tree_generic.h btrfs-progs: Import interval tree implemenation from Linux v4.0-rc7. 2016-02-26 17:27:58 +01:00
ioctl-test.c
ioctl.h btrfs-progs: use the correct struct for BTRFS_IOC_LOGICAL_INO 2016-07-04 14:12:38 +02:00
kerncompat.h btrfs-progs: kerncompat: introduce put_unaligned_x helpers 2016-07-28 14:08:30 +02:00
library-test.c
list_sort.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
list_sort.h
list.h
Makefile.extrawarn btrfs-progs: build: allow to build with various compiler warnings 2015-10-21 14:29:26 +02:00
Makefile.in btrfs-progs: build: add more debugging features 2016-08-22 16:44:22 +02:00
mkfs.c btrfs-progs: two staged filesystem creation 2016-08-24 14:37:31 +02:00
print-tree.c btrfs-progs: print-tree: Print hex and human readable root flags 2016-08-19 13:54:05 +02:00
print-tree.h
props.c btrfs-progs: prop: convert error messages to use error() 2016-05-11 16:37:12 +02:00
props.h
qgroup-verify.c btrfs-progs: handle ulist_add errors in qgroup-verify 2016-07-15 16:12:00 +02:00
qgroup-verify.h btrfs-progs: check: write corrected qgroup info to disk 2016-07-13 18:44:26 +02:00
qgroup.c btrfs-progs: use ioctl search headers everywhere 2016-05-11 15:53:16 +02: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
radix-tree.h
raid6.c btrfs-progs: fix unaligned access in raid6 calculations 2016-07-29 15:04:54 +02:00
random-test.c
rbtree_augmented.h btrfs-progs: Import interval tree implemenation from Linux v4.0-rc7. 2016-02-26 17:27:58 +01:00
rbtree-utils.c
rbtree-utils.h
rbtree.c
rbtree.h btrfs-progs: Import interval tree implemenation from Linux v4.0-rc7. 2016-02-26 17:27:58 +01:00
README.md btrfs-progs: add an initial README 2015-11-02 15:10:13 +01:00
repair.c btrfs-progs: factor out repair mode 2016-07-04 15:22:53 +02:00
repair.h btrfs-progs: factor out repair mode 2016-07-04 15:22:53 +02:00
root-tree.c
send-stream.c
send-stream.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
send-test.c btrfs-progs: check for negative return value from ioctl 2016-01-12 15:02:55 +01:00
send-utils.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
send-utils.h btrfs-progs: drop argument from attribute deprecated 2015-06-30 15:05:07 +02:00
send.h
show-blocks btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
string-table.c btrfs-progs: add function attributes for the printf-like 2016-01-12 15:02: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: make superblock reading/scanning api more generic 2016-08-24 14:36:58 +02: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
transaction.h btrfs-progs: add missing includes to header files 2015-06-10 02:52:21 +02:00
ulist.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
ulist.h
utils-lib.c
utils.c btrfs-progs: two staged filesystem creation 2016-08-24 14:37:31 +02:00
utils.h btrfs-progs: build: add more debugging features 2016-08-22 16:44:22 +02:00
uuid-tree.c btrfs-progs: use ioctl search headers everywhere 2016-05-11 15:53:16 +02:00
version.h.in
version.sh Btrfs progs v4.7 2016-07-29 15:06:42 +02:00
volumes.c btrfs-progs: make superblock reading/scanning api more generic 2016-08-24 14:36:58 +02:00
volumes.h btrfs-progs: make superblock reading/scanning api more generic 2016-08-24 14:36:58 +02:00

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