From 5fc562c90d7925963467babbb73ae5b4f9fd13f8 Mon Sep 17 00:00:00 2001 From: Liu Bo Date: Thu, 18 Apr 2019 01:55:42 -0700 Subject: Add fallocate and use it instead of posix_fallocate if possible (#398) fuse.ko has supported FALLOC_FL_KEEP_SIZE and FALLOC_FL_PUNCH_HOLE at this moment and more modes may be supported in the future. fallocate(2) supports modes while posix_fallocate(2) does not, so this makes lo_fallocate use fallocate(2) instead. Signed-off-by: Liu Bo --- example/passthrough_ll.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'example/passthrough_ll.c') diff --git a/example/passthrough_ll.c b/example/passthrough_ll.c index 1598958..b6ecaff 100644 --- a/example/passthrough_ll.c +++ b/example/passthrough_ll.c @@ -936,12 +936,19 @@ static void lo_fallocate(fuse_req_t req, fuse_ino_t ino, int mode, int err; (void) ino; +#ifdef HAVE_FALLOCATE + err = fallocate(fi->fh, mode, offset, length); + if (err < 0) + err = errno; + +#elif HAVE_POSIX_FALLOCATE if (mode) { fuse_reply_err(req, EOPNOTSUPP); return; } err = posix_fallocate(fi->fh, offset, length); +#endif fuse_reply_err(req, err); } -- cgit v1.2.3