mode_t mode;
uint64_t mid;
bool in_progress;
- struct smb_filename *dname;
- struct smb_filename *fname;
+ struct smb_filename *fsp_name;
+ struct smb_filename *smb_fname;
connection_struct *conn;
struct smbXsrv_connection *xconn;
const struct security_unix_token *ux_tok;
* to the NULL context, so just free it so we
* don't leak memory.
*/
- DBG_NOTICE("aio open request for %s/%s abandoned in flight\n",
- opd->dname->base_name,
- opd->fname->base_name);
+ DBG_NOTICE("aio open request for %s abandoned in flight\n",
+ opd->fsp_name->base_name);
if (opd->ret_fd != -1) {
close(opd->ret_fd);
opd->ret_fd = -1;
}
DEBUG(10,("aio_open_handle_completion: mid %llu "
- "for file %s/%s completed\n",
+ "for file %s completed\n",
(unsigned long long)opd->mid,
- opd->dname->base_name,
- opd->fname->base_name));
+ opd->fsp_name->base_name));
opd->in_progress = false;
static void aio_open_do(struct aio_open_private_data *opd)
{
opd->ret_fd = openat(opd->dir_fd,
- opd->fname->base_name,
+ opd->smb_fname->base_name,
opd->flags,
opd->mode);
{
struct aio_open_private_data *opd = talloc_zero(ctx,
struct aio_open_private_data);
- bool ok;
if (!opd) {
return NULL;
}
/*
- * Copy the parent directory name and the
- * relative path within it.
+ * Copy the full fsp_name and smb_fname which is the basename.
*/
- ok = parent_smb_fname(opd,
- fsp->fsp_name,
- &opd->dname,
- &opd->fname);
- if (!ok) {
+ opd->smb_fname = cp_smb_filename(opd, smb_fname);
+ if (opd->smb_fname == NULL) {
+ opd_free(opd);
+ return NULL;
+ }
+
+ opd->fsp_name = cp_smb_filename(opd, fsp->fsp_name);
+ if (opd->fsp_name == NULL) {
opd_free(opd);
return NULL;
}
* down which kills the fsp that owns
* opd.
*/
- DBG_NOTICE("aio open request for %s/%s cancelled\n",
- opd->dname->base_name,
- opd->fname->base_name);
+ DBG_NOTICE("aio open request for %s cancelled\n",
+ opd->fsp_name->base_name);
opd->conn = NULL;
/* Don't let opd go away. */
return -1;
}
tevent_req_set_callback(subreq, aio_open_handle_completion, opd);
- DEBUG(5,("open_async: mid %llu created for file %s/%s\n",
+ DEBUG(5,("open_async: mid %llu created for file %s\n",
(unsigned long long)opd->mid,
- opd->dname->base_name,
- opd->fname->base_name));
+ opd->fsp_name->base_name));
/*
* Add a destructor to protect us from connection
if (opd->in_progress) {
DEBUG(0,("find_completed_open: mid %llu "
"still in progress for "
- "file %s/%s. PANIC !\n",
+ "file %s. PANIC !\n",
(unsigned long long)opd->mid,
- opd->dname->base_name,
- opd->fname->base_name));
+ opd->fsp_name->base_name));
/* Disaster ! This is an open timeout. Just panic. */
smb_panic("find_completed_open - in_progress\n");
/* notreached. */