kernel_optimize_test/fs/btrfs
Chris Mason 8c8bee1d7c Btrfs: Wait for IO on the block device inodes of newly added devices
btrfs-vol -a /dev/xxx will zero the first and last two MB of the device.
The kernel code needs to wait for this IO to finish before it adds
the device.

btrfs metadata IO does not happen through the block device inode.  A
separate address space is used, allowing the zero filled buffer heads in
the block device inode to be written to disk after FS metadata starts
going down to the disk via the btrfs metadata inode.

The end result is zero filled metadata blocks after adding new devices
into the filesystem.

The fix is a simple filemap_write_and_wait on the block device inode
before actually inserting it into the pool of available devices.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-29 11:19:10 -04:00
..
acl.c Btrfs: optimize btrget/set/removexattr 2008-09-25 11:04:07 -04:00
async-thread.c Remove Btrfs compat code for older kernels 2008-09-25 15:41:59 -04:00
async-thread.h Btrfs: Give all the worker threads descriptive names 2008-09-25 11:04:06 -04:00
bit-radix.c Btrfs: trivial include fixups 2007-07-11 10:00:37 -04:00
bit-radix.h Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
btrfs_inode.h Btrfs: Dir fsync optimizations 2008-09-25 11:04:07 -04:00
compat.h Remove Btrfs compat code for older kernels 2008-09-25 15:41:59 -04:00
COPYING Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
crc32c.h Remove Btrfs compat code for older kernels 2008-09-25 15:41:59 -04:00
ctree.c Btrfs: update space balancing code 2008-09-26 10:09:34 -04:00
ctree.h Btrfs: Wait for IO on the block device inodes of newly added devices 2008-09-29 11:19:10 -04:00
dir-item.c Btrfs: Add a write ahead tree log to optimize synchronous operations 2008-09-25 11:04:07 -04:00
disk-io.c Btrfs: Wait for IO on the block device inodes of newly added devices 2008-09-29 11:19:10 -04:00
disk-io.h Btrfs: Tree logging fixes 2008-09-25 11:04:07 -04:00
export.c Remove Btrfs compat code for older kernels 2008-09-25 15:41:59 -04:00
export.h NFS support for btrfs - v3 2008-09-25 11:04:06 -04:00
extent_io.c Btrfs: extent_map and data=ordered fixes for space balancing 2008-09-26 10:05:38 -04:00
extent_io.h Btrfs: extent_map and data=ordered fixes for space balancing 2008-09-26 10:05:38 -04:00
extent_map.c Btrfs: Fix add_extent_mapping to check for duplicates across the whole range 2008-09-25 11:04:06 -04:00
extent_map.h Btrfs: Fix some data=ordered related data corruptions 2008-09-25 11:04:05 -04:00
extent-tree.c Btrfs: update space balancing code 2008-09-26 10:09:34 -04:00
file-item.c Btrfs: Fix variable init during csum creation 2008-09-25 11:04:07 -04:00
file.c Btrfs: extent_map and data=ordered fixes for space balancing 2008-09-26 10:05:38 -04:00
free-space-cache.c Btrfs: Fix allocation completions in tree log replay 2008-09-25 15:41:59 -04:00
hash.h Switch btrfs_name_hash() to crc32c 2008-09-25 11:04:06 -04:00
inode-item.c Btrfs: Implement new dir index format 2008-09-25 11:04:05 -04:00
inode-map.c Btrfs: extent_map and data=ordered fixes for space balancing 2008-09-26 10:05:38 -04:00
inode.c Btrfs: Wait for IO on the block device inodes of newly added devices 2008-09-29 11:19:10 -04:00
INSTALL Btrfs: Documentation update 2007-06-22 14:49:31 -04:00
ioctl.c Btrfs: extent_map and data=ordered fixes for space balancing 2008-09-26 10:05:38 -04:00
ioctl.h Btrfs: transaction ioctls 2008-09-25 11:04:03 -04:00
locking.c btrfs_search_slot: reduce lock contention by cowing in two stages 2008-09-25 11:04:06 -04:00
locking.h btrfs_search_slot: reduce lock contention by cowing in two stages 2008-09-25 11:04:06 -04:00
Makefile Update Btrfs files for in-kernel usage 2008-09-25 15:41:59 -04:00
ordered-data.c Btrfs: extent_map and data=ordered fixes for space balancing 2008-09-26 10:05:38 -04:00
ordered-data.h Btrfs: Fix nodatacow for the new data=ordered mode 2008-09-25 11:04:06 -04:00
orphan.c Btrfs: Create orphan inode records to prevent lost files after a crash 2008-09-25 11:04:05 -04:00
print-tree.c Btrfs: Full back reference support 2008-09-25 11:04:07 -04:00
print-tree.h Btrfs: Create extent_buffer interface for large blocksizes 2008-09-25 11:03:56 -04:00
ref-cache.c Btrfs: Add shared reference cache 2008-09-26 10:04:53 -04:00
ref-cache.h Btrfs: Add shared reference cache 2008-09-26 10:04:53 -04:00
root-tree.c Btrfs: update space balancing code 2008-09-26 10:09:34 -04:00
struct-funcs.c Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
super.c Remove Btrfs compat code for older kernels 2008-09-25 15:41:59 -04:00
sysfs.c Remove Btrfs compat code for older kernels 2008-09-25 15:41:59 -04:00
TODO Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
transaction.c Btrfs: update space balancing code 2008-09-26 10:09:34 -04:00
transaction.h Btrfs: Record dirty pages tree-log pages in an extent_io tree 2008-09-25 11:04:07 -04:00
tree-defrag.c Btrfs: Add a write ahead tree log to optimize synchronous operations 2008-09-25 11:04:07 -04:00
tree-log.c Btrfs: Full back reference support 2008-09-25 11:04:07 -04:00
tree-log.h Btrfs: Add a write ahead tree log to optimize synchronous operations 2008-09-25 11:04:07 -04:00
version.h Update Btrfs files for in-kernel usage 2008-09-25 15:41:59 -04:00
version.sh Btrfs: Update version.sh to v0.16 2008-09-25 11:04:06 -04:00
volumes.c Btrfs: Wait for IO on the block device inodes of newly added devices 2008-09-29 11:19:10 -04:00
volumes.h Btrfs: Fix the multi-bio code to save the original bio for completion 2008-09-25 11:04:06 -04:00
xattr.c Btrfs: optimize btrget/set/removexattr 2008-09-25 11:04:07 -04:00
xattr.h Btrfs: optimize btrget/set/removexattr 2008-09-25 11:04:07 -04:00