s3: smbd: Remove outstanding_aio_calls from globals.
authorJeremy Allison <jra@samba.org>
Thu, 12 Nov 2015 17:25:41 +0000 (09:25 -0800)
committerChristof Schmitt <cs@samba.org>
Fri, 13 Nov 2015 00:44:21 +0000 (01:44 +0100)
Access via functions only.

Signed-off-by: Jeremy Allison <jra@samba.org>
Signed-off-by: Christof Schmitt <cs@samab.org>
source3/modules/vfs_default.c
source3/smbd/aio.c
source3/smbd/globals.c
source3/smbd/globals.h
source3/smbd/proto.h

index 5d0966e18a84985a7f9da609816e520b9fc82935..f3ebb897580b2d7d7ce5e4296b425521109c840a 100644 (file)
@@ -866,14 +866,14 @@ static void vfswrap_asys_finished(struct tevent_context *ev,
                                        uint16_t flags, void *p)
 {
        struct asys_context *asys_ctx = (struct asys_context *)p;
-       struct asys_result results[outstanding_aio_calls];
+       struct asys_result results[get_outstanding_aio_calls()];
        int i, ret;
 
        if ((flags & TEVENT_FD_READ) == 0) {
                return;
        }
 
-       ret = asys_results(asys_ctx, results, outstanding_aio_calls);
+       ret = asys_results(asys_ctx, results, get_outstanding_aio_calls());
        if (ret < 0) {
                DEBUG(1, ("asys_results returned %s\n", strerror(-ret)));
                return;
index a750a1a5982d413ee2271438ce9e87167c56adf5..1216a0d4bf1ee854d0e0f3ea64e8334e0192ea08 100644 (file)
@@ -30,6 +30,7 @@
 *****************************************************************************/
 
 static int aio_pending_size = 100;  /* tevent supports 100 signals SA_SIGINFO */
+static int outstanding_aio_calls;
 
 int get_aio_pending_size(void)
 {
@@ -41,6 +42,21 @@ void set_aio_pending_size(int newsize)
        aio_pending_size = newsize;
 }
 
+int get_outstanding_aio_calls(void)
+{
+       return outstanding_aio_calls;
+}
+
+void increment_outstanding_aio_calls(void)
+{
+       outstanding_aio_calls++;
+}
+
+void decrement_outstanding_aio_calls(void)
+{
+       outstanding_aio_calls--;
+}
+
 /****************************************************************************
  The buffer we keep around whilst an aio request is in process.
 *****************************************************************************/
@@ -66,7 +82,7 @@ bool aio_write_through_requested(struct aio_extra *aio_ex)
 
 static int aio_extra_destructor(struct aio_extra *aio_ex)
 {
-       outstanding_aio_calls--;
+       decrement_outstanding_aio_calls();
        return 0;
 }
 
@@ -98,7 +114,7 @@ static struct aio_extra *create_aio_extra(TALLOC_CTX *mem_ctx,
        }
        talloc_set_destructor(aio_ex, aio_extra_destructor);
        aio_ex->fsp = fsp;
-       outstanding_aio_calls++;
+       increment_outstanding_aio_calls();
        return aio_ex;
 }
 
@@ -202,10 +218,10 @@ NTSTATUS schedule_aio_read_and_X(connection_struct *conn,
                return NT_STATUS_RETRY;
        }
 
-       if (outstanding_aio_calls >= get_aio_pending_size()) {
+       if (get_outstanding_aio_calls() >= get_aio_pending_size()) {
                DEBUG(10,("schedule_aio_read_and_X: Already have %d aio "
                          "activities outstanding.\n",
-                         outstanding_aio_calls ));
+                         get_outstanding_aio_calls() ));
                return NT_STATUS_RETRY;
        }
 
@@ -468,10 +484,10 @@ NTSTATUS schedule_aio_write_and_X(connection_struct *conn,
                return NT_STATUS_RETRY;
        }
 
-       if (outstanding_aio_calls >= get_aio_pending_size()) {
+       if (get_outstanding_aio_calls() >= get_aio_pending_size()) {
                DEBUG(3,("schedule_aio_write_and_X: Already have %d aio "
                         "activities outstanding.\n",
-                         outstanding_aio_calls ));
+                         get_outstanding_aio_calls() ));
                DEBUG(10,("schedule_aio_write_and_X: failed to schedule "
                          "aio_write for file %s, offset %.0f, len = %u "
                          "(mid = %u)\n",
@@ -554,7 +570,8 @@ NTSTATUS schedule_aio_write_and_X(connection_struct *conn,
                  "%s, offset %.0f, len = %u (mid = %u) "
                  "outstanding_aio_calls = %d\n",
                  fsp_str_dbg(fsp), (double)startpos, (unsigned int)numtowrite,
-                 (unsigned int)aio_ex->smbreq->mid, outstanding_aio_calls ));
+                 (unsigned int)aio_ex->smbreq->mid,
+                 get_outstanding_aio_calls() ));
 
        return NT_STATUS_OK;
 }
@@ -727,10 +744,10 @@ NTSTATUS schedule_smb2_aio_read(connection_struct *conn,
                return NT_STATUS_RETRY;
        }
 
-       if (outstanding_aio_calls >= get_aio_pending_size()) {
+       if (get_outstanding_aio_calls() >= get_aio_pending_size()) {
                DEBUG(10,("smb2: Already have %d aio "
                        "activities outstanding.\n",
-                       outstanding_aio_calls ));
+                       get_outstanding_aio_calls() ));
                return NT_STATUS_RETRY;
        }
 
@@ -883,10 +900,10 @@ NTSTATUS schedule_aio_smb2_write(connection_struct *conn,
                return NT_STATUS_RETRY;
        }
 
-       if (outstanding_aio_calls >= get_aio_pending_size()) {
+       if (get_outstanding_aio_calls() >= get_aio_pending_size()) {
                DEBUG(3,("smb2: Already have %d aio "
                        "activities outstanding.\n",
-                       outstanding_aio_calls ));
+                       get_outstanding_aio_calls() ));
                return NT_STATUS_RETRY;
        }
 
@@ -955,7 +972,7 @@ NTSTATUS schedule_aio_smb2_write(connection_struct *conn,
                (double)in_offset,
                (unsigned int)in_data.length,
                (unsigned int)aio_ex->smbreq->mid,
-               outstanding_aio_calls ));
+               get_outstanding_aio_calls() ));
 
        return NT_STATUS_OK;
 }
index f552bc848c6fe545b7a55de156da253eb0cc503d..70805a1b2a570b97f3578a9ab0de0d20d2c6e1fe 100644 (file)
@@ -24,8 +24,6 @@
 #include "messages.h"
 #include <tdb.h>
 
-int outstanding_aio_calls = 0;
-
 #ifdef USE_DMAPI
 struct smbd_dmapi_context *dmapi_ctx = NULL;
 #endif
index 86774cf09439be86d3fbb948836ff2295fa32f66..0422cbeb995e7aaa7c3c3ea2c9db0d534d10b4c7 100644 (file)
@@ -22,8 +22,6 @@
 #include "librpc/gen_ndr/smbXsrv.h"
 #include "smbprofile.h"
 
-extern int outstanding_aio_calls;
-
 #ifdef USE_DMAPI
 struct smbd_dmapi_context;
 extern struct smbd_dmapi_context *dmapi_ctx;
index caeecc71898eaa387d707cd5ea86209d99b5a619..95414e638b092b3c2193ee1f2d6794de61a389e2 100644 (file)
@@ -68,6 +68,9 @@ void srv_set_signing(struct smbXsrv_connection *conn,
 
 int get_aio_pending_size(void);
 void set_aio_pending_size(int newsize);
+int get_outstanding_aio_calls(void);
+void increment_outstanding_aio_calls(void);
+void decrement_outstanding_aio_calls(void);
 struct aio_extra;
 bool aio_write_through_requested(struct aio_extra *aio_ex);
 NTSTATUS schedule_aio_read_and_X(connection_struct *conn,