diff options
author | Stefan Metzmacher <metze@samba.org> | 2004-10-28 21:48:53 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:04:57 -0500 |
commit | 019719595778e0bd0a00781b33407554d1943985 (patch) | |
tree | dd54db0a15f72d5fe4a63a5104d120bcae735fba /source4/ntvfs/posix | |
parent | 94c0b939c4735866945aea8b7a0377be4d814125 (diff) | |
download | samba-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.c | 14 | ||||
-rw-r--r-- | source4/ntvfs/posix/pvfs_wait.c | 2 |
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); |