summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/md/bcache/fs-io.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/md/bcache/fs-io.c b/drivers/md/bcache/fs-io.c
index ea72b4f11b00..654567ccaae1 100644
--- a/drivers/md/bcache/fs-io.c
+++ b/drivers/md/bcache/fs-io.c
@@ -1357,6 +1357,7 @@ out:
static int __bch_truncate_page(struct address_space *mapping,
pgoff_t index, loff_t start, loff_t end)
{
+ struct inode *inode = mapping->host;
unsigned start_offset = start & (PAGE_SIZE - 1);
unsigned end_offset = ((end - 1) & (PAGE_SIZE - 1)) + 1;
struct page *page;
@@ -1758,6 +1759,12 @@ static long bch_fallocate(struct inode *inode, int mode,
goto err;
}
+ /* already reserved */
+ if (k.k->type == BCH_RESERVATION) {
+ bch_btree_iter_advance_pos(&iter);
+ continue;
+ }
+
if (bkey_extent_is_data(k.k)) {
if (!(mode & FALLOC_FL_ZERO_RANGE)) {
bch_btree_iter_advance_pos(&iter);