Userspace utilities to manage btrfs filesystems
Go to file
Filipe David Borba Manana 4fbfcaa8be Btrfs-progs: fix closing of devices
If a device could not be opened in volumes.c:read_one_dev(), a
btrfs_device instance was allocated and added to the list of
devices of the fs - however this device instance had its fd,
name and label fields not initialized. This is problematic in
disk-io.c:close_all_devices() as it tried to sync, fadvise and
close the (invalid) fd of the device, and kfree() its name and
label, which pointed to random memory locations.

  Thread 1 (Thread 0x7f0a3d2d1740 (LWP 23585)):
  #0  __GI___libc_free (mem=0xa5a5a5a5a5a5a5a5) at malloc.c:2970
  #1  0x000000000042054b in close_all_devices (fs_info=0x1e92bf0) at disk-io.c:1276
  #2  0x0000000000421dcd in close_ctree (root=<optimized out>) at disk-io.c:1336
  #3  0x0000000000418cfa in cmd_check (argc=<optimized out>, argv=<optimized out>) at cmds-check.c:4171
  #4  0x0000000000403ed4 in main (argc=2, argv=0x7fff9a583d28) at btrfs.c:295

v2: Added Liu Bo's review mention.

Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
2013-07-05 10:01:04 -04:00
man Btrfs-image: add the ability to santize file names when making an image 2013-06-19 13:35:15 -04:00
.gitignore Btrfs-progs: tool to visualize fragmentation 2013-03-19 18:24:51 +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
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: standardize tool source filenames 2013-04-24 14:05:33 +02:00
btrfs-convert.c btrfs-progs: standardize tool source filenames 2013-04-24 14:05:33 +02:00
btrfs-corrupt-block.c Add basic RAID[56] support 2013-02-01 14:22:07 -05:00
btrfs-crc.c Btrfs-progs: btrfs-crc: support specifying checksum in hex 2013-04-23 19:10:12 +02:00
btrfs-debug-tree.c btrfs-progs: standardize tool source filenames 2013-04-24 14:05:33 +02:00
btrfs-defrag.c new util: 'btrfs' 2010-03-11 13:45:47 -05:00
btrfs-find-root.c Btrfs-progs: cleanup similar code in open_ctree_* and close_ctree 2013-07-03 14:06:54 -04:00
btrfs-fragments.c btrfs-progs: standardize tool source filenames 2013-04-24 14:05:33 +02:00
btrfs-image.c Btrfs-progs: enhance btrfs-image to restore image onto multiple disks 2013-07-03 14:16:10 -04:00
btrfs-list.c Btrfs-progs: introduce common insert/search/delete functions for rb-tree 2013-07-03 14:06:54 -04: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: btrfs-select-super output is confusing when it fails 2013-04-23 18:56:20 +02:00
btrfs-show-super.c btrfs-progs: don't call close on error fd 2013-02-27 14:39:45 +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 chunk recover function - using old chunk items 2013-07-03 14:06:55 -04:00
btrfsck.h Btrfs-progs: Add chunk rebuild function for RAID1/SINGLE/DUP 2013-07-03 14:06:55 -04:00
btrfstune.c Btrfs-progs: add a free space cache checker to fsck V2 2013-04-23 18:56:21 +02:00
cmds-balance.c btrfs-progs: no pending balance is not an error 2013-04-23 18:56:20 +02:00
cmds-check.c Btrfs-progs: Add chunk rebuild function for RAID1/SINGLE/DUP 2013-07-03 14:06:55 -04:00
cmds-chunk.c Btrfs-progs: recover raid0/raid10/raid5/raid6 metadata chunk 2013-07-03 14:06:55 -04: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: record errno for ioctl DEFRAG_RANGE 2013-04-23 18:56:27 +02:00
cmds-inspect.c Btrfs-progs: add function to map subvol ID to path 2013-04-23 19:16:25 +02:00
cmds-qgroup.c btrfs-progs: add quota-related info to usage messages 2013-04-23 18:56:21 +02:00
cmds-quota.c Btrfs-progs: quota rescan 2013-04-23 18:56:27 +02:00
cmds-receive.c btrfs-progs: Fix the receive code pathing 2013-04-23 18:56:25 +02: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: pass properly formated key to read_fs_root 2013-06-19 13:52:22 -04:00
cmds-scrub.c btrfs-progs: fix btrfs scrub start help 2013-04-23 18:56:19 +02:00
cmds-send.c Btrfs-progs: btrfs-send: free used memory and close fds 2013-04-23 19:12:03 +02:00
cmds-subvolume.c Btrfs-progs: fix compile warnings in i386 machine 2013-05-10 10:55:22 -04:00
commands.h Btrfs-progs: Add chunk recover function - using old chunk items 2013-07-03 14:06:55 -04:00
COPYING
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: add --init-extent-tree to btrfsck 2013-06-19 13:52:34 -04:00
ctree.h Merge branch 'liubo-image-restore' 2013-07-03 14:24:43 -04: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 Merge branch 'liubo-image-restore' 2013-07-03 14:24:43 -04:00
disk-io.h Merge branch 'liubo-image-restore' 2013-07-03 14:24:43 -04:00
extent_io.c Merge branch 'liubo-image-restore' 2013-07-03 14:24:43 -04:00
extent_io.h Merge branch 'liubo-image-restore' 2013-07-03 14:24:43 -04:00
extent-cache.c Btrfs-progs: extend the extent cache for the device extent 2013-07-03 14:06:54 -04:00
extent-cache.h Btrfs-progs: extend the extent cache for the device extent 2013-07-03 14:06:54 -04:00
extent-tree.c Btrfs-progs: Add chunk recover function - using old chunk items 2013-07-03 14:06:55 -04:00
file-item.c btrfs-progs: separate super_copy out of fs_info 2013-03-10 16:12:21 +01:00
free-space-cache.c Btrfs-progs: add a newline to a free space cache message 2013-06-19 13:52:28 -04:00
free-space-cache.h Btrfs-progs: add a free space cache checker to fsck V2 2013-04-23 18:56:21 +02:00
hash.h Switch btrfs_name_hash() to crc32c 2008-08-20 20:11:23 -04:00
hasher.c
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
INSTALL Removing btrfsctl, btrfs-vol, btrfs-show 2013-03-19 18:21:41 +01:00
ioctl-test.c Test the additional ioctl. 2011-10-25 09:18:58 -04:00
ioctl.h Btrfs-progs: fixup: add flags to struct btrfs_ioctl_quota_rescan_args 2013-05-10 10:55:22 -04: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: introduce list_{first, next}_entry/list_splice_tail{_init} 2013-07-03 14:06:55 -04:00
Makefile Btrfs-progs: Add chunk recover function - using old chunk items 2013-07-03 14:06:55 -04:00
mkfs.c Btrfs-progs: fix missing recow roots when making btrfs filesystem 2013-07-03 14:06:54 -04:00
print-tree.c Btrfs-progs: in btrfs-debug-tree, print -1 in key for (u64)-1 2013-04-23 19:12:33 +02: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
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 Btrfs-progs: introduce common insert/search/delete functions for rb-tree 2013-07-03 14:06:54 -04:00
rbtree.h Btrfs-progs: introduce common insert/search/delete functions for rb-tree 2013-07-03 14:06:54 -04: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: update generation_v2 in btrfs_update_root 2013-04-23 18:56:28 +02:00
send-stream.c Btrfs-progs: remove some unused code 2013-04-23 18:56:25 +02:00
send-stream.h Btrfs-progs: btrfs-receive optionally honors the end-cmd 2013-04-23 18:56:24 +02:00
send-test.c btrfs-progs: fix send-test build 2013-04-23 18:56:27 +02:00
send-utils.c Btrfs-progs: add function to map subvol ID to path 2013-04-23 19:16:25 +02:00
send-utils.h Btrfs-progs: add function to map subvol ID to path 2013-04-23 19:16:25 +02: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: mkfs seg fault for wrong free 2013-05-02 22:30:02 -04:00
utils.h btrfs-progs: mkfs should first check all disks before writing to a disk 2013-04-23 18:56:20 +02:00
version.sh version.sh: fix version when built from tarball 2013-01-17 18:13:03 +01:00
volumes.c Btrfs-progs: fix closing of devices 2013-07-05 10:01:04 -04:00
volumes.h Merge branch 'liubo-image-restore' 2013-07-03 14:24:43 -04:00