summaryrefslogtreecommitdiffstats
path: root/source3/include/vfs_macros.h
diff options
context:
space:
mode:
authorDavid Disseldorp <ddiss@samba.org>2013-11-18 14:54:30 +0100
committerJeremy Allison <jra@samba.org>2013-11-22 08:56:45 -0800
commitd8d5d4c7428683da04fa4c8b344504e7044f9b1c (patch)
tree5ce00faa4dbb6113f2c6d18ae312dd6dc5bc39fd /source3/include/vfs_macros.h
parent2b435ad4b45ec39b0cf70f55699daba3bcfcee08 (diff)
downloadsamba-d8d5d4c7428683da04fa4c8b344504e7044f9b1c.tar.gz
samba-d8d5d4c7428683da04fa4c8b344504e7044f9b1c.tar.xz
samba-d8d5d4c7428683da04fa4c8b344504e7044f9b1c.zip
vfs: add [GET/SET]_COMPRESSION hooks
The VFS interfaces are sychronous, as the operations only modify meta-data. These hooks are dependent on support for transparent compression by the underlying filesystem - vfs_default returns INVALID_DEVICE_REQUEST. Support for other filesystems providing transparent comression, such as Btrfs and ZFS, can be added in future. The get_compression function takes fsp and smb_fname arguments. The smb_fname argument is needed due to the current dosmode() code-path. Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/include/vfs_macros.h')
-rw-r--r--source3/include/vfs_macros.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h
index 15e8492747..704054d3f9 100644
--- a/source3/include/vfs_macros.h
+++ b/source3/include/vfs_macros.h
@@ -409,8 +409,18 @@
#define SMB_VFS_NEXT_COPY_CHUNK_RECV(handle, req, copied) \
smb_vfs_call_copy_chunk_recv((handle)->next, (req), (copied))
+#define SMB_VFS_GET_COMPRESSION(conn, mem_ctx, fsp, smb_fname, _compression_fmt) \
+ smb_vfs_call_get_compression((conn)->vfs_handles, (mem_ctx), (fsp), (smb_fname), (_compression_fmt))
+#define SMB_VFS_NEXT_GET_COMPRESSION(handle, mem_ctx, fsp, smb_fname, _compression_fmt) \
+ smb_vfs_call_get_compression((handle)->next, (mem_ctx), (fsp), (smb_fname), (_compression_fmt))
+
+#define SMB_VFS_SET_COMPRESSION(conn, mem_ctx, fsp, compression_fmt) \
+ smb_vfs_call_set_compression((conn)->vfs_handles, (mem_ctx), (fsp), (compression_fmt))
+#define SMB_VFS_NEXT_SET_COMPRESSION(handle, mem_ctx, fsp, compression_fmt) \
+ smb_vfs_call_set_compression((handle)->next, (mem_ctx), (fsp), (compression_fmt))
+
#define SMB_VFS_FGET_NT_ACL(fsp, security_info, mem_ctx, ppdesc) \
- smb_vfs_call_fget_nt_acl((fsp)->conn->vfs_handles, (fsp), (security_info), (mem_ctx), (ppdesc))
+ smb_vfs_call_fget_nt_acl((fsp)->conn->vfs_handles, (fsp), (security_info), (mem_ctx), (ppdesc))
#define SMB_VFS_NEXT_FGET_NT_ACL(handle, fsp, security_info, mem_ctx, ppdesc) \
smb_vfs_call_fget_nt_acl((handle)->next, (fsp), (security_info), (mem_ctx), (ppdesc))