From: Christof Schmitt Date: Tue, 4 Feb 2025 20:35:29 +0000 (-0700) Subject: vfs_gpfs: Simplify vfs_gpfs_fset_dos_attributes X-Git-Tag: tdb-1.4.13~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3543e0b77fd70d435edb77d58399dd2cc702c31;p=thirdparty%2Fsamba.git vfs_gpfs: Simplify vfs_gpfs_fset_dos_attributes The gpfs_set_winattrs API call accepts O_PATH descriptors since GPFS 5.1.2, so switch to fsp_get_pathref_fd and remove the fallback logic. Signed-off-by: Christof Schmitt Reviewed-by: Ralph Boehme --- diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c index 5b11a811e1e..32694963534 100644 --- a/source3/modules/vfs_gpfs.c +++ b/source3/modules/vfs_gpfs.c @@ -1512,41 +1512,9 @@ static NTSTATUS vfs_gpfs_fset_dos_attributes(struct vfs_handle_struct *handle, attrs.winAttrs = vfs_gpfs_dosmode_to_winattrs(dosmode); - if (!fsp->fsp_flags.is_pathref) { - ret = gpfswrap_set_winattrs(fsp_get_io_fd(fsp), - GPFS_WINATTR_SET_ATTRS, &attrs); - if (ret == -1) { - DBG_WARNING("Setting winattrs failed for %s: %s\n", - fsp_str_dbg(fsp), strerror(errno)); - return map_nt_error_from_unix(errno); - } - return NT_STATUS_OK; - } - - if (fsp->fsp_flags.have_proc_fds) { - int fd = fsp_get_pathref_fd(fsp); - struct sys_proc_fd_path_buf buf; - - ret = gpfswrap_set_winattrs_path(sys_proc_fd_path(fd, &buf), - GPFS_WINATTR_SET_ATTRS, - &attrs); - if (ret == -1) { - DBG_WARNING("Setting winattrs failed for " - "[%s][%s]: %s\n", - buf.buf, - fsp_str_dbg(fsp), - strerror(errno)); - return map_nt_error_from_unix(errno); - } - return NT_STATUS_OK; - } - - /* - * This is no longer a handle based call. - */ - ret = gpfswrap_set_winattrs_path(fsp->fsp_name->base_name, - GPFS_WINATTR_SET_ATTRS, - &attrs); + ret = gpfswrap_set_winattrs(fsp_get_pathref_fd(fsp), + GPFS_WINATTR_SET_ATTRS, + &attrs); if (ret == -1) { DBG_WARNING("Setting winattrs failed for [%s]: %s\n", fsp_str_dbg(fsp), strerror(errno));