r19668: Convert the locking params to use struct share_param instead of snum
authorVolker Lendecke <vlendec@samba.org>
Sat, 11 Nov 2006 17:05:11 +0000 (17:05 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:15:46 +0000 (12:15 -0500)
(This used to be commit 609dbec600048718b86cd1ecdc2ce49bbdeb803c)

source3/locking/brlock.c
source3/locking/locking.c
source3/locking/posix.c
source3/param/loadparm.c
source3/script/mkproto.awk

index 00cbed6b845f3635d7ab9c65f0de19263fe5b79d..872ed2bbeaf8c1c04d278eb380a79b38c28994b8 100644 (file)
@@ -333,7 +333,7 @@ static NTSTATUS brl_lock_windows(struct byte_range_lock *br_lck,
           be mapped into a lower level POSIX one, and if so can
           we get it ? */
 
-       if (!IS_PENDING_LOCK(plock->lock_type) && lp_posix_locking(SNUM(fsp->conn))) {
+       if (!IS_PENDING_LOCK(plock->lock_type) && lp_posix_locking(fsp->conn->params)) {
                int errno_ret;
                if (!set_posix_lock_windows_flavour(fsp,
                                plock->start,
@@ -654,7 +654,7 @@ static NTSTATUS brl_lock_posix(struct byte_range_lock *br_lck,
           be mapped into a lower level POSIX one, and if so can
           we get it ? */
 
-       if (!IS_PENDING_LOCK(plock->lock_type) && lp_posix_locking(SNUM(br_lck->fsp->conn))) {
+       if (!IS_PENDING_LOCK(plock->lock_type) && lp_posix_locking(br_lck->fsp->conn->params)) {
                int errno_ret;
 
                /* The lower layer just needs to attempt to
@@ -829,7 +829,7 @@ static BOOL brl_unlock_windows(struct byte_range_lock *br_lck, const struct lock
        br_lck->modified = True;
 
        /* Unlock the underlying POSIX regions. */
-       if(lp_posix_locking(SNUM(br_lck->fsp->conn))) {
+       if(lp_posix_locking(br_lck->fsp->conn->params)) {
                release_posix_lock_windows_flavour(br_lck->fsp,
                                plock->start,
                                plock->size,
@@ -978,7 +978,7 @@ static BOOL brl_unlock_posix(struct byte_range_lock *br_lck, const struct lock_s
        }
 
        /* Unlock any POSIX regions. */
-       if(lp_posix_locking(SNUM(br_lck->fsp->conn))) {
+       if(lp_posix_locking(br_lck->fsp->conn->params)) {
                release_posix_lock_posix_flavour(br_lck->fsp,
                                                plock->start,
                                                plock->size,
@@ -1103,7 +1103,7 @@ BOOL brl_locktest(struct byte_range_lock *br_lck,
         * This only conflicts with Windows locks, not POSIX locks.
         */
 
-       if(lp_posix_locking(SNUM(fsp->conn)) && (lock_flav == WINDOWS_LOCK)) {
+       if(lp_posix_locking(fsp->conn->params) && (lock_flav == WINDOWS_LOCK)) {
                ret = is_posix_locked(fsp, &start, &size, &lock_type, WINDOWS_LOCK);
 
                DEBUG(10,("brl_locktest: posix start=%.0f len=%.0f %s for fnum %d file %s\n",
@@ -1169,7 +1169,7 @@ NTSTATUS brl_lockquery(struct byte_range_lock *br_lck,
         * see if there is a POSIX lock from a UNIX or NFS process.
         */
 
-       if(lp_posix_locking(SNUM(fsp->conn))) {
+       if(lp_posix_locking(fsp->conn->params)) {
                BOOL ret = is_posix_locked(fsp, pstart, psize, plock_type, POSIX_LOCK);
 
                DEBUG(10,("brl_lockquery: posix start=%.0f len=%.0f %s for fnum %d file %s\n",
@@ -1252,7 +1252,7 @@ void brl_close_fnum(struct byte_range_lock *br_lck)
        struct process_id pid = procid_self();
        BOOL unlock_individually = False;
 
-       if(lp_posix_locking(SNUM(fsp->conn))) {
+       if(lp_posix_locking(fsp->conn->params)) {
 
                /* Check if there are any Windows locks associated with this dev/ino
                   pair that are not this fnum. If so we need to call unlock on each
@@ -1358,7 +1358,7 @@ void brl_close_fnum(struct byte_range_lock *br_lck)
                }
        }
 
-       if(lp_posix_locking(SNUM(fsp->conn)) && num_deleted_windows_locks) {
+       if(lp_posix_locking(fsp->conn->params) && num_deleted_windows_locks) {
                /* Reduce the Windows lock POSIX reference count on this dev/ino pair. */
                reduce_windows_lock_ref_count(fsp, num_deleted_windows_locks);
        }
index fbe22f4e1dade72aba1bab04d9fd757abeb3a3d2..13c7724656e6e4d4013e788f100181029b2521b6 100644 (file)
@@ -80,8 +80,7 @@ BOOL is_locked(files_struct *fsp,
                SMB_BIG_UINT offset, 
                enum brl_type lock_type)
 {
-       int snum = SNUM(fsp->conn);
-       int strict_locking = lp_strict_locking(snum);
+       int strict_locking = lp_strict_locking(fsp->conn->params);
        enum brl_flavour lock_flav = lp_posix_cifsu_locktype();
        BOOL ret = True;
        
@@ -89,7 +88,7 @@ BOOL is_locked(files_struct *fsp,
                return False;
        }
 
-       if (!lp_locking(snum) || !strict_locking) {
+       if (!lp_locking(fsp->conn->params) || !strict_locking) {
                return False;
        }
 
@@ -156,7 +155,7 @@ NTSTATUS query_lock(files_struct *fsp,
                return fsp->is_directory ? NT_STATUS_INVALID_DEVICE_REQUEST : NT_STATUS_INVALID_HANDLE;
        }
 
-       if (!lp_locking(SNUM(fsp->conn))) {
+       if (!lp_locking(fsp->conn->params)) {
                return NT_STATUS_OK;
        }
 
@@ -197,7 +196,7 @@ struct byte_range_lock *do_lock(files_struct *fsp,
                return NULL;
        }
 
-       if (!lp_locking(SNUM(fsp->conn))) {
+       if (!lp_locking(fsp->conn->params)) {
                *perr = NT_STATUS_OK;
                return NULL;
        }
@@ -243,7 +242,7 @@ NTSTATUS do_unlock(files_struct *fsp,
                return fsp->is_directory ? NT_STATUS_INVALID_DEVICE_REQUEST : NT_STATUS_INVALID_HANDLE;
        }
        
-       if (!lp_locking(SNUM(fsp->conn))) {
+       if (!lp_locking(fsp->conn->params)) {
                return NT_STATUS_OK;
        }
        
@@ -290,7 +289,7 @@ NTSTATUS do_lock_cancel(files_struct *fsp,
                        NT_STATUS_INVALID_DEVICE_REQUEST : NT_STATUS_INVALID_HANDLE;
        }
        
-       if (!lp_locking(SNUM(fsp->conn))) {
+       if (!lp_locking(fsp->conn->params)) {
                return NT_STATUS_DOS(ERRDOS, ERRcancelviolation);
        }
 
@@ -327,7 +326,7 @@ void locking_close_file(files_struct *fsp)
 {
        struct byte_range_lock *br_lck;
 
-       if (!lp_locking(SNUM(fsp->conn))) {
+       if (!lp_locking(fsp->conn->params)) {
                return;
        }
 
index 8e27d4523b5b736c9a298cecec0c246d3ed38a06..806018da8161d13ab474c2c80e1d68127f3b92a6 100644 (file)
@@ -643,7 +643,7 @@ int fd_close_posix(struct connection_struct *conn, files_struct *fsp)
        int *fd_array = NULL;
        size_t count, i;
 
-       if (!lp_locking(SNUM(fsp->conn)) || !lp_posix_locking(SNUM(conn))) {
+       if (!lp_locking(fsp->conn->params) || !lp_posix_locking(conn->params)) {
                /*
                 * No locking or POSIX to worry about or we want POSIX semantics
                 * which will lose all locks on all fd's open on this dev/inode,
index fea41a880f27ffb265aa740689d48fff53f9387b..68dd9d5a97ab2c766d7f7a3cde7e2e8e047c3b95 100644 (file)
@@ -1752,6 +1752,8 @@ static char *lp_string(const char *s)
 
 #define FN_LOCAL_PARM_BOOL(fn_name,val) \
  BOOL fn_name(const struct share_params *p) {return(LP_SNUM_OK(p->service)? ServicePtrs[(p->service)]->val : sDefault.val);}
+#define FN_LOCAL_PARM_INTEGER(fn_name,val) \
+ int fn_name(const struct share_params *p) {return(LP_SNUM_OK(p->service)? ServicePtrs[(p->service)]->val : sDefault.val);}
 #define FN_LOCAL_PARM_STRING(fn_name,val) \
  char *fn_name(const struct share_params *p) {return(lp_string((LP_SNUM_OK(p->service) && ServicePtrs[(p->service)]->val) ? ServicePtrs[(p->service)]->val : sDefault.val));}
 #define FN_LOCAL_CHAR(fn_name,val) \
@@ -2020,9 +2022,9 @@ FN_LOCAL_BOOL(lp_map_hidden, bMap_hidden)
 FN_LOCAL_BOOL(lp_map_archive, bMap_archive)
 FN_LOCAL_BOOL(lp_store_dos_attributes, bStoreDosAttributes)
 FN_LOCAL_BOOL(lp_dmapi_support, bDmapiSupport)
-FN_LOCAL_BOOL(lp_locking, bLocking)
-FN_LOCAL_INTEGER(lp_strict_locking, iStrictLocking)
-FN_LOCAL_BOOL(lp_posix_locking, bPosixLocking)
+FN_LOCAL_PARM_BOOL(lp_locking, bLocking)
+FN_LOCAL_PARM_INTEGER(lp_strict_locking, iStrictLocking)
+FN_LOCAL_PARM_BOOL(lp_posix_locking, bPosixLocking)
 FN_LOCAL_BOOL(lp_share_modes, bShareModes)
 FN_LOCAL_BOOL(lp_oplocks, bOpLocks)
 FN_LOCAL_BOOL(lp_level2_oplocks, bLevel2OpLocks)
index 97578b046f71f45b077b27b820a4ce1800df79af..65a10c856e0edeb831626ae00947b751313ec5b0 100644 (file)
@@ -53,6 +53,11 @@ END {
   printf "BOOL %s(const struct share_params *p );\n", a[2]
 }
 
+/^FN_LOCAL_PARM_INTEGER/ {
+  split($0,a,"[,()]")
+  printf "int %s(const struct share_params *p );\n", a[2]
+}
+
 /^FN_LOCAL_LIST/ {
   split($0,a,"[,()]")
   printf "const char **%s(int );\n", a[2]