Hi, all

I find the in cephfs kernel module fs/ceph/file.c, the function ceph_fallocate return -EOPNOTSUPP,when mode != (FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE)。

Recently,we try to use cephfs but need supporting fallocate syscall to generate the file writing not failed after reserved space. But we find the cephfs kernel module does not support this right now. Can anyone explain why we don't implement this now?

We also find out ceph-fuse can support the falllocate syscall but endwith a pool writing performance vs cephfs kernel mount. There is a large performance gap under fio.cfg below:

[global]
name=fio-seq-write
filename=/opt/fio-seq-write
rw=write
bs=128k
direct=0
numjobs=
time_based=1
runtime=900

[file1]
size=32G
ioengine=libaio
iodepth=16

So is that also some optimazation options for ceph-fuse can be tuned. I not quite familiar with cephfs code now, anyone can help thanks.

Regards
Ning Yao