aboutsummaryrefslogtreecommitdiff
path: root/fs/btrfs/inode.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-04-09 16:28:12 -0400
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:04:01 -0400
commit22c599485b1fdd95e4476a4752596a6cf6c6629a (patch)
treef34285bfb545cf7abed9be6ad12a61e80dbb4bb5 /fs/btrfs/inode.c
parentce9adaa5a792c2099a83246265eb4055bc38b6b8 (diff)
Btrfs: Handle data block end_io through the async work queue
Before it was done by the bio end_io routine, the work queue code is able to scale much better with faster IO subsystems. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r--fs/btrfs/inode.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 7ae677d8a6d..e1ef1acdb35 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -328,7 +328,9 @@ int btrfs_submit_bio_hook(struct inode *inode, int rw, struct bio *bio)
struct btrfs_trans_handle *trans;
int ret = 0;
- if (rw != WRITE) {
+ if (!(rw & (1 << BIO_RW))) {
+ ret = btrfs_bio_wq_end_io(root->fs_info, bio, 0);
+ BUG_ON(ret);
goto mapit;
}