[PATCH v3 08/13] vfs_btrfs: advertise per-file compression capability
David Disseldorp
ddiss at samba.org
Tue Nov 5 04:57:58 MST 2013
Plumb into the get_fs_capabilities code path to advertise the
FILE_FILE_COMPRESSION attribute.
Also, document file compression support in the VFS btrfs man page.
Signed-off-by: David Disseldorp <ddiss at samba.org>
---
docs-xml/manpages/vfs_btrfs.8.xml | 3 +++
source3/modules/vfs_btrfs.c | 15 +++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/docs-xml/manpages/vfs_btrfs.8.xml b/docs-xml/manpages/vfs_btrfs.8.xml
index 01f788c..2c614a6 100644
--- a/docs-xml/manpages/vfs_btrfs.8.xml
+++ b/docs-xml/manpages/vfs_btrfs.8.xml
@@ -43,6 +43,9 @@
module maps the request to a Btrfs clone range IOCTL, instead
of performing reads and writes required by a traditional copy.
Doing so saves storage capacity and greatly reduces disk IO.
+
+ This module also exposes Btrfs per-file compression support to
+ SMB clients via the get/set compression fsctls.
</para>
<para>
diff --git a/source3/modules/vfs_btrfs.c b/source3/modules/vfs_btrfs.c
index d65b46a..a49f1fb 100644
--- a/source3/modules/vfs_btrfs.c
+++ b/source3/modules/vfs_btrfs.c
@@ -30,6 +30,20 @@
#include "librpc/gen_ndr/ioctl.h"
#include "lib/util/tevent_ntstatus.h"
+static uint32_t btrfs_fs_capabilities(struct vfs_handle_struct *handle,
+ enum timestamp_set_resolution *_ts_res)
+{
+ uint32_t fs_capabilities;
+ enum timestamp_set_resolution ts_res;
+
+ /* inherit default capabilities, expose compression support */
+ fs_capabilities = SMB_VFS_NEXT_FS_CAPABILITIES(handle, &ts_res);
+ fs_capabilities |= FILE_FILE_COMPRESSION;
+ *_ts_res = ts_res;
+
+ return fs_capabilities;
+}
+
struct btrfs_ioctl_clone_range_args {
int64_t src_fd;
uint64_t src_offset;
@@ -301,6 +315,7 @@ err_out:
static struct vfs_fn_pointers btrfs_fns = {
+ .fs_capabilities_fn = btrfs_fs_capabilities,
.copy_chunk_send_fn = btrfs_copy_chunk_send,
.copy_chunk_recv_fn = btrfs_copy_chunk_recv,
.get_compression_fn = btrfs_get_compression,
--
1.8.1.4
More information about the samba-technical
mailing list