From: Noel Power Date: Wed, 10 Feb 2021 16:21:36 +0000 (+0000) Subject: VFS: Remove SMB_VFS_LISTXATTR, no longer used X-Git-Tag: tevent-0.11.0~1703 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46226cb219c08928e2bda0e80e59099bf2370fc0;p=thirdparty%2Fsamba.git VFS: Remove SMB_VFS_LISTXATTR, no longer used --------------- / \ / REST \ / IN \ / PEACE \ / \ | | | SMB_VFS_LISTXATTR | | | | | | 10 February | | 2021 | | | | | *| * * * | * _________)/\\_//(\/(/\)/\//\/\////|_)_______ Signed-off-by: Noel Power Reviewed-by: Jeremy Allison --- diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c index 1f20753fc76..3fcbd321564 100644 --- a/examples/VFS/skel_opaque.c +++ b/examples/VFS/skel_opaque.c @@ -925,15 +925,6 @@ static ssize_t skel_fgetxattr(vfs_handle_struct *handle, return -1; } -static ssize_t skel_listxattr(vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - errno = ENOSYS; - return -1; -} - static ssize_t skel_flistxattr(vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) @@ -1139,7 +1130,6 @@ static struct vfs_fn_pointers skel_opaque_fns = { .getxattrat_send_fn = skel_getxattrat_send, .getxattrat_recv_fn = skel_getxattrat_recv, .fgetxattr_fn = skel_fgetxattr, - .listxattr_fn = skel_listxattr, .flistxattr_fn = skel_flistxattr, .removexattr_fn = skel_removexattr, .fremovexattr_fn = skel_fremovexattr, diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c index f7d99e6101b..87eec7544d1 100644 --- a/examples/VFS/skel_transparent.c +++ b/examples/VFS/skel_transparent.c @@ -1219,14 +1219,6 @@ static ssize_t skel_fgetxattr(vfs_handle_struct *handle, return SMB_VFS_NEXT_FGETXATTR(handle, fsp, name, value, size); } -static ssize_t skel_listxattr(vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - return SMB_VFS_NEXT_LISTXATTR(handle, smb_fname, list, size); -} - static ssize_t skel_flistxattr(vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) @@ -1444,7 +1436,6 @@ static struct vfs_fn_pointers skel_transparent_fns = { .getxattrat_send_fn = skel_getxattrat_send, .getxattrat_recv_fn = skel_getxattrat_recv, .fgetxattr_fn = skel_fgetxattr, - .listxattr_fn = skel_listxattr, .flistxattr_fn = skel_flistxattr, .removexattr_fn = skel_removexattr, .fremovexattr_fn = skel_fremovexattr, diff --git a/source3/include/vfs.h b/source3/include/vfs.h index eb005bdc86a..db2283b7cd0 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -342,9 +342,11 @@ * Version 44 - Replace SMB_VFS_GET_COMPRESSION() with SMB_VFS_FGET_COMPRESSION() * Version 44 - Add type argument to SMB_VFS_SYS_ACL_SET_FD() * Version 44 - Remove SMB_VFS_SYS_ACL_SET_FILE() + * Change to Version 45 - will ship with 4.15 + * Version 45 - Remove SMB_VFS_LISTXATTR */ -#define SMB_VFS_INTERFACE_VERSION 44 +#define SMB_VFS_INTERFACE_VERSION 45 /* All intercepted VFS operations must be declared as static functions inside module source @@ -1244,10 +1246,6 @@ struct vfs_fn_pointers { TALLOC_CTX *mem_ctx, uint8_t **xattr_value); ssize_t (*fgetxattr_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, const char *name, void *value, size_t size); - ssize_t (*listxattr_fn)(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size); ssize_t (*flistxattr_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size); int (*removexattr_fn)(struct vfs_handle_struct *handle, const struct smb_filename *smb_fname, @@ -1769,10 +1767,6 @@ ssize_t smb_vfs_call_getxattrat_recv(struct tevent_req *req, ssize_t smb_vfs_call_fgetxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, const char *name, void *value, size_t size); -ssize_t smb_vfs_call_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size); ssize_t smb_vfs_call_flistxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size); diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h index 9a6dd67288c..d006aaf60bd 100644 --- a/source3/include/vfs_macros.h +++ b/source3/include/vfs_macros.h @@ -546,11 +546,6 @@ #define SMB_VFS_NEXT_FGETXATTR(handle,fsp,name,value,size) \ smb_vfs_call_fgetxattr((handle)->next,(fsp),(name),(value),(size)) -#define SMB_VFS_LISTXATTR(conn,smb_fname,list,size) \ - smb_vfs_call_listxattr((conn)->vfs_handles,(smb_fname),(list),(size)) -#define SMB_VFS_NEXT_LISTXATTR(handle,smb_fname,list,size) \ - smb_vfs_call_listxattr((handle)->next,(smb_fname),(list),(size)) - #define SMB_VFS_FLISTXATTR(fsp,list,size) \ smb_vfs_call_flistxattr((fsp)->conn->vfs_handles, (fsp), (list),(size)) #define SMB_VFS_NEXT_FLISTXATTR(handle,fsp,list,size) \ diff --git a/source3/modules/vfs_cap.c b/source3/modules/vfs_cap.c index 95b6087d41c..5c2474e66e7 100644 --- a/source3/modules/vfs_cap.c +++ b/source3/modules/vfs_cap.c @@ -910,43 +910,6 @@ static ssize_t cap_fgetxattr(vfs_handle_struct *handle, struct files_struct *fsp return SMB_VFS_NEXT_FGETXATTR(handle, fsp, cappath, value, size); } -static ssize_t cap_listxattr(vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - struct smb_filename *cap_smb_fname = NULL; - char *cappath = capencode(talloc_tos(), smb_fname->base_name); - ssize_t ret; - int saved_errno = 0; - - if (!cappath) { - errno = ENOMEM; - return -1; - } - cap_smb_fname = synthetic_smb_fname(talloc_tos(), - cappath, - NULL, - NULL, - smb_fname->twrp, - smb_fname->flags); - if (cap_smb_fname == NULL) { - TALLOC_FREE(cappath); - errno = ENOMEM; - return -1; - } - ret = SMB_VFS_NEXT_LISTXATTR(handle, cap_smb_fname, list, size); - if (ret == -1) { - saved_errno = errno; - } - TALLOC_FREE(cappath); - TALLOC_FREE(cap_smb_fname); - if (saved_errno) { - errno = saved_errno; - } - return ret; -} - static int cap_removexattr(vfs_handle_struct *handle, const struct smb_filename *smb_fname, const char *name) @@ -1151,7 +1114,6 @@ static struct vfs_fn_pointers vfs_cap_fns = { .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, .fgetxattr_fn = cap_fgetxattr, - .listxattr_fn = cap_listxattr, .removexattr_fn = cap_removexattr, .fremovexattr_fn = cap_fremovexattr, .setxattr_fn = cap_setxattr, diff --git a/source3/modules/vfs_catia.c b/source3/modules/vfs_catia.c index 81c24a8cfd1..0a3fa5ca791 100644 --- a/source3/modules/vfs_catia.c +++ b/source3/modules/vfs_catia.c @@ -1241,51 +1241,6 @@ catia_getxattr(vfs_handle_struct *handle, return ret; } -static ssize_t -catia_listxattr(vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, size_t size) -{ - struct smb_filename *mapped_smb_fname = NULL; - char *mapped_name = NULL; - NTSTATUS status; - ssize_t ret; - int saved_errno = 0; - - status = catia_string_replace_allocate(handle->conn, - smb_fname->base_name, - &mapped_name, - vfs_translate_to_unix); - if (!NT_STATUS_IS_OK(status)) { - errno = map_errno_from_nt_status(status); - return -1; - } - - mapped_smb_fname = synthetic_smb_fname(talloc_tos(), - mapped_name, - NULL, - &smb_fname->st, - smb_fname->twrp, - smb_fname->flags); - if (mapped_smb_fname == NULL) { - TALLOC_FREE(mapped_name); - errno = ENOMEM; - return -1; - } - - ret = SMB_VFS_NEXT_LISTXATTR(handle, mapped_smb_fname, list, size); - if (ret == -1) { - saved_errno = errno; - } - TALLOC_FREE(mapped_name); - TALLOC_FREE(mapped_smb_fname); - if (saved_errno != 0) { - errno = saved_errno; - } - - return ret; -} - static int catia_removexattr(vfs_handle_struct *handle, const struct smb_filename *smb_fname, @@ -2426,7 +2381,6 @@ static struct vfs_fn_pointers vfs_catia_fns = { .getxattr_fn = catia_getxattr, .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, - .listxattr_fn = catia_listxattr, .removexattr_fn = catia_removexattr, .setxattr_fn = catia_setxattr, .fgetxattr_fn = catia_fgetxattr, diff --git a/source3/modules/vfs_ceph.c b/source3/modules/vfs_ceph.c index 47b5046cfcb..d37e749455a 100644 --- a/source3/modules/vfs_ceph.c +++ b/source3/modules/vfs_ceph.c @@ -1278,22 +1278,6 @@ static ssize_t cephwrap_fgetxattr(struct vfs_handle_struct *handle, struct files return (ssize_t)ret; } -static ssize_t cephwrap_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - int ret; - DBG_DEBUG("[CEPH] listxattr(%p, %s, %p, %llu)\n", handle, - smb_fname->base_name, list, llu(size)); - ret = ceph_listxattr(handle->data, smb_fname->base_name, list, size); - DBG_DEBUG("[CEPH] listxattr(...) = %d\n", ret); - if (ret < 0) { - WRAP_RETURN(ret); - } - return (ssize_t)ret; -} - static ssize_t cephwrap_flistxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) { int ret; @@ -1595,7 +1579,6 @@ static struct vfs_fn_pointers ceph_fns = { .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, .fgetxattr_fn = cephwrap_fgetxattr, - .listxattr_fn = cephwrap_listxattr, .flistxattr_fn = cephwrap_flistxattr, .removexattr_fn = cephwrap_removexattr, .fremovexattr_fn = cephwrap_fremovexattr, diff --git a/source3/modules/vfs_ceph_snapshots.c b/source3/modules/vfs_ceph_snapshots.c index 1c395e2a020..9d93b8ba9da 100644 --- a/source3/modules/vfs_ceph_snapshots.c +++ b/source3/modules/vfs_ceph_snapshots.c @@ -1298,47 +1298,6 @@ static ssize_t ceph_snap_gmt_getxattr(vfs_handle_struct *handle, return ret; } -static ssize_t ceph_snap_gmt_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *csmb_fname, - char *list, size_t size) -{ - time_t timestamp = 0; - char stripped[PATH_MAX + 1]; - char conv[PATH_MAX + 1]; - int ret; - struct smb_filename *new_fname; - int saved_errno; - - ret = ceph_snap_gmt_strip_snapshot(handle, - csmb_fname, - ×tamp, stripped, sizeof(stripped)); - if (ret < 0) { - errno = -ret; - return -1; - } - if (timestamp == 0) { - return SMB_VFS_NEXT_LISTXATTR(handle, csmb_fname, list, size); - } - ret = ceph_snap_gmt_convert(handle, stripped, - timestamp, conv, sizeof(conv)); - if (ret < 0) { - errno = -ret; - return -1; - } - new_fname = cp_smb_filename(talloc_tos(), csmb_fname); - if (new_fname == NULL) { - errno = ENOMEM; - return -1; - } - new_fname->base_name = conv; - - ret = SMB_VFS_NEXT_LISTXATTR(handle, new_fname, list, size); - saved_errno = errno; - TALLOC_FREE(new_fname); - errno = saved_errno; - return ret; -} - static int ceph_snap_gmt_removexattr(vfs_handle_struct *handle, const struct smb_filename *csmb_fname, const char *aname) @@ -1531,7 +1490,6 @@ static struct vfs_fn_pointers ceph_snap_fns = { .getxattr_fn = ceph_snap_gmt_getxattr, .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, - .listxattr_fn = ceph_snap_gmt_listxattr, .removexattr_fn = ceph_snap_gmt_removexattr, .setxattr_fn = ceph_snap_gmt_setxattr, .chflags_fn = ceph_snap_gmt_chflags, diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c index 84464bc3b04..7291813f609 100644 --- a/source3/modules/vfs_default.c +++ b/source3/modules/vfs_default.c @@ -3612,14 +3612,6 @@ static ssize_t vfswrap_fgetxattr(struct vfs_handle_struct *handle, return getxattr(fsp->fsp_name->base_name, name, value, size); } -static ssize_t vfswrap_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - return listxattr(smb_fname->base_name, list, size); -} - static ssize_t vfswrap_flistxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) { int fd = fsp_get_pathref_fd(fsp); @@ -3896,7 +3888,6 @@ static struct vfs_fn_pointers vfs_default_fns = { .getxattrat_send_fn = vfswrap_getxattrat_send, .getxattrat_recv_fn = vfswrap_getxattrat_recv, .fgetxattr_fn = vfswrap_fgetxattr, - .listxattr_fn = vfswrap_listxattr, .flistxattr_fn = vfswrap_flistxattr, .removexattr_fn = vfswrap_removexattr, .fremovexattr_fn = vfswrap_fremovexattr, diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c index cfb9ba4fcef..eb7f836a84e 100644 --- a/source3/modules/vfs_full_audit.c +++ b/source3/modules/vfs_full_audit.c @@ -209,7 +209,6 @@ typedef enum _vfs_op_type { SMB_VFS_OP_GETXATTRAT_SEND, SMB_VFS_OP_GETXATTRAT_RECV, SMB_VFS_OP_FGETXATTR, - SMB_VFS_OP_LISTXATTR, SMB_VFS_OP_FLISTXATTR, SMB_VFS_OP_REMOVEXATTR, SMB_VFS_OP_FREMOVEXATTR, @@ -341,7 +340,6 @@ static struct { { SMB_VFS_OP_GETXATTRAT_SEND, "getxattrat_send" }, { SMB_VFS_OP_GETXATTRAT_RECV, "getxattrat_recv" }, { SMB_VFS_OP_FGETXATTR, "fgetxattr" }, - { SMB_VFS_OP_LISTXATTR, "listxattr" }, { SMB_VFS_OP_FLISTXATTR, "flistxattr" }, { SMB_VFS_OP_REMOVEXATTR, "removexattr" }, { SMB_VFS_OP_FREMOVEXATTR, "fremovexattr" }, @@ -2819,24 +2817,6 @@ static ssize_t smb_full_audit_fgetxattr(struct vfs_handle_struct *handle, return result; } -static ssize_t smb_full_audit_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - ssize_t result; - - result = SMB_VFS_NEXT_LISTXATTR(handle, smb_fname, list, size); - - do_log(SMB_VFS_OP_LISTXATTR, - (result >= 0), - handle, - "%s", - smb_fname_str_do_log(handle->conn, smb_fname)); - - return result; -} - static ssize_t smb_full_audit_flistxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) @@ -3095,7 +3075,6 @@ static struct vfs_fn_pointers vfs_full_audit_fns = { .getxattrat_send_fn = smb_full_audit_getxattrat_send, .getxattrat_recv_fn = smb_full_audit_getxattrat_recv, .fgetxattr_fn = smb_full_audit_fgetxattr, - .listxattr_fn = smb_full_audit_listxattr, .flistxattr_fn = smb_full_audit_flistxattr, .removexattr_fn = smb_full_audit_removexattr, .fremovexattr_fn = smb_full_audit_fremovexattr, diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c index af0ce70e1e8..8cfc8f80fa9 100644 --- a/source3/modules/vfs_glusterfs.c +++ b/source3/modules/vfs_glusterfs.c @@ -2040,14 +2040,6 @@ static ssize_t vfs_gluster_fgetxattr(struct vfs_handle_struct *handle, return glfs_fgetxattr(glfd, name, value, size); } -static ssize_t vfs_gluster_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - return glfs_listxattr(handle->data, smb_fname->base_name, list, size); -} - static ssize_t vfs_gluster_flistxattr(struct vfs_handle_struct *handle, files_struct *fsp, char *list, size_t size) @@ -2357,7 +2349,6 @@ static struct vfs_fn_pointers glusterfs_fns = { .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, .fgetxattr_fn = vfs_gluster_fgetxattr, - .listxattr_fn = vfs_gluster_listxattr, .flistxattr_fn = vfs_gluster_flistxattr, .removexattr_fn = vfs_gluster_removexattr, .fremovexattr_fn = vfs_gluster_fremovexattr, diff --git a/source3/modules/vfs_media_harmony.c b/source3/modules/vfs_media_harmony.c index 1df23169472..4c1e9aa6576 100644 --- a/source3/modules/vfs_media_harmony.c +++ b/source3/modules/vfs_media_harmony.c @@ -2129,41 +2129,6 @@ out: return ret; } -/* - * Success: return positive number - * Failure: set errno, return -1 - */ -static ssize_t mh_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - ssize_t ret; - struct smb_filename *clientFname = NULL; - int status; - - DEBUG(MH_INFO_DEBUG, ("Entering mh_listxattr\n")); - if (!is_in_media_files(smb_fname->base_name)) { - ret = SMB_VFS_NEXT_LISTXATTR(handle, smb_fname, list, size); - goto out; - } - - status = alloc_get_client_smb_fname(handle, - talloc_tos(), - smb_fname, - &clientFname); - if (status != 0) { - ret = -1; - goto err; - } - - ret = SMB_VFS_NEXT_LISTXATTR(handle, clientFname, list, size); -err: - TALLOC_FREE(clientFname); -out: - return ret; -} - /* * Success: return 0 * Failure: set errno, return -1 @@ -2284,7 +2249,6 @@ static struct vfs_fn_pointers vfs_mh_fns = { .getxattr_fn = mh_getxattr, .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, - .listxattr_fn = mh_listxattr, .removexattr_fn = mh_removexattr, .setxattr_fn = mh_setxattr, diff --git a/source3/modules/vfs_not_implemented.c b/source3/modules/vfs_not_implemented.c index 9ab56b78609..316f92d6545 100644 --- a/source3/modules/vfs_not_implemented.c +++ b/source3/modules/vfs_not_implemented.c @@ -929,15 +929,6 @@ ssize_t vfs_not_implemented_fgetxattr(vfs_handle_struct *handle, return -1; } -ssize_t vfs_not_implemented_listxattr(vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - errno = ENOSYS; - return -1; -} - ssize_t vfs_not_implemented_flistxattr(vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) @@ -1143,7 +1134,6 @@ static struct vfs_fn_pointers vfs_not_implemented_fns = { .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, .fgetxattr_fn = vfs_not_implemented_fgetxattr, - .listxattr_fn = vfs_not_implemented_listxattr, .flistxattr_fn = vfs_not_implemented_flistxattr, .removexattr_fn = vfs_not_implemented_removexattr, .fremovexattr_fn = vfs_not_implemented_fremovexattr, diff --git a/source3/modules/vfs_posix_eadb.c b/source3/modules/vfs_posix_eadb.c index 57d0920f8c8..8779e274886 100644 --- a/source3/modules/vfs_posix_eadb.c +++ b/source3/modules/vfs_posix_eadb.c @@ -185,18 +185,6 @@ static ssize_t posix_eadb_listattr(struct tdb_wrap *db_ctx, return blob.length; } -static ssize_t posix_eadb_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - struct tdb_wrap *db; - - SMB_VFS_HANDLE_GET_DATA(handle, db, struct tdb_wrap, return -1); - - return posix_eadb_listattr(db, smb_fname->base_name, -1, list, size); -} - static ssize_t posix_eadb_flistxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) @@ -490,7 +478,6 @@ static struct vfs_fn_pointers vfs_posix_eadb_fns = { .fgetxattr_fn = posix_eadb_fgetxattr, .setxattr_fn = posix_eadb_setxattr, .fsetxattr_fn = posix_eadb_fsetxattr, - .listxattr_fn = posix_eadb_listxattr, .flistxattr_fn = posix_eadb_flistxattr, .removexattr_fn = posix_eadb_removexattr, .fremovexattr_fn = posix_eadb_fremovexattr, diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c index 76d09587007..f3d16b10e19 100644 --- a/source3/modules/vfs_shadow_copy2.c +++ b/source3/modules/vfs_shadow_copy2.c @@ -2313,54 +2313,6 @@ static ssize_t shadow_copy2_getxattr(vfs_handle_struct *handle, return ret; } -static ssize_t shadow_copy2_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, size_t size) -{ - time_t timestamp = 0; - char *stripped = NULL; - ssize_t ret; - int saved_errno = 0; - char *conv; - struct smb_filename *conv_smb_fname = NULL; - - if (!shadow_copy2_strip_snapshot(talloc_tos(), - handle, - smb_fname, - ×tamp, - &stripped)) { - return -1; - } - if (timestamp == 0) { - return SMB_VFS_NEXT_LISTXATTR(handle, smb_fname, list, size); - } - conv = shadow_copy2_convert(talloc_tos(), handle, stripped, timestamp); - TALLOC_FREE(stripped); - if (conv == NULL) { - return -1; - } - conv_smb_fname = synthetic_smb_fname(talloc_tos(), - conv, - NULL, - NULL, - 0, - smb_fname->flags); - if (conv_smb_fname == NULL) { - TALLOC_FREE(conv); - return -1; - } - ret = SMB_VFS_NEXT_LISTXATTR(handle, conv_smb_fname, list, size); - if (ret == -1) { - saved_errno = errno; - } - TALLOC_FREE(conv_smb_fname); - TALLOC_FREE(conv); - if (saved_errno != 0) { - errno = saved_errno; - } - return ret; -} - static int shadow_copy2_removexattr(vfs_handle_struct *handle, const struct smb_filename *smb_fname, const char *aname) @@ -3248,7 +3200,6 @@ static struct vfs_fn_pointers vfs_shadow_copy2_fns = { .getxattr_fn = shadow_copy2_getxattr, .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, - .listxattr_fn = shadow_copy2_listxattr, .removexattr_fn = shadow_copy2_removexattr, .setxattr_fn = shadow_copy2_setxattr, .chflags_fn = shadow_copy2_chflags, diff --git a/source3/modules/vfs_snapper.c b/source3/modules/vfs_snapper.c index d97e38f6216..20de30249cf 100644 --- a/source3/modules/vfs_snapper.c +++ b/source3/modules/vfs_snapper.c @@ -2511,55 +2511,6 @@ static ssize_t snapper_gmt_getxattr(vfs_handle_struct *handle, return ret; } -static ssize_t snapper_gmt_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, size_t size) -{ - time_t timestamp = 0; - char *stripped = NULL; - ssize_t ret; - int saved_errno = 0; - char *conv = NULL; - struct smb_filename *conv_smb_fname = NULL; - - if (!snapper_gmt_strip_snapshot(talloc_tos(), - handle, - smb_fname, - ×tamp, - &stripped)) { - return -1; - } - if (timestamp == 0) { - return SMB_VFS_NEXT_LISTXATTR(handle, smb_fname, list, size); - } - conv = snapper_gmt_convert(talloc_tos(), handle, stripped, timestamp); - TALLOC_FREE(stripped); - if (conv == NULL) { - return -1; - } - conv_smb_fname = synthetic_smb_fname(talloc_tos(), - conv, - NULL, - NULL, - 0, - smb_fname->flags); - TALLOC_FREE(conv); - if (conv_smb_fname == NULL) { - errno = ENOMEM; - return -1; - } - ret = SMB_VFS_NEXT_LISTXATTR(handle, conv_smb_fname, list, size); - if (ret == -1) { - saved_errno = errno; - } - TALLOC_FREE(conv_smb_fname); - TALLOC_FREE(conv); - if (saved_errno != 0) { - errno = saved_errno; - } - return ret; -} - static int snapper_gmt_removexattr(vfs_handle_struct *handle, const struct smb_filename *smb_fname, const char *aname) @@ -2802,7 +2753,6 @@ static struct vfs_fn_pointers snapper_fns = { .getxattr_fn = snapper_gmt_getxattr, .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, - .listxattr_fn = snapper_gmt_listxattr, .removexattr_fn = snapper_gmt_removexattr, .setxattr_fn = snapper_gmt_setxattr, .chflags_fn = snapper_gmt_chflags, diff --git a/source3/modules/vfs_time_audit.c b/source3/modules/vfs_time_audit.c index 4e2aa404fa9..4de617c262b 100644 --- a/source3/modules/vfs_time_audit.c +++ b/source3/modules/vfs_time_audit.c @@ -2633,28 +2633,6 @@ static ssize_t smb_time_audit_fgetxattr(struct vfs_handle_struct *handle, return result; } -static ssize_t smb_time_audit_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - ssize_t result; - struct timespec ts1,ts2; - double timediff; - - clock_gettime_mono(&ts1); - result = SMB_VFS_NEXT_LISTXATTR(handle, smb_fname, list, size); - clock_gettime_mono(&ts2); - timediff = nsec_time_diff(&ts2,&ts1)*1.0e-9; - - if (timediff > audit_timeout) { - smb_time_audit_log_fname("listxattr", timediff, - smb_fname->base_name); - } - - return result; -} - static ssize_t smb_time_audit_flistxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) @@ -2948,7 +2926,6 @@ static struct vfs_fn_pointers vfs_time_audit_fns = { .getxattrat_send_fn = smb_time_audit_getxattrat_send, .getxattrat_recv_fn = smb_time_audit_getxattrat_recv, .fgetxattr_fn = smb_time_audit_fgetxattr, - .listxattr_fn = smb_time_audit_listxattr, .flistxattr_fn = smb_time_audit_flistxattr, .removexattr_fn = smb_time_audit_removexattr, .fremovexattr_fn = smb_time_audit_fremovexattr, diff --git a/source3/modules/vfs_unityed_media.c b/source3/modules/vfs_unityed_media.c index 2acd80d7dda..ca0d84d8aeb 100644 --- a/source3/modules/vfs_unityed_media.c +++ b/source3/modules/vfs_unityed_media.c @@ -1731,37 +1731,6 @@ err: return ret; } -static ssize_t um_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - ssize_t ret; - struct smb_filename *client_fname = NULL; - int status; - - DEBUG(10, ("Entering um_listxattr\n")); - - if (!is_in_media_files(smb_fname->base_name)) { - return SMB_VFS_NEXT_LISTXATTR(handle, smb_fname, list, size); - } - - status = alloc_get_client_smb_fname(handle, - talloc_tos(), - smb_fname, - &client_fname); - if (status != 0) { - ret = -1; - goto err; - } - - ret = SMB_VFS_NEXT_LISTXATTR(handle, client_fname, list, size); - -err: - TALLOC_FREE(client_fname); - return ret; -} - static int um_removexattr(struct vfs_handle_struct *handle, const struct smb_filename *smb_fname, const char *name) @@ -1912,7 +1881,6 @@ static struct vfs_fn_pointers vfs_um_fns = { .getxattr_fn = um_getxattr, .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, - .listxattr_fn = um_listxattr, .removexattr_fn = um_removexattr, .setxattr_fn = um_setxattr, }; diff --git a/source3/modules/vfs_vxfs.c b/source3/modules/vfs_vxfs.c index 06efe9f8f4c..00877c5f7ea 100644 --- a/source3/modules/vfs_vxfs.c +++ b/source3/modules/vfs_vxfs.c @@ -767,30 +767,6 @@ static size_t vxfs_filter_list(char *list, size_t size) return size; } -static ssize_t vxfs_listxattr(vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - ssize_t result; - - result = vxfs_listxattr_path(smb_fname->base_name, list, size); - if (result >= 0 || ((errno != ENOTSUP) && (errno != ENOSYS))) { - return result; - } - - result = SMB_VFS_NEXT_LISTXATTR(handle, smb_fname, list, size); - - if (result <= 0) { - return result; - } - - /* Remove any XATTR_USER_NTACL elements from the returned list. */ - result = vxfs_filter_list(list, result); - - return result; -} - static ssize_t vxfs_flistxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) @@ -932,7 +908,6 @@ static struct vfs_fn_pointers vfs_vxfs_fns = { .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, .fgetxattr_fn = vxfs_fget_xattr, - .listxattr_fn = vxfs_listxattr, .flistxattr_fn = vxfs_flistxattr, .removexattr_fn = vxfs_remove_xattr, .fremovexattr_fn = vxfs_fremove_xattr, diff --git a/source3/modules/vfs_xattr_tdb.c b/source3/modules/vfs_xattr_tdb.c index 26e8a37bc71..81ee8be493a 100644 --- a/source3/modules/vfs_xattr_tdb.c +++ b/source3/modules/vfs_xattr_tdb.c @@ -342,34 +342,6 @@ static int xattr_tdb_fsetxattr(struct vfs_handle_struct *handle, } -static ssize_t xattr_tdb_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - struct file_id id; - struct db_context *db; - int ret; - TALLOC_CTX *frame = talloc_stackframe(); - - SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, - if (!xattr_tdb_init(-1, frame, &db)) - { - TALLOC_FREE(frame); return -1; - }); - - ret = xattr_tdb_get_file_id(handle, smb_fname->base_name, &id); - if (ret == -1) { - TALLOC_FREE(frame); - return -1; - } - - ret = xattr_tdb_listattr(db, &id, list, size); - TALLOC_FREE(frame); - return ret; - -} - static ssize_t xattr_tdb_flistxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size) @@ -740,7 +712,6 @@ static struct vfs_fn_pointers vfs_xattr_tdb_fns = { .fgetxattr_fn = xattr_tdb_fgetxattr, .setxattr_fn = xattr_tdb_setxattr, .fsetxattr_fn = xattr_tdb_fsetxattr, - .listxattr_fn = xattr_tdb_listxattr, .flistxattr_fn = xattr_tdb_flistxattr, .removexattr_fn = xattr_tdb_removexattr, .fremovexattr_fn = xattr_tdb_fremovexattr, diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c index 1f52a7213a1..d15e6b3ec29 100644 --- a/source3/smbd/vfs.c +++ b/source3/smbd/vfs.c @@ -2917,15 +2917,6 @@ ssize_t smb_vfs_call_fgetxattr(struct vfs_handle_struct *handle, return handle->fns->fgetxattr_fn(handle, fsp, name, value, size); } -ssize_t smb_vfs_call_listxattr(struct vfs_handle_struct *handle, - const struct smb_filename *smb_fname, - char *list, - size_t size) -{ - VFS_FIND(listxattr); - return handle->fns->listxattr_fn(handle, smb_fname, list, size); -} - ssize_t smb_vfs_call_flistxattr(struct vfs_handle_struct *handle, struct files_struct *fsp, char *list, size_t size)