linux/fs/btrfs
Chris Mason c3e69d58e8 Btrfs: process the delayed reference queue in clusters
The delayed reference queue maintains pending operations that need to
be done to the extent allocation tree.  These are processed by
finding records in the tree that are not currently being processed one at
a time.

This is slow because it uses lots of time searching through the rbtree
and because it creates lock contention on the extent allocation tree
when lots of different procs are running delayed refs at the same time.

This commit changes things to grab a cluster of refs for processing,
using a cursor into the rbtree as the starting point of the next search.
This way we walk smoothly through the rbtree.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2009-03-24 16:14:26 -04:00
..
Kconfig Btrfs: make btrfs acls selectable 2009-02-04 09:28:28 -05:00
Makefile Btrfs: do extent allocation and reference count updates in the background 2009-03-24 16:14:25 -04:00
acl.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
async-thread.c Btrfs: async threads should try harder to find work 2009-02-04 09:23:24 -05:00
async-thread.h Btrfs: Add ordered async work queues 2008-11-06 22:03:00 -05:00
btrfs_inode.h Btrfs: add better -ENOSPC handling 2009-02-20 11:00:09 -05:00
compat.h Btrfs: drop remaining LINUX_KERNEL_VERSION checks and compat code 2009-01-06 09:38:55 -05:00
compression.c Btrfs: removed unused #include <version.h>'s 2009-01-21 10:49:16 -05:00
compression.h Btrfs: Add zlib compression support 2008-10-29 14:49:59 -04:00
crc32c.h Btrfs: Drop the hardware crc32c asm code 2009-01-07 19:56:59 -05:00
ctree.c Btrfs: reduce stack usage in some crucial tree balancing functions 2009-03-24 16:14:25 -04:00
ctree.h Btrfs: process the delayed reference queue in clusters 2009-03-24 16:14:26 -04:00
delayed-ref.c Btrfs: process the delayed reference queue in clusters 2009-03-24 16:14:26 -04:00
delayed-ref.h Btrfs: process the delayed reference queue in clusters 2009-03-24 16:14:26 -04:00
dir-item.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
disk-io.c Btrfs: process the delayed reference queue in clusters 2009-03-24 16:14:26 -04:00
disk-io.h Btrfs: make a lockdep class for the extent buffer locks 2009-02-12 14:09:45 -05:00
export.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
export.h NFS support for btrfs - v3 2008-09-25 11:04:06 -04:00
extent-tree.c Btrfs: process the delayed reference queue in clusters 2009-03-24 16:14:26 -04:00
extent_io.c Btrfs: remove unused code in split_state() 2009-02-12 14:25:23 -05:00
extent_io.h Btrfs: Change btree locking to use explicit blocking points 2009-02-04 09:25:08 -05:00
extent_map.c Btrfs: removed unused #include <version.h>'s 2009-01-21 10:49:16 -05:00
extent_map.h Btrfs: Fix csum error for compressed data 2008-11-10 07:34:43 -05:00
file-item.c Btrfs: tree logging checksum fixes 2009-01-06 11:42:00 -05:00
file.c Btrfs: do extent allocation and reference count updates in the background 2009-03-24 16:14:25 -04:00
free-space-cache.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
hash.h Switch btrfs_name_hash() to crc32c 2008-09-25 11:04:06 -04:00
inode-item.c Btrfs: make things static and include the right headers 2008-12-02 09:54:17 -05:00
inode-map.c Btrfs: remove btrfs_init_path 2009-02-12 14:11:25 -05:00
inode.c Btrfs: add better -ENOSPC handling 2009-02-20 11:00:09 -05:00
ioctl.c Btrfs: add better -ENOSPC handling 2009-02-20 11:00:09 -05:00
ioctl.h Btrfs: fix ioctl arg size (userland incompatible change!) 2009-01-16 11:59:08 -05:00
locking.c Btrfs: fix spinlock assertions on UP systems 2009-03-09 11:45:38 -04:00
locking.h Btrfs: fix spinlock assertions on UP systems 2009-03-09 11:45:38 -04:00
ordered-data.c Btrfs: simplify iteration codes 2009-01-21 10:59:08 -05:00
ordered-data.h Btrfs: move data checksumming into a dedicated tree 2008-12-08 16:58:54 -05: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: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
print-tree.h Btrfs: Create extent_buffer interface for large blocksizes 2008-09-25 11:03:56 -04:00
ref-cache.c Btrfs: Make btrfs_drop_snapshot work in larger and more efficient chunks 2009-02-04 09:27:02 -05:00
ref-cache.h Btrfs: Make btrfs_drop_snapshot work in larger and more efficient chunks 2009-02-04 09:27:02 -05:00
root-tree.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
struct-funcs.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
super.c Btrfs: don't clean old snapshots on sync(1) 2009-02-12 09:45:08 -05:00
sysfs.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
transaction.c Btrfs: process the delayed reference queue in clusters 2009-03-24 16:14:26 -04:00
transaction.h Btrfs: do extent allocation and reference count updates in the background 2009-03-24 16:14:25 -04:00
tree-defrag.c Btrfs: do extent allocation and reference count updates in the background 2009-03-24 16:14:25 -04:00
tree-log.c Btrfs: hold trans_mutex when using btrfs_record_root_in_trans 2009-02-12 14:14:53 -05: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: Fixes for 2.6.28-rc API changes 2008-11-19 21:17:22 -05:00
volumes.c Btrfs: Clear space_info full when adding new devices 2009-03-10 13:17:18 -04:00
volumes.h Btrfs: shared seed device 2008-12-12 10:03:26 -05:00
xattr.c Btrfs: selinux support 2009-02-04 09:29:13 -05:00
xattr.h Btrfs: selinux support 2009-02-04 09:29:13 -05:00
zlib.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00