linux/fs/btrfs
Josef Bacik 551ebb2d34 Btrfs: remove useless waiting and extra filemap work
In btrfs_wait_ordered_range we have been calling filemap_fdata_write() twice
because compression does strange things and then waiting.  Then we look up
ordered extents and if we find any we will always schedule_timeout(); once
and then loop back around and do it all again.  We will even check to see if
there is delalloc pages on this range and loop again.  So this patch gets
rid of the multipe fdata_write() calls and just does
filemap_write_and_wait().  In the case of compression we will still find the
ordered extents and start those individually if we need to so that is ok,
but in the normal buffered case we avoid all this weird overhead.

Then in the case of the schedule_timeout(1), we don't need it.  All callers
either 1) don't care, they just want to make sure what they just wrote maeks
it to disk or 2) are doing the lock()->lookup ordered->unlock->flush thing
in which case it will lock and check for ordered extents _anyway_ so get
back to them as quickly as possible.  The delaloc check is simply not
needed, this only catches the case where we write to the file again since
doing the filemap_write_and_wait() and if the caller truly cares about that
it will take care of everything itself.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
2012-05-30 10:23:28 -04:00
..
acl.c Btrfs: cache no acl on new inodes 2012-05-30 10:23:27 -04:00
async-thread.c btrfs: return void in functions without error conditions 2012-03-22 01:45:34 +01:00
async-thread.h btrfs: return void in functions without error conditions 2012-03-22 01:45:34 +01:00
backref.c Btrfs: add missing read locks in backref.c 2012-04-18 19:22:23 +02:00
backref.h Btrfs: fix regression in scrub path resolving 2012-03-27 14:51:21 +02:00
btrfs_inode.h Btrfs: use i_version instead of our own sequence 2012-05-30 10:23:27 -04:00
check-integrity.c Btrfs: change integrity checker to support big blocks 2012-05-11 10:56:40 -04:00
check-integrity.h Btrfs: add optional integrity check code 2011-12-21 19:14:09 +01:00
compat.h
compression.c Merge branch 'for-linus-min' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2012-04-13 19:41:27 -07:00
compression.h btrfs: return void in functions without error conditions 2012-03-22 01:45:34 +01:00
ctree.c btrfs/ctree.c: remove the unnecessary 'return -1;' at the end of bin_search 2012-05-11 10:56:37 -04:00
ctree.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2012-04-28 09:30:07 -07:00
delayed-inode.c Btrfs: use i_version instead of our own sequence 2012-05-30 10:23:27 -04:00
delayed-inode.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
delayed-ref.c btrfs: return void in functions without error conditions 2012-03-22 01:45:34 +01:00
delayed-ref.h Btrfs: add waitqueue instead of doing busy waiting for more delayed refs 2012-01-04 16:12:48 +01:00
dir-item.c btrfs: replace many BUG_ONs with proper error handling 2012-03-22 11:52:54 +01:00
disk-io.c Btrfs: avoid sleeping in verify_parent_transid while atomic 2012-05-06 07:23:47 -04:00
disk-io.h Btrfs: avoid sleeping in verify_parent_transid while atomic 2012-05-06 07:23:47 -04:00
export.c btrfs: replace many BUG_ONs with proper error handling 2012-03-22 11:52:54 +01:00
export.h
extent-tree.c Btrfs: cleanup: use consistent lock naming 2012-05-11 10:56:41 -04:00
extent_io.c Btrfs: fix compile warnings in extent_io.c 2012-05-30 10:23:28 -04:00
extent_io.h Btrfs: always store the mirror we read the eb from 2012-04-18 19:22:30 +02:00
extent_map.c Btrfs: clean up code for merging extent maps 2011-08-01 14:30:50 -04:00
extent_map.h btrfs: fix structs where bitfields and spinlock/atomic share 8B word 2012-02-15 16:40:25 +01:00
file-item.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2012-03-30 12:44:29 -07:00
file.c Btrfs: use i_version instead of our own sequence 2012-05-30 10:23:27 -04:00
free-space-cache.c Merge branch 'for-linus-min' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2012-04-13 19:41:27 -07:00
free-space-cache.h btrfs: remove all unused functions 2011-05-06 12:34:03 +02:00
hash.h
inode-item.c Merge branch 'error-handling' into for-linus 2012-03-28 20:31:37 -04:00
inode-map.c Btrfs: show useful info in space reservation tracepoint 2012-03-29 09:57:44 -04:00
inode-map.h Btrfs: Support reading/writing on disk free ino cache 2011-04-25 16:46:11 +08:00
inode.c Btrfs: use i_version instead of our own sequence 2012-05-30 10:23:27 -04:00
ioctl.c Btrfs: use i_version instead of our own sequence 2012-05-30 10:23:27 -04:00
ioctl.h btrfs: Fix mismatching struct members in ioctl.h 2012-05-04 15:16:06 -04:00
Kconfig Btrfs: add config option to enable btrfs integrity check 2011-12-21 19:14:16 +01:00
locking.c btrfs: return void in functions without error conditions 2012-03-22 01:45:34 +01:00
locking.h btrfs: return void in functions without error conditions 2012-03-22 01:45:34 +01:00
lzo.c btrfs: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:21 +08:00
Makefile Merge branch 'integrity-check-patch-v2' of git://btrfs.giantdisaster.de/git/btrfs into integration 2012-01-16 15:27:58 -05:00
ordered-data.c Btrfs: remove useless waiting and extra filemap work 2012-05-30 10:23:28 -04:00
ordered-data.h btrfs: return void in functions without error conditions 2012-03-22 01:45:34 +01:00
orphan.c btrfs: replace many BUG_ONs with proper error handling 2012-03-22 11:52:54 +01:00
print-tree.c btrfs: fix oops on failure path 2011-10-20 18:10:50 +02:00
print-tree.h
reada.c btrfs: don't add both copies of DUP to reada extent tree 2012-04-18 19:12:44 +02:00
relocation.c Btrfs: Fix space checking during fs resize 2012-04-27 13:55:14 -04:00
root-tree.c btrfs: replace many BUG_ONs with proper error handling 2012-03-22 11:52:54 +01:00
scrub.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2012-05-06 10:20:07 -07:00
struct-funcs.c Btrfs: add the ability to cache a pointer into the eb 2012-03-26 17:04:23 -04:00
super.c Btrfs: use i_version instead of our own sequence 2012-05-30 10:23:27 -04:00
sysfs.c btrfs: Remove unused sysfs code 2011-06-17 14:54:18 -04:00
transaction.c btrfs: add missing unlocks to transaction abort paths 2012-04-18 19:22:14 +02:00
transaction.h btrfs: enhance transaction abort infrastructure 2012-03-22 01:45:40 +01:00
tree-defrag.c btrfs: drop unused parameter from btrfs_release_path 2011-05-02 13:57:22 +02:00
tree-log.c Btrfs: avoid sleeping in verify_parent_transid while atomic 2012-05-06 07:23:47 -04:00
tree-log.h btrfs: return void in functions without error conditions 2012-03-22 01:45:34 +01:00
ulist.c Btrfs: generic data structure to build unique lists 2011-12-22 16:22:24 +01:00
ulist.h Btrfs: generic data structure to build unique lists 2011-12-22 16:22:24 +01:00
version.h
volumes.c Btrfs: fix repair code for RAID10 2012-04-27 13:55:13 -04:00
volumes.h btrfs: return void in functions without error conditions 2012-03-22 01:45:34 +01:00
xattr.c Btrfs: use i_version instead of our own sequence 2012-05-30 10:23:27 -04:00
xattr.h fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05:00
zlib.c btrfs: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:21 +08:00