#else
char link_target_buf[7];
#endif
+ struct ceph_statx stx;
+ int ret;
SMB_ASSERT(dirfsp == dirfsp->conn->cwd_fsp);
+ if (is_named_stream(smb_fname)) {
+ status = NT_STATUS_OBJECT_NAME_NOT_FOUND;
+ goto err;
+ }
+
if (ppreflist == NULL && preferral_count == NULL) {
/*
* We're only checking if this is a DFS
}
}
+ ret = ceph_statx(handle->data,
+ smb_fname->base_name,
+ &stx,
+ SAMBA_STATX_ATTR_MASK,
+ AT_SYMLINK_NOFOLLOW);
+ if (ret < 0) {
+ status = map_nt_error_from_unix(-ret);
+ goto err;
+ }
+
referral_len = ceph_readlink(handle->data,
smb_fname->base_name,
link_target,
if (ppreflist == NULL && preferral_count == NULL) {
/* Early return for checking if this is a DFS link. */
+ init_stat_ex_from_ceph_statx(&smb_fname->st, &stx);
return NT_STATUS_OK;
}
preferral_count);
if (ok) {
+ init_stat_ex_from_ceph_statx(&smb_fname->st, &stx);
status = NT_STATUS_OK;
} else {
status = NT_STATUS_NO_MEMORY;