summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2004-10-28 21:48:53 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:04:57 -0500
commit019719595778e0bd0a00781b33407554d1943985 (patch)
treedd54db0a15f72d5fe4a63a5104d120bcae735fba /source4/ntvfs/posix
parent94c0b939c4735866945aea8b7a0377be4d814125 (diff)
downloadsamba-019719595778e0bd0a00781b33407554d1943985.tar.gz
samba-019719595778e0bd0a00781b33407554d1943985.tar.bz2
samba-019719595778e0bd0a00781b33407554d1943985.zip
r3336: use a struct ntvfs_async_state to be able to do async chaning of ntvfs modules
the idea is that a passthru module can use ntvfs_async_state_push() before calling ntvfs_next_*() and in the _send function it calls ntvfs_async_state_pop() and then call the upper layer send_fn itself - ntvfs_nbench is now fully async - the ntvfs_map_*() functions and the trans(2) mapping functions are not converted yet metze (This used to be commit fde64c0dc142b53d128c8ba09af048dc58d8ef3a)
Diffstat (limited to 'source4/ntvfs/posix')
-rw-r--r--source4/ntvfs/posix/pvfs_lock.c14
-rw-r--r--source4/ntvfs/posix/pvfs_wait.c2
2 files changed, 8 insertions, 8 deletions
diff --git a/source4/ntvfs/posix/pvfs_lock.c b/source4/ntvfs/posix/pvfs_lock.c
index 4a4da34b60..3835c9319b 100644
--- a/source4/ntvfs/posix/pvfs_lock.c
+++ b/source4/ntvfs/posix/pvfs_lock.c
@@ -77,8 +77,8 @@ static void pvfs_lock_async_failed(struct pvfs_state *pvfs,
locks[i].count);
f->lock_count--;
}
- req->async.status = status;
- req->async.send_fn(req);
+ req->async_states->status = status;
+ req->async_states->send_fn(req);
}
@@ -192,8 +192,8 @@ static void pvfs_pending_lock_continue(void *private, BOOL timed_out)
}
/* we've managed to get all the locks. Tell the client */
- req->async.status = NT_STATUS_OK;
- req->async.send_fn(req);
+ req->async_states->status = NT_STATUS_OK;
+ req->async_states->send_fn(req);
}
@@ -217,8 +217,8 @@ void pvfs_lock_close(struct pvfs_state *pvfs, struct pvfs_file *f)
next = p->next;
DLIST_REMOVE(f->pending_list, p);
talloc_free(p->wait_handle);
- p->req->async.status = NT_STATUS_RANGE_NOT_LOCKED;
- p->req->async.send_fn(p->req);
+ p->req->async_states->status = NT_STATUS_RANGE_NOT_LOCKED;
+ p->req->async_states->send_fn(p->req);
}
}
@@ -287,7 +287,7 @@ NTSTATUS pvfs_lock(struct ntvfs_module_context *ntvfs,
}
if (lck->lockx.in.timeout != 0 &&
- (req->control_flags & REQ_CONTROL_MAY_ASYNC)) {
+ (req->async_states->state & NTVFS_ASYNC_STATE_MAY_ASYNC)) {
pending = talloc_p(req, struct pvfs_pending_lock);
if (pending == NULL) {
return NT_STATUS_NO_MEMORY;
diff --git a/source4/ntvfs/posix/pvfs_wait.c b/source4/ntvfs/posix/pvfs_wait.c
index 071ecbce15..2a8cbbbe0d 100644
--- a/source4/ntvfs/posix/pvfs_wait.c
+++ b/source4/ntvfs/posix/pvfs_wait.c
@@ -149,7 +149,7 @@ void *pvfs_wait_message(struct pvfs_state *pvfs,
/* tell the main smb server layer that we will be replying
asynchronously */
- req->control_flags |= REQ_CONTROL_ASYNC;
+ req->async_states->state |= NTVFS_ASYNC_STATE_ASYNC;
/* make sure we cleanup the timer and message handler */
talloc_set_destructor(pwait, pvfs_wait_destructor);