Userspace utilities to manage btrfs filesystems
Go to file
Chandan Rajendra 49ec1413a7 Btrfs-progs: Initialize stripesize to the value of sectorsize
stripesize should ideally be set to the value of sectorsize. However
previous versions of btrfs-progs/mkfs.btrfs had set stripesize to a
value of 4096. On machines with PAGE_SIZE other than 4096, This could
lead to the following scenario,

- /dev/loop0, /dev/loop1 and /dev/loop2 are mounted as a single
  filesystem. The filesystem was created by an older version of mkfs.btrfs
  which set stripesize to 4k.
- losetup -a
   /dev/loop0: [0030]:19477 (/root/disk-imgs/file-0.img)
   /dev/loop1: [0030]:16577 (/root/disk-imgs/file-1.img)
   /dev/loop2: [64770]:3423229 (/root/disk-imgs/file-2.img)
- /etc/mtab lists only /dev/loop0
- losetup /dev/loop4 /root/disk-imgs/file-1.img
  The new mkfs.btrfs invoked as 'mkfs.btrfs -f /dev/loop4' succeeds even
  though /dev/loop1 has already been mounted and has
  /root/disk-imgs/file-1.img as its backing file.

The above behaviour occurs because check_super() function returns an
error code (due to stripesize not being set to 4096) and hence
check_mounted_where() function treats /dev/loop1 as a disk containing a
filesystem other than Btrfs.

Hence as a workaround this commit allows 4096 as a valid stripesize.

Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2016-06-17 17:11:26 +02:00
Documentation btrfs-progs: docs: update btrfs-restore manual page 2016-06-17 17:02:12 +02:00
tests btrfs-progs: tests: add 003-fi-resize-args 2016-06-17 17:02:12 +02:00
.gitignore btrfs-progs: btrfs-crc should be ignored by git 2016-06-03 14:49:42 +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
CHANGES btrfs-progs: update CHANGES for 4.6 2016-06-10 14:50:43 +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: makefile: add target for testing installation 2016-06-01 14:56:56 +02: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: Don't show success message on fail 2016-06-01 14:56:56 +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-progs: compat: define DIV_ROUND_UP if not already defined 2015-06-05 23:29:59 +02:00
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: convert: Fix a bug which fails to insert hole file extent 2016-06-07 18:15:19 +02:00
btrfs-corrupt-block.c btrfs-progs: Use new random number API 2016-06-03 14:49:42 +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: Use new random number API 2016-06-03 14:49:42 +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: replace leafsize with nodesize 2016-05-02 14:40:18 +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: unify argc min/max checking 2016-03-14 13:42:47 +01:00
chunk-recover.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
cmds-balance.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
cmds-check.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
cmds-device.c btrfs-progs: handle memory allocation error in cmd_device_stats 2016-05-02 15:03:24 +02:00
cmds-fi-du.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +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: device usage: report slack space 2016-06-01 14:56:56 +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: fi resize: fix parsing of negative argument 2016-06-17 17:02:12 +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: typo review of strings and comments 2016-06-01 14:56:56 +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: qgroup assign: handle --no-rescan option 2016-03-18 14:19:29 +01:00
cmds-quota.c btrfs-progs: add getopt stubs where needed 2016-03-14 13:42:47 +01: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: check for negative return value from ioctl 2016-01-12 15:02:55 +01: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: typo review of strings and comments 2016-06-01 14:56:56 +02:00
cmds-send.c btrfs-progs: send: add quiet option 2016-06-01 14:56:56 +02:00
cmds-subvolume.c btrfs-progs: subvolume sync: fix handling of -s option 2016-05-11 16:37:12 +02:00
commands.h btrfs-progs: clean up commands.h 2016-06-01 14:56:56 +02:00
configure.ac btrfs-progs: convert: add compatibility layer for e2fsprogs < 1.42 2016-06-07 18:15:19 +02:00
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: Cleanup old btrfs-convert 2016-06-07 18:15:19 +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: Initialize stripesize to the value of sectorsize 2016-06-17 17:11:26 +02:00
disk-io.h btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +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: Cleanup old btrfs-convert 2016-06-07 18:15:19 +02:00
extent_io.c btrfs-progs: replace leafsize with nodesize 2016-05-02 14:40:18 +02:00
extent_io.h btrfs-progs: check the free space tree in btrfsck 2016-01-12 15:02:54 +01: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 btrfs-progs: fsck.btrfs: Fix bashism and bad getopts processing 2015-05-21 16:53:44 +02:00
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: typo review of strings and comments 2016-06-01 14:56:56 +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: typo review of strings and comments 2016-06-01 14:56:56 +02:00
kerncompat.h btrfs-progs: fix type mismatch in backtrace dumping functions 2016-06-01 14:56:56 +02:00
library-test.c
list.h
list_sort.c btrfs-progs: typo review of strings and comments 2016-06-01 14:56:56 +02:00
list_sort.h
mkfs.c Btrfs-progs: Initialize stripesize to the value of sectorsize 2016-06-17 17:11:26 +02:00
print-tree.c btrfs-progs: deprecate and stop using btrfs_level_size 2016-05-02 14:40:23 +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: qgroup: Fix a bug that fails to skip rescan running case 2016-06-17 17:05:22 +02:00
qgroup-verify.h btrfs-progs: Fix return value bug of qgroups check 2016-05-02 14:42:28 +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
random-test.c
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
rbtree_augmented.h btrfs-progs: Import interval tree implemenation from Linux v4.0-rc7. 2016-02-26 17:27:58 +01:00
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
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: typo review of strings and comments 2016-06-01 14:56:56 +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: new helper for option parsing, more permissive for "no options" 2016-06-17 17:01:25 +02:00
utils.h btrfs-progs: new helper for option parsing, more permissive for "no options" 2016-06-17 17:01:25 +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.6 2016-06-10 15:03:18 +02:00
volumes.c btrfs-progs: Introduce function to create convert data chunks 2016-06-07 18:15:19 +02:00
volumes.h btrfs-progs: Introduce function to create convert data chunks 2016-06-07 18:15:19 +02: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