s3:smbd/oplock_onefs: pass smbd_server_connection to onefs_oplock_wait_record()
authorStefan Metzmacher <metze@samba.org>
Tue, 13 Dec 2011 13:24:58 +0000 (14:24 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 13 Dec 2011 19:31:09 +0000 (20:31 +0100)
metze

source3/modules/onefs_open.c
source3/smbd/oplock_onefs.c

index d7b2af35441055870d1a8fcc9c2c0f014e0d2461..a77d6f3e7e7cc37db4401ef4715d3aa26495de7e 100644 (file)
@@ -871,7 +871,8 @@ NTSTATUS onefs_open_file_ntcreate(connection_struct *conn,
         */
        if (req) {
                SMB_ASSERT(fsp_data);
-               oplock_callback_id = onefs_oplock_wait_record(req->mid);
+               oplock_callback_id = onefs_oplock_wait_record(req->sconn,
+                                                             req->mid);
                if (oplock_callback_id == 0) {
                        return NT_STATUS_NO_MEMORY;
                }
index d7e36087350b740794b763653e9dbd02490dad21..9e427a3607f34933b70901156729029991204959 100644 (file)
@@ -47,6 +47,7 @@ enum onefs_callback_state {
 
 struct onefs_callback_record {
        struct onefs_callback_record *prev, *next;
+       struct smbd_server_connection *sconn;
        uint64_t id;
        enum onefs_callback_state state;
        union {
@@ -198,7 +199,8 @@ void destroy_onefs_callback_record(uint64_t id)
  *   2. OPEN_FILE: Once ifs_createfile completes, the callback record is
  *   transitioned to this state via onefs_set_oplock_callback.
  */
-uint64_t onefs_oplock_wait_record(uint64_t mid)
+uint64_t onefs_oplock_wait_record(struct smbd_server_connection *sconn,
+                                 uint64_t mid)
 {
        struct onefs_callback_record *result;
        static uint64_t id_generator = 0;
@@ -216,6 +218,7 @@ uint64_t onefs_oplock_wait_record(uint64_t mid)
                id_generator += 1;
        }
 
+       result->sconn = sconn;
        result->id = id_generator;
 
        result->state = ONEFS_WAITING_FOR_OPLOCK;