Go to file
Eric Sandeen 7a355379ea btrfs-progs: rework get_fs_info to remove side effects
get_fs_info() has been silently switching from a device to a mounted
path as needed; the caller's filehandle was unexpectedly closed &
reopened outside the caller's scope.  Not so great.

The callers do want "fdmnt" to be the filehandle for the mount point
in all cases, though - the various ioctls act on this (not on an fd
for the device).  But switching it in the local scope of get_fs_info
is incorrect; it just so happens that *usually* the fd number is
unchanged.

So - use the new helpers to detect when an argument is a block
device, and open the the mounted path more obviously / explicitly
for ioctl use, storing the filehandle in fdmnt.

Then, in get_fs_info, ignore the fd completely, and use the path on
the argument to determine if the caller wanted to act on just that
device, or on all devices for the filesystem.

Affects those commands which are documented to accept either
a block device or a path:

* btrfs device stats
* btrfs replace start
* btrfs scrub start
* btrfs scrub status

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
2013-03-12 17:07:40 +01:00
man btrfs-progs: require mkfs -f force option to overwrite filesystem or partition table 2013-02-19 11:15:31 +01:00
.gitignore btrfs-progs: update the .gitignore file 2013-03-10 16:06:38 +01:00
.hgignore Add .hgignore file to ignore verison.h 2008-07-23 11:36:13 -04:00
.hgtags Added tag v0.16 for changeset 2b26e4f8c71e 2008-08-04 15:46:36 -04:00
COPYING fix COPYING 2007-06-12 15:41:08 -04:00
INSTALL btrfs-progs-unstable: replace debug-tree to btrfs-debug-tree in INSTALL 2011-10-25 09:18:59 -04:00
Makefile btrfs-progs: Add a rule to build a static mkfs.btrfs 2013-03-12 16:23:14 +01:00
bcp Btrfs-progs: Correct path munging in bcp 2011-10-25 09:18:58 -04:00
btrfs-corrupt-block.c Add basic RAID[56] support 2013-02-01 14:22:07 -05:00
btrfs-defrag.c new util: 'btrfs' 2010-03-11 13:45:47 -05:00
btrfs-image.c btrfs-progs: free allocated metadump structure on restore failure 2013-03-10 15:49:15 +01:00
btrfs-list.c btrfs-progs: Tidy up resolve_root 2013-02-27 14:40:02 +01:00
btrfs-list.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
btrfs-map-logical.c Add basic RAID[56] support 2013-02-01 14:22:07 -05:00
btrfs-select-super.c btrfs-progs: Handle errors returned from open_ctree 2013-01-21 18:27:54 +01:00
btrfs-show-super.c btrfs-progs: don't call close on error fd 2013-02-27 14:39:45 +01:00
btrfs-show.c Deprecate btrfsctl, btrfs-show, btrfs-vol 2011-10-25 09:18:31 -04:00
btrfs-vol.c btrfs-progs: better option/error handling for btrfs-vol 2013-03-10 16:06:37 +01:00
btrfs-zero-log.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
btrfs.c Btrfs-progs: add restore command to btrfs 2013-02-12 23:46:15 +01:00
btrfsctl.c btrfs-progs: simplify ioctl name copy and null termination 2013-02-05 16:09:41 -08:00
btrfstune.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
calc-size.c btrfs-progs: add a recovery utility to pull files from damanged filesystems 2011-10-27 12:49:54 -04:00
cmds-balance.c btrfs-progs: initialize save_ptr prior to strtok_r 2013-02-27 14:40:09 +01:00
cmds-check.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
cmds-device.c btrfs-progs: rework get_fs_info to remove side effects 2013-03-12 17:07:40 +01:00
cmds-filesystem.c btrfs-progs: move btrfslabel.[c|h] stuff to utils.[c|h] 2013-02-26 19:27:22 +01:00
cmds-inspect.c btrfs-progs: Fix pointer math in __ino_to_path_fd 2013-02-19 11:15:30 +01:00
cmds-qgroup.c Btrfs-progs: output the error reason when qgroup_show fails 2013-02-27 16:13:20 +01:00
cmds-quota.c Btrfs-progs: move open_file_or_dir() to utils.c 2013-01-30 00:40:35 +01:00
cmds-receive.c btrfs-progs: fix overflows of ioctl name args 2013-02-05 16:09:41 -08:00
cmds-replace.c btrfs-progs: rework get_fs_info to remove side effects 2013-03-12 17:07:40 +01:00
cmds-restore.c btrfs-progs: usage should match what is coded 2013-03-03 17:34:36 +01:00
cmds-scrub.c btrfs-progs: rework get_fs_info to remove side effects 2013-03-12 17:07:40 +01:00
cmds-send.c btrfs-progs: initialize pipefd[] for error path 2013-02-05 16:09:41 -08:00
cmds-subvolume.c btrfs-progs: Free resources when returning error from cmd_subvol_create() 2013-03-10 16:03:48 +01:00
commands.h Btrfs-progs: add restore command to btrfs 2013-02-12 23:46:15 +01:00
convert.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
crc32c.c Btrfs-progs: fix several complie warning 2012-10-04 16:26:31 -04:00
crc32c.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
ctree.c btrfs-progs: impossible BUG_ON meant to test empty 2013-02-05 16:09:39 -08:00
ctree.h btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
debug-tree.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
dir-item.c Fix unused-but-set errors in gcc-4.6 2011-10-25 09:18:32 -04:00
dir-test.c btrfs-progs: Handle errors returned from open_ctree 2013-01-21 18:27:54 +01:00
disk-io.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
disk-io.h Merge branch 'cov-fixes-v1-integration-20130201' of http://git.zabbo.net/cgit/btrfs-progs into merged 2013-02-06 12:51:58 -05:00
extent-cache.c Fix unused-but-set errors in gcc-4.6 2011-10-25 09:18:32 -04:00
extent-cache.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
extent-tree.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
extent_io.c btrfs-progs: make libbtrfs usable from C++ 2013-02-19 11:15:30 +01:00
extent_io.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
file-item.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
find-root.c Btrfs-progs: alloc our super copy in btrfs-find-root 2013-03-12 16:26:42 +01: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: allow multi-line command group synopsis 2012-02-08 18:55:51 +02:00
inode-item.c btrfs-progs new dir index support 2008-07-24 12:13:32 -04:00
inode-map.c btrfs-progs: Fix printf format casting errors 2008-04-01 10:52:22 -04:00
ioctl-test.c Test the additional ioctl. 2011-10-25 09:18:58 -04:00
ioctl.h Btrfs-progs: Change the label of a mounted file system 2013-02-26 19:23:32 +01:00
kerncompat.h Merge branch 'cov-fixes-v1-integration-20130201' of http://git.zabbo.net/cgit/btrfs-progs into merged 2013-02-06 12:51:58 -05:00
list.h btrfs-progs: make libbtrfs usable from C++ 2013-02-19 11:15:30 +01:00
mkfs.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
print-tree.c btrfs-progs: break after printing FREE_INO 2013-02-05 16:09:39 -08:00
print-tree.h Btrfs: add btrfs-debug-tree -b <block number> to print a single block 2010-04-06 09:30:17 -04:00
qgroup.c Btrfs-progs: clean up reduplicate parse_qgroupid() and replace atoi with strtoull 2013-01-21 18:28:01 +01:00
qgroup.h Btrfs-progs: clean up reduplicate parse_qgroupid() and replace atoi with strtoull 2013-01-21 18:28:01 +01:00
quick-test.c btrfs-progs: Handle errors returned from open_ctree 2013-01-21 18:27:54 +01:00
radix-tree.c Make btrfs-progs compile with -fstrict-aliasing (included in -O2) again. 2007-09-14 10:31:06 -04:00
radix-tree.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
raid6.c btrfs-progs: include kerncompat.h in raid6.c, define __attribute_const__ 2013-02-03 12:39:16 -05:00
random-test.c btrfs-progs: Handle errors returned from open_ctree 2013-01-21 18:27:54 +01:00
rbtree.c Stop using radix trees to record pending allocations 2007-10-15 16:25:04 -04:00
rbtree.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01:00
repair.c Btrfsck: add the ability to prune corrupt extent allocation tree blocks 2012-02-21 14:37:21 -05: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: code cleanup for root-tree.c/btrfs_del_root 2013-02-07 01:19:50 +01:00
send-stream.c btrfs-progs: Add support for BTRFS_SEND_FLAG_NO_FILE_DATA 2013-02-12 23:46:15 +01:00
send-stream.h btrfs-progs: make libbtrfs usable from C++ 2013-02-19 11:15:30 +01:00
send-utils.c Btrfs-progs: bugfix for subvolume parent determination in btrfs send 2013-01-21 18:52:48 +01:00
send-utils.h btrfs-progs: libify some parts of btrfs-progs 2013-02-27 15:24:25 +01: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
transaction.h btrfs-progs: add malloc check in transaction.h/btrfs_start_transaction 2013-01-18 18:27:21 +01:00
utils.c btrfs-progs: rework get_fs_info to remove side effects 2013-03-12 17:07:40 +01:00
utils.h btrfs-progs: rework get_fs_info to remove side effects 2013-03-12 17:07:40 +01:00
version.sh version.sh: fix version when built from tarball 2013-01-17 18:13:03 +01:00
volumes.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
volumes.h Merge branch 'for-chris' of git://repo.or.cz/btrfs-progs-unstable/devel into raid56 2013-02-06 12:42:24 -05:00