linux/fs/btrfs
Ilya Dryomov 1357272fc7 Btrfs: fix a use-after-free bug in btrfs_dev_replace_finishing
free_device rcu callback, scheduled from btrfs_rm_dev_replace_srcdev,
can be processed before btrfs_scratch_superblock is called, which would
result in a use-after-free on btrfs_device contents.  Fix this by
zeroing the superblock before the rcu callback is registered.

Cc: Stefan Behrens <sbehrens@giantdisaster.de>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
2013-10-04 16:02:14 -04:00
..
tests Btrfs: separate out tests into their own directory 2013-09-01 08:15:38 -04:00
acl.c
async-thread.c Btrfs: eliminate races in worker stopping code 2013-10-04 16:02:13 -04:00
async-thread.h Btrfs: eliminate races in worker stopping code 2013-10-04 16:02:13 -04:00
backref.c Btrfs: allocate prelim_ref with a slab allocater 2013-09-01 08:16:27 -04:00
backref.h Btrfs: allocate prelim_ref with a slab allocater 2013-09-01 08:16:27 -04:00
btrfs_inode.h Btrfs: check roots last log commit when checking if an inode has been logged 2013-09-21 11:05:24 -04:00
check-integrity.c Btrfs: Use %z to format size_t 2013-09-01 08:16:19 -04:00
check-integrity.h
compat.h
compression.c Btrfs: Remove superfluous casts from u64 to unsigned long long 2013-09-01 08:16:08 -04:00
compression.h
ctree.c Btrfs: fixup error handling in btrfs_reloc_cow 2013-09-21 10:58:54 -04:00
ctree.h Btrfs: remove space_info->reservation_progress 2013-09-21 11:05:27 -04:00
delayed-inode.c Btrfs: fix printing of non NULL terminated string 2013-09-01 08:16:20 -04:00
delayed-inode.h
delayed-ref.c Btrfs: get rid of sparse warnings 2013-09-01 08:15:50 -04:00
delayed-ref.h
dev-replace.c Btrfs: fix a use-after-free bug in btrfs_dev_replace_finishing 2013-10-04 16:02:14 -04:00
dev-replace.h
dir-item.c
disk-io.c Btrfs: add the missing mutex unlock in write_all_supers() 2013-09-21 11:05:28 -04:00
disk-io.h
export.c
export.h
extent_io.c Btrfs: fix crash of compressed writes 2013-10-04 16:02:11 -04:00
extent_io.h btrfs: mark some local function as 'static' 2013-09-01 08:15:51 -04:00
extent_map.c
extent_map.h
extent-tree.c Btrfs: remove space_info->reservation_progress 2013-09-21 11:05:27 -04:00
file-item.c Btrfs: Remove superfluous casts from u64 to unsigned long long 2013-09-01 08:16:08 -04:00
file.c Btrfs: don't leak transaction in btrfs_sync_file() 2013-09-21 11:05:29 -04:00
free-space-cache.c Btrfs: allocate the free space by the existed max extent size when ENOSPC 2013-09-21 11:05:23 -04:00
free-space-cache.h Btrfs: allocate the free space by the existed max extent size when ENOSPC 2013-09-21 11:05:23 -04:00
hash.h
inode-item.c
inode-map.c
inode-map.h
inode.c Btrfs: dir_inode_operations should use btrfs_update_time also 2013-09-21 11:05:30 -04:00
ioctl.c btrfs: change extent-same to copy entire argument struct 2013-09-21 11:05:31 -04:00
Kconfig Btrfs: add support for asserts 2013-09-01 08:16:32 -04:00
locking.c
locking.h
lzo.c Btrfs: return -1 when lzo compression makes data bigger 2013-09-01 07:57:19 -04:00
Makefile Btrfs: introduce a tree for items that map UUIDs to something 2013-09-01 08:15:52 -04:00
math.h
ordered-data.c Btrfs: kill delay_iput arg to the wait_ordered functions 2013-09-21 11:05:27 -04:00
ordered-data.h Btrfs: kill delay_iput arg to the wait_ordered functions 2013-09-21 11:05:27 -04:00
orphan.c
print-tree.c Btrfs: Remove superfluous casts from u64 to unsigned long long 2013-09-01 08:16:08 -04:00
print-tree.h
qgroup.c Btrfs: Remove superfluous casts from u64 to unsigned long long 2013-09-01 08:16:08 -04:00
raid56.c Btrfs, raid56: fix memory leak when allocating pages for p/q stripes failed 2013-09-01 08:04:27 -04:00
raid56.h
rcu-string.h
reada.c
relocation.c Btrfs: kill delay_iput arg to the wait_ordered functions 2013-09-21 11:05:27 -04:00
root-tree.c Btrfs: Remove superfluous casts from u64 to unsigned long long 2013-09-01 08:16:08 -04:00
scrub.c Btrfs: improve replacing nocow extents 2013-09-21 11:05:26 -04:00
send.c btrfs: reuse kbasename helper 2013-09-01 08:16:36 -04:00
send.h
struct-funcs.c
super.c Btrfs: create the uuid tree on remount rw 2013-09-21 11:50:43 -04:00
sysfs.c
transaction.c Btrfs: fix transid verify errors when recovering log tree 2013-10-04 16:02:09 -04:00
transaction.h btrfs: mark some local function as 'static' 2013-09-01 08:15:51 -04:00
tree-defrag.c
tree-log.c Btrfs: drop dir i_size when adding new names on replay 2013-09-21 11:05:25 -04:00
tree-log.h
ulist.c
ulist.h
uuid-tree.c Btrfs: check UUID tree during mount if required 2013-09-01 08:15:58 -04:00
volumes.c Btrfs: fix a use-after-free bug in btrfs_dev_replace_finishing 2013-10-04 16:02:14 -04:00
volumes.h Btrfs: add btrfs_alloc_device and switch to it 2013-09-01 08:16:04 -04:00
xattr.c
xattr.h
zlib.c