Ceph-fuse: Fallocate and punch hole support

This patch implements fallocate and punch hole support for Ceph fuse client.

Signed-off-by: Yunchuan Wen <yunchuanwen@ubuntukylin.com>
Signed-off-by: Li Wang <liwang@ubuntukylin.com>
Reviewed-by: Sage Weil <sage@inktank.com>
client: guard fallocate with #ifdefs

Only include linux header if it's linux.  Only implement the fallocate
method if FALLOC_FL_PUNCH_HOLE is defined.

Signed-off-by: Sage Weil <sage@inktank.com>
client: do not mark_caps_dirty for generic fallocate

A normal fallocate in which the size is not changed is still a no-op.

Signed-off-by: Sage Weil <sage@inktank.com>
ceph-fuse: fallocate appears in fuse 2.9.1, not 2.9

There is no macro to differentiate 2.9 from 2.9.1, so we have to wait
to use this until 3.0.  :(

Signed-off-by: Sage Weil <sage@inktank.com>
Merge branch 'wip-fallocate'

Reviewed-by: Sage Weil <sage@inktank.com>