Userspace utilities to manage btrfs filesystems
Go to file
Qu Wenruo 61d6ed4fe7 btrfs-progs: Enhance chunk validation check
Enhance chunk validation:
1) Num_stripes
   We already have such check but it's only in super block sys chunk
   array.
   Now check all on-disk chunks.

2) Chunk logical
   It should be aligned to sector size.
   This behavior should be *DOUBLE CHECKED* for 64K sector size like
   PPC64 or AArch64.
   Maybe we can found some hidden bugs.

3) Chunk length
   Same as chunk logical, should be aligned to sector size.

4) Stripe length
   It should be power of 2.

5) Chunk type
   Any bit out of TYPE_MAS | PROFILE_MASK is invalid.

With all these much restrict rules, several fuzzed image reported in
mail list should no longer cause btrfsck error.

Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2016-01-12 15:01:04 +01:00
Documentation btrfs-progs: extend balance args to take min/max usage filter 2016-01-12 15:01:04 +01:00
tests btrfs-progs: tests: test multiple-linked file corruption 2016-01-12 15:01:03 +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: Introduce new members for btrfs_convert_context 2016-01-12 15:01:03 +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: copy implementation of btrfs_read_sys_array 2016-01-04 11:28:24 +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: balance: enhance the usage filter with range 2016-01-12 15:01:04 +01:00
cmds-check.c btrfs-progs: check, properly reset nlink of multi-linked file 2016-01-12 15:01:02 +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: install to /usr/local by default again 2016-01-04 11:28:24 +01: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: Enhance chunk validation check 2016-01-12 15:01:04 +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: extent-tree: Add add_merge_cache_extent function 2016-01-12 15:01:03 +01:00
extent-cache.h btrfs-progs: extent-tree: Add add_merge_cache_extent function 2016-01-12 15:01:03 +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: extend balance args to take min/max usage filter 2016-01-12 15:01:04 +01:00
kerncompat.h btrfs-progs: Enhance chunk validation check 2016-01-12 15:01:04 +01:00
library-test.c
list.h
list_sort.c
list_sort.h
mkfs.c btrfs-progs: ftw_add_entry_size: Round up file size to sectorsize 2016-01-12 15:01:04 +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: docs: mkfs, implications of DUP on devices 2016-01-04 11:28:12 +01:00
utils.h btrfs-progs: Introduce new members for btrfs_convert_context 2016-01-12 15:01:03 +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: Enhance chunk validation check 2016-01-12 15:01:04 +01:00
volumes.h btrfs-progs: extend balance args to take min/max usage filter 2016-01-12 15:01:04 +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