summaryrefslogtreecommitdiff
path: root/source3/smbd/oplock_irix.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2009-01-23 10:08:44 +0100
committerStefan Metzmacher <metze@samba.org>2009-01-27 15:28:10 +0100
commit52f6a4436f9da439fc687894b329898833af7ff8 (patch)
tree7d42835050b9876ae520fa4e02a9f697052bb79c /source3/smbd/oplock_irix.c
parent4a2271349503933776f9d2791edfcb874a2c7261 (diff)
downloadsamba-52f6a4436f9da439fc687894b329898833af7ff8.tar.gz
samba-52f6a4436f9da439fc687894b329898833af7ff8.tar.bz2
samba-52f6a4436f9da439fc687894b329898833af7ff8.zip
s3:smbd: make kernel oplocks event driven
And use signal events for Linux oplocks. metze
Diffstat (limited to 'source3/smbd/oplock_irix.c')
-rw-r--r--source3/smbd/oplock_irix.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/source3/smbd/oplock_irix.c b/source3/smbd/oplock_irix.c
index 0cfa960425..d7f45e67de 100644
--- a/source3/smbd/oplock_irix.c
+++ b/source3/smbd/oplock_irix.c
@@ -252,13 +252,6 @@ static void irix_release_kernel_oplock(struct kernel_oplocks *_ctx,
}
}
-static bool irix_oplock_msg_waiting(struct kernel_oplocks *_ctx)
-{
- struct irix_oplocks_context *ctx = talloc_get_type(_ctx->private_data,
- struct irix_oplocks_context);
- return ctx->pending;
-}
-
static void irix_oplocks_read_fde_handler(struct event_context *ev,
struct fd_event *fde,
uint16_t flags,
@@ -266,10 +259,10 @@ static void irix_oplocks_read_fde_handler(struct event_context *ev,
{
struct irix_oplocks_context *ctx = talloc_get_type(private_data,
struct irix_oplocks_context);
+ files_struct *fsp;
- ctx->pending = true;
- process_kernel_oplocks(smbd_messaging_context());
- ctx->pending = false;
+ fsp = irix_oplock_receive_message(ctx->ctx);
+ break_kernel_oplock(smbd_messaging_context(), fsp);
}
/****************************************************************************
@@ -277,10 +270,8 @@ static void irix_oplocks_read_fde_handler(struct event_context *ev,
****************************************************************************/
static const struct kernel_oplocks_ops irix_koplocks = {
- .receive_message = irix_oplock_receive_message,
.set_oplock = irix_set_kernel_oplock,
.release_oplock = irix_release_kernel_oplock,
- .msg_waiting = irix_oplock_msg_waiting
};
struct kernel_oplocks *irix_init_kernel_oplocks(TALLOC_CTX *mem_ctx)