diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-01-09 14:02:18 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2009-01-22 12:37:29 +0100 |
commit | 196028ab7b578526179d4fcff42a5d73ba07ccbb (patch) | |
tree | 554ea6ba2d01138fc5f85ac746a8720150fe2cde /source3/include | |
parent | 048f8dba141c2f9898aad67e09925f03394a946e (diff) | |
download | samba-196028ab7b578526179d4fcff42a5d73ba07ccbb.tar.gz samba-196028ab7b578526179d4fcff42a5d73ba07ccbb.tar.bz2 samba-196028ab7b578526179d4fcff42a5d73ba07ccbb.zip |
s3:smbd: restructure kernel oplocks code
This converts the irix oplocks code to use a fd event
and removes the last special case for file descriptors
for the main sys_select().
metze
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/proto.h | 8 | ||||
-rw-r--r-- | source3/include/smb.h | 19 |
2 files changed, 17 insertions, 10 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 632f820b24..0c358a0429 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -7026,8 +7026,8 @@ NTSTATUS get_relative_fid_filename(connection_struct *conn, /* The following definitions come from smbd/oplock.c */ int32 get_number_of_exclusive_open_oplocks(void); -bool oplock_message_waiting(fd_set *fds); -void process_kernel_oplocks(struct messaging_context *msg_ctx, fd_set *pfds); +bool oplock_message_waiting(); +void process_kernel_oplocks(struct messaging_context *msg_ctx); bool set_file_oplock(files_struct *fsp, int oplock_type); void release_file_oplock(files_struct *fsp); bool remove_oplock(files_struct *fsp); @@ -7041,14 +7041,14 @@ bool init_oplocks(struct messaging_context *msg_ctx); /* The following definitions come from smbd/oplock_irix.c */ -struct kernel_oplocks *irix_init_kernel_oplocks(void) ; +struct kernel_oplocks *irix_init_kernel_oplocks(TALLOC_CTX *mem_ctx) ; /* The following definitions come from smbd/oplock_linux.c */ void linux_set_lease_capability(void); int linux_set_lease_sighandler(int fd); int linux_setlease(int fd, int leasetype); -struct kernel_oplocks *linux_init_kernel_oplocks(void) ; +struct kernel_oplocks *linux_init_kernel_oplocks(TALLOC_CTX *mem_ctx) ; /* The following definitions come from smbd/password.c */ diff --git a/source3/include/smb.h b/source3/include/smb.h index 799ffe1a46..19d2208ada 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -1671,14 +1671,21 @@ enum smbd_capability { LEASE_CAPABILITY }; +struct kernel_oplocks_ops; +struct kernel_oplocks { + const struct kernel_oplocks_ops *ops; + void *private_data; +}; + /* if a kernel does support oplocks then a structure of the following typee is used to describe how to interact with the kernel */ -struct kernel_oplocks { - files_struct * (*receive_message)(fd_set *fds); - bool (*set_oplock)(files_struct *fsp, int oplock_type); - void (*release_oplock)(files_struct *fsp); - bool (*msg_waiting)(fd_set *fds); - int notification_fd; +struct kernel_oplocks_ops { + files_struct * (*receive_message)(struct kernel_oplocks *ctx); + bool (*set_oplock)(struct kernel_oplocks *ctx, + files_struct *fsp, int oplock_type); + void (*release_oplock)(struct kernel_oplocks *ctx, + files_struct *fsp); + bool (*msg_waiting)(struct kernel_oplocks *ctx); }; #include "smb_macros.h" |