diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-04-22 13:26:46 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:04:02 -0400 |
commit | e1c4b7451e22f5b0a9fbccfa560ee7b80c35b8cd (patch) | |
tree | 4e9d3f9d0a8084ad6282965fa190200de3a91d7d /fs/btrfs/volumes.c | |
parent | 409c6118d39cb2d8666bee3d61a1a9ae5bbd4f5d (diff) |
Fix btrfs_get_extent and get_block corner cases, and disable O_DIRECT reads
The generic O_DIRECT code assumes all the bios have the same bdev,
which isn't true for multi-device btrfs.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/volumes.c')
-rw-r--r-- | fs/btrfs/volumes.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 5619e50583e3..bccb5566fd84 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c | |||
@@ -1161,7 +1161,6 @@ int btrfs_map_bio(struct btrfs_root *root, int rw, struct bio *bio, | |||
1161 | int total_devs = 1; | 1161 | int total_devs = 1; |
1162 | 1162 | ||
1163 | length = bio->bi_size; | 1163 | length = bio->bi_size; |
1164 | |||
1165 | map_tree = &root->fs_info->mapping_tree; | 1164 | map_tree = &root->fs_info->mapping_tree; |
1166 | map_length = length; | 1165 | map_length = length; |
1167 | 1166 | ||
@@ -1192,6 +1191,7 @@ int btrfs_map_bio(struct btrfs_root *root, int rw, struct bio *bio, | |||
1192 | } | 1191 | } |
1193 | bio->bi_sector = multi->stripes[dev_nr].physical >> 9; | 1192 | bio->bi_sector = multi->stripes[dev_nr].physical >> 9; |
1194 | dev = multi->stripes[dev_nr].dev; | 1193 | dev = multi->stripes[dev_nr].dev; |
1194 | |||
1195 | bio->bi_bdev = dev->bdev; | 1195 | bio->bi_bdev = dev->bdev; |
1196 | spin_lock(&dev->io_lock); | 1196 | spin_lock(&dev->io_lock); |
1197 | dev->total_ios++; | 1197 | dev->total_ios++; |