diff options
-rw-r--r-- | drivers/md/bcache/fs-io.c | 7 |
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); |