Revert "Btrfs: adjust len of writes if following a preallocated extent"
authorChris Mason <clm@fb.com>
Fri, 9 Dec 2016 01:55:03 +0000 (17:55 -0800)
committerChris Mason <clm@fb.com>
Sun, 11 Dec 2016 23:27:15 +0000 (15:27 -0800)
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>
fs/btrfs/inode.c

index dbcec1ced85ab404d7974db7016252bc6b48d28d..a713d9d324b09f81cf99c20030b19921972d082f 100644 (file)
@@ -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)) {