diff options
Diffstat (limited to 'block/export/fuse.c')
-rw-r--r-- | block/export/fuse.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/block/export/fuse.c b/block/export/fuse.c index ada9e263eb..fc7b07d2b5 100644 --- a/block/export/fuse.c +++ b/block/export/fuse.c @@ -635,7 +635,9 @@ static void fuse_fallocate(fuse_req_t req, fuse_ino_t inode, int mode, offset += size; length -= size; } while (ret == 0 && length > 0); - } else if (mode & FALLOC_FL_ZERO_RANGE) { + } +#ifdef CONFIG_FALLOCATE_ZERO_RANGE + else if (mode & FALLOC_FL_ZERO_RANGE) { if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + length > blk_len) { /* No need for zeroes, we are going to write them ourselves */ ret = fuse_do_truncate(exp, offset + length, false, @@ -654,7 +656,9 @@ static void fuse_fallocate(fuse_req_t req, fuse_ino_t inode, int mode, offset += size; length -= size; } while (ret == 0 && length > 0); - } else if (!mode) { + } +#endif /* CONFIG_FALLOCATE_ZERO_RANGE */ + else if (!mode) { /* We can only fallocate at the EOF with a truncate */ if (offset < blk_len) { fuse_reply_err(req, EOPNOTSUPP); |