Userspace utilities to manage btrfs filesystems
Go to file
Petros Angelatos ee78a83b5e btrfs-progs: utils: make sure set_label_mounted uses correct length buffers
When `btrfs filesystem label /foo bar` command is invoked, it will pass
the buffer allocated in the argv array directly to set_label_mounted()
and then to the BTRFS_IOC_SET_FSLABEL ioctl.

However, the kernel code handling the ioctl will always try to copy
BTRFS_LABEL_SIZE bytes[1] from the userland pointer. Under certain
conditions and when the label is small enough, the command will fail
with:

    [root@localhost /]# btrfs filesystem label /mnt f
    ERROR: unable to set label Bad address

Fix this by making sure we pass a BTRFS_LABEL_SIZE sized buffer to the
ioctl containing the desired label.

[1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/fs/btrfs/ioctl.c?id=refs/tags/v4.5#n5231

Signed-off-by: Petros Angelatos <petrosagg@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2016-03-30 16:23:21 +02:00
Documentation btrfs-progs: docs: man5, add space_cache=v2 2016-03-17 14:49:32 +01:00
tests btrfs-progs: tests: enumerate RWX in convert tests 2016-03-18 17:11:25 +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
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: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +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: unify argc min/max checking 2016-03-14 13:42:47 +01:00
btrfs-completion btrfs-progs: update docs for inspect-internal dump-super 2016-03-14 13:42:47 +01:00
btrfs-convert.c btrfs-progs: unify argc min/max checking 2016-03-14 13:42:47 +01:00
btrfs-corrupt-block.c btrfs-progs: unify argc min/max checking 2016-03-14 13:42:47 +01:00
btrfs-crc.c
btrfs-debug-tree.c btrfs-progs: unify naming of argc and argv 2016-03-14 13:42:47 +01:00
btrfs-debugfs btrfs-progs: btrfs-debugfs: fetch block group information 2016-03-16 10:33:11 +01: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: fragments: fix build 2016-03-30 16:23:10 +02:00
btrfs-image.c btrfs-progs: Add new option for specify chunk root bytenr 2016-03-14 13:42:47 +01:00
btrfs-list.c btrfs-progs: check for negative return value from ioctl 2016-01-12 15:02:55 +01: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: unify argc min/max checking 2016-03-14 13:42:47 +01: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: fix endian bugs in chunk rebuilding 2016-01-12 15:01:05 +01:00
cmds-balance.c btrfs-progs: add getopt stubs where needed 2016-03-14 13:42:47 +01:00
cmds-check.c btrfs-progs: check: unify naming of long option values 2016-03-14 13:42:47 +01:00
cmds-device.c btrfs-progs: Introduce device delete by devid 2016-03-14 14:11:33 +01:00
cmds-fi-du.c btrfs-progs: fix fi du so it works in more cases 2016-03-30 16:22:53 +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: fi usage: support mixed blockgroups 2016-01-13 16:43:13 +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: fix resource leak during device scanning 2016-03-15 10:28:14 +01: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: dump-tree: let --tree understand name of the tree 2016-03-14 13:42:47 +01:00
cmds-inspect-dump-tree.h btrfs-progs: unify naming of argc and argv 2016-03-14 13:42:47 +01:00
cmds-inspect.c btrfs-progs: inspect subvolid-resolve: fix argument parsing 2016-03-18 14:14:03 +01:00
cmds-property.c btrfs-progs: fix a regression that "property" with -t option doesn't work 2016-03-16 10:19:42 +01: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: receive: don't leak open find handle 2016-01-14 11:07:10 +01: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 hardcoded PAGE_CACHE_SIZE with sectorsize. 2016-03-14 13:42:47 +01:00
cmds-scrub.c btrfs-progs: add getopt stubs where needed 2016-03-14 13:42:47 +01:00
cmds-send.c btrfs-progs: describe btrfs-send requires read-only subvolume 2016-02-04 15:19:32 +01:00
cmds-subvolume.c btrfs-progs: subvol get-default: fix argument parsing 2016-03-18 14:10:12 +01:00
commands.h btrfs-progs: let test_issubvolume return the exact error 2016-01-14 11:07:10 +01:00
configure.ac btrfs-progs: Use AC_CHECK_TOOL to find AR 2016-01-14 11:46:59 +01:00
COPYING
crc32c.c
crc32c.h
ctree.c btrfs-progs: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +01:00
ctree.h btrfs-progs: Allow open_ctree to return fs_info even chunk tree is corrupted 2016-02-26 17:27:58 +01: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: switch to common message helpers in open_ctree_fs_info 2016-03-18 16:38:14 +01:00
disk-io.h btrfs-progs: Add new option for specify chunk root bytenr 2016-03-14 13:42:47 +01:00
extent_io.c btrfs-progs: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +01:00
extent_io.h btrfs-progs: check the free space tree in btrfsck 2016-01-12 15:02:54 +01: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: Add support for tree block operations on fs_info without roots 2016-02-26 17:27:58 +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: Add btrfs_get_extent() and btrfs_punch_hole(). 2015-02-02 14:16:38 +01:00
find-root.c 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
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 btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
hasher.c
help.c btrfs-progs: move prefixcmp to utils 2016-01-14 11:07:10 +01: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: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +01:00
inode.c btrfs-progs: handle orphan creation error in btrfs_unlink 2015-01-06 18:46:03 +01: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: Introduce device delete by devid 2016-03-14 14:11:33 +01:00
kerncompat.h btrfs-progs: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +01:00
library-test.c
list_sort.c
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: fix static standalone utilities 2016-03-30 16:22:47 +02:00
mkfs.c btrfs-progs: mkfs: also parse raid0 profile case-insensitive 2016-03-16 17:41:16 +01:00
print-tree.c btrfs-progs: print-tree: show the compression method string 2016-03-14 13:42:47 +01:00
print-tree.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
props.c btrfs-progs: use NULL instead of 0 2016-01-12 15:01:05 +01:00
props.h btrfs-progs: unify header file inclusion protections 2015-01-21 17:49:26 +01:00
qgroup-verify.c btrfs-progs: fix using on-disk structure to store in memory data 2016-01-12 15:01:05 +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: remove unnecessary errno temp variables 2016-01-12 15:02:55 +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_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
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: check for negative return value from ioctl 2016-01-12 15:02:55 +01: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: 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: 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: utils: make sure set_label_mounted uses correct length buffers 2016-03-30 16:23:21 +02:00
utils.h btrfs-progs: libbtrfs: remove max/min macros from API 2016-03-14 13:42:47 +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.5 2016-03-20 23:59:05 +01:00
volumes.c btrfs-progs: don't print message for a missing device 2016-03-14 13:42:47 +01:00
volumes.h btrfs-progs: extend balance args to take min/max usage filter 2016-01-12 15:01:04 +01: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