diff options
author | David Disseldorp <ddiss@samba.org> | 2015-02-19 16:46:56 +0100 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2015-03-09 21:27:07 +0100 |
commit | 43e581188ab107e730ef0a232cc406963781bc5d (patch) | |
tree | 5ec8e65e66b9d60eef552955e45929ff2c0ed5f8 /source3 | |
parent | 29531c55928aedc6f860555737cba99689a75d2c (diff) | |
download | samba-43e581188ab107e730ef0a232cc406963781bc5d.tar.gz samba-43e581188ab107e730ef0a232cc406963781bc5d.tar.xz samba-43e581188ab107e730ef0a232cc406963781bc5d.zip |
s3/statvfs: expose FILE_SUPPORTS_SPARSE_FILES capability
Samba now supports:
- FSCTL_SET_SPARSE
- FSCTL_SET_ZERO_DATA, via FALLOC_FL_PUNCH_HOLE
- FSCTL_QUERY_ALLOCATED_RANGES, via SEEK_DATA/SEEK_HOLE
As such, flag support for sparse files, via the
FILE_SUPPORTS_SPARSE_FILES capability flag if FALLOC_FL_PUNCH_HOLE and
SEEK_DATA/SEEK_HOLE are present at configure time.
Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3')
-rw-r--r-- | source3/smbd/statvfs.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source3/smbd/statvfs.c b/source3/smbd/statvfs.c index f9f2211030..d4bdf1629f 100644 --- a/source3/smbd/statvfs.c +++ b/source3/smbd/statvfs.c @@ -142,6 +142,15 @@ static int linux_statvfs(const char *path, vfs_statvfs_struct *statbuf) #endif if (statvfs_buf.f_flag & ST_RDONLY) statbuf->FsCapabilities |= FILE_READ_ONLY_VOLUME; + +#if defined(HAVE_FALLOC_FL_PUNCH_HOLE) && defined(HAVE_LSEEK_HOLE_DATA) + /* + * Only flag sparse file support if ZERO_DATA can be used to + * deallocate blocks, and SEEK_HOLE / SEEK_DATA can be used + * to provide QUERY_ALLOCATED_RANGES information. + */ + statbuf->FsCapabilities |= FILE_SUPPORTS_SPARSE_FILES; +#endif } return result; } |