Userspace utilities to manage btrfs filesystems
Go to file
Satoru Takeuchi 44d3ee3e1f btrfs-progs fix wrong memory free on check_is_root
When "/" is Btrfs, "btrfs property <subcommand> /" regards it
as non-root by mistake.

check_is_root() regards @object as a file system root if
the following two conditions are satisfied.

 a) Both @object and its parent directory are Btrfs object
    (file system root, subvolume, inode, and device
    used for Btrfs).
 b) fsid of the above mentioned two objects are different.

It doesn't work if @object is "/" because, in this case,
fsid of "/" and its parent (it's also "/"), are the same.

* Test environment

Two Btrfs file system (not subvolume) "/" and "/home/sat/mnt".

* How to reproduce

Submit "btrfs prop get" against the above mentioned file systems.

* Test Result

** Actual result (without my patch)

==========================
ro=false
label=                 # label is displayed because it's a file system root
ro=false               # label is not displayed even if it's a file system root
==========================
** Expected result (with my patch)

==========================
ro=false
label=
ro=false
label=foo            # label is displayed
===========================

Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>
Reported-by: Naohiro Aota <naota@elisp.net>
Reviewed-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
2014-12-22 18:34:23 +01:00
Documentation btrfs-progs: Enhance the document of btrfs property 2014-12-19 15:06:26 +01:00
tests btrfs-progs: Add testcase for leaf-corrupted btrfsck repairing. 2014-12-18 17:30:53 +01:00
.gitignore btrfs-progs: update .gitignore 2014-11-07 17:59:56 +01:00
COPYING fix COPYING 2007-06-12 15:41:08 -04:00
INSTALL btrfs-progs: Add information about libblkid requirement to INSTALL file 2014-08-22 14:39:31 +02:00
Makefile btrfs-progs: Makefile: Move linker only option to LDFLAGS 2014-12-19 15:04:43 +01:00
backref.c Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
backref.h Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
bcp Btrfs-progs: Correct path munging in bcp 2011-10-25 09:18:58 -04:00
bitops.h Btrfs-progs: add a free space cache checker to fsck V2 2013-04-23 18:56:21 +02:00
btrfs-calc-size.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-convert.c btrfs-progs: include headers required for musl-libc 2014-12-18 18:22:06 +01:00
btrfs-corrupt-block.c btrfs-progs: corrupt block, add break after option U 2014-12-19 18:04:18 +01:00
btrfs-crc.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-debug-tree.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02: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: introduce a proper structure on which cli will call register-device ioctl 2014-10-16 12:02:00 +02:00
btrfs-fragments.c btrfs-progs: fragments, close output file on error 2014-12-19 18:04:21 +01:00
btrfs-image.c btrfs-progs: add mount status check for btrfs-image 2014-08-22 15:07:03 +02:00
btrfs-list.c btrfs-progs: fix spacing in error messages 2014-11-25 19:50:12 +01:00
btrfs-list.h btrfs-progs: Add -R to list UUIDs of original received subvolume 2014-09-14 13:09:52 +02:00
btrfs-map-logical.c btrfs-progs: check read extent errors when mapping 2014-11-03 18:35:30 +01:00
btrfs-select-super.c btrfs-progs: use check_argc_* to check arg number for all tools 2014-08-22 15:07:02 +02:00
btrfs-show-super.c btrfs-progs: fix show super unknown flag output 2014-10-16 13:38:35 +02:00
btrfs-zero-log.c Btrfs-progs: add a message to know zero log ran successfully 2014-11-14 11:00:32 +01:00
btrfs.c btrfs-progs: move the check_argc_* functions into utils.c 2014-08-22 14:55:27 +02:00
btrfsck.h btrfs-progs: rebuild missing block group during chunk recovery if possible 2014-12-04 16:48:13 +01:00
btrfstune.c btrfs-progs: add ask_user confirmation for btrfstune clear seeding flag 2014-08-22 16:09:55 +02:00
chunk-recover.c btrfs-progs: rebuild missing block group during chunk recovery if possible 2014-12-04 16:48:13 +01:00
cmds-balance.c btrfs-progs: balance filter: add limit of processed chunks 2014-08-22 14:55:26 +02:00
cmds-check.c btrfs-progs: check result of first_cache_extent 2014-12-19 18:04:23 +01:00
cmds-device.c btrfs-progs: unify unit mode parameters and variables 2014-12-18 15:24:45 +01:00
cmds-fi-disk_usage.c btrfs-progs: cleanup: avoid to use literal for getopt val 2014-12-19 15:07:02 +01:00
cmds-fi-disk_usage.h btrfs-progs: unify unit mode parameters and variables 2014-12-18 15:24:45 +01:00
cmds-filesystem.c btrfs-progs: cleanup: avoid to use literal for getopt val 2014-12-19 15:07:02 +01:00
cmds-inspect.c Btrfs-progs: fix some build warnings on 32bit platform 2014-08-22 15:07:03 +02:00
cmds-property.c btrfs-progs fix wrong memory free on check_is_root 2014-12-22 18:34:23 +01:00
cmds-qgroup.c btrfs-progs: qgroup destroy says create failed 2014-01-31 08:22:12 -08:00
cmds-quota.c Btrfs-progs: fix magic return value in cmds-quota.c 2013-10-16 08:20:41 -04:00
cmds-receive.c btrfs-progs: Remove deprecated _BSD_SOURCE macro. 2014-12-19 15:05:06 +01:00
cmds-replace.c btrfs-progs: add new dev replace result 2014-11-25 18:50:58 +01:00
cmds-rescue.c btrfs-progs: use check_argc_exact to check arg number of btrfs-rescue 2014-08-22 14:39:31 +02:00
cmds-restore.c btrfs-progs: cleanup duplicate assignment of variable leaf for btrfs-restore 2014-12-04 18:51:51 +01:00
cmds-scrub.c btrfs-progs: scrub, detect stale information in the status file 2014-10-10 10:38:36 +02:00
cmds-send.c btrfs-progs: check allocation result in add_clone_source 2014-12-19 18:04:25 +01:00
cmds-subvolume.c btrfs-progs: subvol delete: rename variable to match the option name 2014-12-10 16:04:08 +01:00
commands.h btrfs-progs: move the check_argc_* functions into utils.c 2014-08-22 14:55:27 +02:00
crc32c.c btrfs-progs: make many private symbols static 2013-09-03 19:41:08 +02:00
crc32c.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
ctree.c btrfs-progs: let btrfs_free_path accept NULL 2014-12-19 18:04:28 +01:00
ctree.h btrfs-progs: Add inode item rebuild function. 2014-12-10 13:52:28 +01:00
dir-item.c Btrfs-progs: delete bogus dir indexes 2014-10-14 10:45:03 +02:00
dir-test.c Btrfs-progs: fix magic return value in dir-test.c 2013-10-16 08:20:42 -04:00
disk-io.c btrfs-progs: Fix a clang dead-judgement warning in disk-io.c. 2014-12-19 15:04:50 +01:00
disk-io.h btrfs-progs: introduce a proper structure on which cli will call register-device ioctl 2014-10-16 12:02:00 +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: Add last_cache_extent() for extent-cache. 2014-12-10 11:54:10 +01:00
extent-tree.c Btrfs-progs: check, ability to detect and fix outdated snapshot root items 2014-10-17 18:24:54 +02:00
extent_io.c btrfs-progs: check read extent errors when mapping 2014-11-03 18:35:30 +01:00
extent_io.h Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
file-item.c btrfs-progs: remove btrfs_release_path before btrfs_free_path 2014-09-14 19:06:12 +02:00
free-space-cache.c btrfs-progs: Remove a unused function offset_to_bitmap() 2014-12-19 15:05:01 +01:00
free-space-cache.h btrfs-progs: make free space checker work on non-4k sectorsize filesystems 2014-10-10 10:38:31 +02:00
fsck.btrfs btrfs-progs: add fsck.btrfs stub and manpage 2014-01-31 08:22:13 -08:00
hash.h Switch btrfs_name_hash() to crc32c 2008-08-20 20:11:23 -04:00
hasher.c Unaligned access fixes 2008-02-15 11:19:58 -05:00
help.c btrfs-progs: include headers required for musl-libc 2014-12-18 18:22:06 +01:00
inode-item.c btrfs-progs: Import lookup/del_inode_ref() function. 2014-12-10 11:53:48 +01:00
inode-map.c btrfs-progs: remove btrfs_release_path before btrfs_free_path 2014-09-14 19:06:12 +02:00
inode.c btrfs-progs: Add inode item rebuild function. 2014-12-10 13:52:28 +01:00
ioctl-test.c btrfs-progs: mark static & remove unused from non-kernel code 2013-09-03 19:40:54 +02:00
ioctl.h btrfs-progs: basic support for TREE_SEARCH_V2 ioctl 2014-12-10 15:01:20 +01:00
kerncompat.h btrfs-progs: disable backtrace and define __always_inline 2014-12-18 18:28:34 +01:00
library-test.c btrfs-progs: build, add basic build test for library 2014-11-07 17:52:57 +01:00
list.h Btrfs-progs: introduce list_{first, next}_entry/list_splice_tail{_init} 2013-07-03 14:06:55 -04:00
list_sort.c btrfs-progs: add list_sort and use it to sort devices by id 2013-10-16 08:22:26 -04:00
list_sort.h btrfs-progs: add list_sort and use it to sort devices by id 2013-10-16 08:22:26 -04:00
mkfs.c btrfs-progs: include headers required for musl-libc 2014-12-18 18:22:06 +01:00
print-tree.c btrfs-progs: debug: print more info about inode 2014-10-10 18:15:28 +02:00
print-tree.h btrfs-progs: add quota group verify code 2014-08-22 14:39:33 +02:00
props.c btrfs-progs: use system attr instead of attr library 2014-11-19 14:42:17 +01:00
props.h Btrfs-progs: introduce btrfs property subgroup 2014-01-31 08:22:31 -08:00
qgroup-verify.c Btrfs-progs: add_refs_for_implied: Use root_id instead of root_bytenr. 2014-11-27 18:37:05 +01:00
qgroup-verify.h btrfs-progs: show extent state for a subvolume 2014-08-22 15:04:16 +02:00
qgroup.c btrfs-progs: fix spacing in error messages 2014-11-25 19:50:12 +01:00
qgroup.h Btrfs-progs: enhance btrfs qgroup show to sort qgroups 2013-10-16 08:23:12 -04:00
quick-test.c Btrfs-progs: rework open_ctree to take flags, add a new one V2 2013-11-07 16:10:40 -05:00
radix-tree.c btrfs-progs: Remove a unused function root_gtp_mask(). 2014-12-19 15:04:56 +01:00
radix-tree.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
raid6.c btrfs-progs: give raid6.c its exported prototypes 2013-09-03 19:41:11 +02:00
random-test.c Btrfs-progs: fix magic return value in random-test.c 2013-10-16 08:20:42 -04:00
rbtree-utils.c Btrfs-progs: break out rbtree util functions 2014-10-14 10:39:39 +02:00
rbtree-utils.h btrfs-progs: libbtrfs, make exported headers compatible with C++ 2014-11-03 23:50:50 +01:00
rbtree.c Btrfs-progs: update rbtree libs 2014-10-14 10:39:40 +02:00
rbtree.h btrfs-progs: libbtrfs, make exported headers compatible with C++ 2014-11-03 23:50:50 +01:00
rbtree_augmented.h btrfs-progs: libbtrfs, make exported headers compatible with C++ 2014-11-03 23:50:50 +01:00
repair.c Btrfs-progs: introduce common insert/search/delete functions for rb-tree 2013-07-03 14:06:54 -04:00
repair.h Btrfsck: add the ability to prune corrupt extent allocation tree blocks 2012-02-21 14:37:21 -05:00
root-tree.c Btrfs-progs: free path if we don't find root item 2014-03-21 06:23:32 -07:00
send-stream.c btrfs-progs: fix compiler warning 2014-11-07 18:14:38 +01:00
send-stream.h btrfs-progs: library version defines 2014-09-02 17:04:15 +02:00
send-test.c Btrfs-progs: remove unsed pthread attribute objects 2014-04-22 14:33:35 +02:00
send-utils.c btrfs-progs: fix spacing in error messages 2014-11-25 19:50:12 +01:00
send-utils.h btrfs-progs: enclose uuid tree compat code with ifdefs 2014-03-21 06:23:07 -07:00
send.h btrfs-progs: make libbtrfs usable from C++ 2013-02-19 11:15:30 +01:00
show-blocks Fix showblocks to display different colors for different metadata roots 2009-03-09 13:00:44 -04:00
string-table.c btrfs-progs: Add helpers functions to handle the printing of data in tabular format 2014-12-04 16:48:09 +01:00
string-table.h btrfs-progs: Add helpers functions to handle the printing of data in tabular format 2014-12-04 16:48:09 +01:00
super-recover.c btrfs-progs: introduce a proper structure on which cli will call register-device ioctl 2014-10-16 12:02:00 +02:00
task-utils.c btrfs-progs: convert: use task for progress indication of metadata creation 2014-12-04 17:13:44 +01:00
task-utils.h btrfs-progs: add task-utils 2014-12-04 17:11:29 +01:00
transaction.h btrfs-progs: add malloc check in transaction.h/btrfs_start_transaction 2013-01-18 18:27:21 +01:00
ulist.c btrfs-progs: import ulist 2014-08-22 14:39:33 +02:00
ulist.h Btrfs-progs: pull back backref.c and fix it up 2014-10-14 10:39:38 +02:00
utils-lib.c btrfs-progs: move arg_strtou64 to a separate file for library 2014-05-02 17:04:28 +02:00
utils.c btrfs-progs: basic support for TREE_SEARCH_V2 ioctl 2014-12-10 15:01:20 +01:00
utils.h btrfs-progs: move contents of math.h to utils.h and delete 2014-12-19 15:31:00 +01:00
uuid-tree.c btrfs-progs: fix in-place byte swapping 2013-09-03 19:41:06 +02:00
version.sh Btrfs progs 3.17.3 2014-12-04 14:47:18 +01:00
volumes.c btrfs-progs: move contents of math.h to utils.h and delete 2014-12-19 15:31:00 +01:00
volumes.h btrfs-progs: fix device missing of btrfs fi show with seed devices 2014-10-10 10:52:41 +02:00