summaryrefslogtreecommitdiff
path: root/fs/btrfs
diff options
context:
space:
mode:
authorChris Mason <clm@fb.com>2016-12-09 04:55:03 +0300
committerChris Mason <clm@fb.com>2016-12-12 02:27:15 +0300
commit7c4c71ac8a72aea595f4cc7e09c2bcc61929c4ac (patch)
treead675b9a57b2cb4cd2a691f7340a56eeaf952d1c /fs/btrfs
parente5d6b12fe14e89ea1c494585c47b1dfb31d71183 (diff)
downloadlinux-7c4c71ac8a72aea595f4cc7e09c2bcc61929c4ac.tar.xz
Revert "Btrfs: adjust len of writes if following a preallocated extent"
This is exposing an existing deadlock between fsync and AIO. Until we have the deadlock fixed, I'm pulling this one out. This reverts commit a23eaa875f0f1d89eb866b8c9860e78273ff5daf. Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/inode.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index dbcec1ced85a..a713d9d324b0 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -7765,12 +7765,10 @@ static int btrfs_get_blocks_direct(struct inode *inode, sector_t iblock,
}
/*
- * this will cow the extent, if em is within [start, len], then
- * probably we've found a preallocated/existing extent, let's
- * give it a chance to use preallocated space.
+ * this will cow the extent, reset the len in case we changed
+ * it above
*/
- len = min_t(u64, bh_result->b_size, em->len - (start - em->start));
- len = ALIGN(len, fs_info->sectorsize);
+ len = bh_result->b_size;
free_extent_map(em);
em = btrfs_new_extent_direct(inode, start, len);
if (IS_ERR(em)) {