linux/fs/btrfs
Chris Mason ba1da2f442 Btrfs: Don't pin pages in ram until the entire ordered extent is on disk.
Checksum items are not inserted until the entire ordered extent is on disk,
but individual pages might be clean and available for reclaim long before
the whole extent is on disk.

In order to allow those pages to be freed, we need to be able to search
the list of ordered extents to find the checksum that is going to be inserted
in the tree.  This way if the page needs to be read back in before
the checksums are in the btree, we'll be able to verify the checksum on
the page.

This commit adds the ability to search the pending ordered extents for
a given offset in the file, and changes btrfs_releasepage to allow
ordered pages to be freed.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:04 -04:00
..
acl.c Btrfs: Include sched.h in the acl code for current (fixes compile on 2.6.23) 2008-09-25 11:03:59 -04:00
async-thread.c Btrfs: Worker thread optimizations 2008-09-25 11:04:03 -04:00
async-thread.h Btrfs: Worker thread optimizations 2008-09-25 11:04:03 -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: Update on disk i_size only after pending ordered extents are done 2008-09-25 11:04:04 -04:00
compat.h Btrfs: Add workaround for AppArmor changing remove_suid() 2008-09-25 11:04:02 -04:00
COPYING Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
crc32c.h Btrfs: Endianess bug fix for v0.13 with kernels 2008-09-25 11:04:01 -04:00
ctree.c Btrfs: Add locking around volume management (device add/remove/balance) 2008-09-25 11:04:04 -04:00
ctree.h btrfs_start_transaction: wait for commits in progress to finish 2008-09-25 11:04:04 -04:00
dir-item.c Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
disk-io.c btrfs_start_transaction: wait for commits in progress to finish 2008-09-25 11:04:04 -04:00
disk-io.h Btrfs: Online btree defragmentation fixes 2008-09-25 11:04:04 -04:00
extent-tree.c Btrfs: New data=ordered implementation 2008-09-25 11:04:04 -04:00
extent_io.c Btrfs: Use async helpers to deal with pages that have been improperly dirtied 2008-09-25 11:04:04 -04:00
extent_io.h Btrfs: Use async helpers to deal with pages that have been improperly dirtied 2008-09-25 11:04:04 -04:00
extent_map.c Btrfs: New data=ordered implementation 2008-09-25 11:04:04 -04:00
extent_map.h Btrfs: Split the extent_map code into two parts 2008-09-25 11:03:59 -04:00
file-item.c Btrfs: New data=ordered implementation 2008-09-25 11:04:04 -04:00
file.c Btrfs: Don't pin pages in ram until the entire ordered extent is on disk. 2008-09-25 11:04:04 -04:00
hash.c btrfs-progs: Stop stomping on 'name' input parameter 2008-09-25 11:04:01 -04:00
hash.h Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
inode-item.c Btrfs: Add back pointers from the inode to the directory that references it 2008-09-25 11:03:58 -04:00
inode-map.c Btrfs: Replace the big fs_mutex with a collection of other locks 2008-09-25 11:04:03 -04:00
inode.c Btrfs: Don't pin pages in ram until the entire ordered extent is on disk. 2008-09-25 11:04:04 -04:00
INSTALL Btrfs: Documentation update 2007-06-22 14:49:31 -04:00
ioctl.c Btrfs: Add locking around volume management (device add/remove/balance) 2008-09-25 11:04:04 -04:00
ioctl.h Btrfs: transaction ioctls 2008-09-25 11:04:03 -04:00
locking.c Btrfs: Reduce contention on the root node 2008-09-25 11:04:04 -04:00
locking.h Btrfs: Start btree concurrency work. 2008-09-25 11:04:03 -04:00
Makefile Btrfs: Start btree concurrency work. 2008-09-25 11:04:03 -04:00
ordered-data.c Btrfs: Don't pin pages in ram until the entire ordered extent is on disk. 2008-09-25 11:04:04 -04:00
ordered-data.h Btrfs: Don't pin pages in ram until the entire ordered extent is on disk. 2008-09-25 11:04:04 -04:00
print-tree.c Btrfs: Pass down the expected generation number when reading tree blocks 2008-09-25 11:04:03 -04:00
print-tree.h Btrfs: Create extent_buffer interface for large blocksizes 2008-09-25 11:03:56 -04:00
root-tree.c Btrfs: Fix deadlock while searching for dead roots on mount 2008-09-25 11:04:04 -04:00
struct-funcs.c Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
super.c Btrfs: Online btree defragmentation fixes 2008-09-25 11:04:04 -04:00
sysfs.c Btrfs: Disable sysfs files on older kernels 2008-09-25 11:04:00 -04:00
TODO Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
transaction.c btrfs_start_transaction: wait for commits in progress to finish 2008-09-25 11:04:04 -04:00
transaction.h btrfs_start_transaction: wait for commits in progress to finish 2008-09-25 11:04:04 -04:00
tree-defrag.c Btrfs: Online btree defragmentation fixes 2008-09-25 11:04:04 -04:00
volumes.c Btrfs: Add locking around volume management (device add/remove/balance) 2008-09-25 11:04:04 -04:00
volumes.h Btrfs: Add async worker threads for pre and post IO checksumming 2008-09-25 11:04:03 -04:00
xattr.c Btrfs: Replace the big fs_mutex with a collection of other locks 2008-09-25 11:04:03 -04:00
xattr.h xattr support for btrfs 2008-09-25 11:03:57 -04:00