diff options
author | Jeremy Allison <jra@samba.org> | 1998-09-04 00:23:28 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1998-09-04 00:23:28 +0000 |
commit | 623a18db4b0f46c80c29e93a0ad0a2fcbfec71dc (patch) | |
tree | 3911452a790d0ad2f1e836e06b31cc6ca3a22951 /source3/smbd | |
parent | 7bb86c1b132bce31a006ea9768a54db7a45fe1a5 (diff) | |
download | samba-623a18db4b0f46c80c29e93a0ad0a2fcbfec71dc.tar.gz samba-623a18db4b0f46c80c29e93a0ad0a2fcbfec71dc.tar.bz2 samba-623a18db4b0f46c80c29e93a0ad0a2fcbfec71dc.zip |
More 64 bit stuff - now the fcntl locks are 64 bit clean.
Nearly at the stage where I can expose the 64-bit-ness to
the NT clients....
Jeremy.
(This used to be commit 422f1dd45074c0e28203aca5952e57bbe56676b6)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/connection.c | 18 | ||||
-rw-r--r-- | source3/smbd/open.c | 4 |
2 files changed, 13 insertions, 9 deletions
diff --git a/source3/smbd/connection.c b/source3/smbd/connection.c index c3b6ba0199..0170fa5497 100644 --- a/source3/smbd/connection.c +++ b/source3/smbd/connection.c @@ -57,7 +57,7 @@ BOOL yield_connection(connection_struct *conn,char *name,int max_connections) return(False); } - if (fcntl_lock(fd,F_SETLKW,0,1,F_WRLCK)==False) { + if (fcntl_lock(fd,SMB_F_SETLKW,0,1,F_WRLCK)==False) { DEBUG(0,("ERROR: can't get lock on %s\n", fname)); return False; } @@ -66,7 +66,7 @@ BOOL yield_connection(connection_struct *conn,char *name,int max_connections) for (i=0;i<max_connections;i++) { if (read(fd, &crec,sizeof(crec)) != sizeof(crec)) { DEBUG(2,("Entry not found in lock file %s\n",fname)); - if (fcntl_lock(fd,F_SETLKW,0,1,F_UNLCK)==False) { + if (fcntl_lock(fd,SMB_F_SETLKW,0,1,F_UNLCK)==False) { DEBUG(0,("ERROR: can't release lock on %s\n", fname)); } close(fd); @@ -77,7 +77,7 @@ BOOL yield_connection(connection_struct *conn,char *name,int max_connections) } if (crec.pid != mypid || crec.cnum != conn->cnum) { - if (fcntl_lock(fd,F_SETLKW,0,1,F_UNLCK)==False) { + if (fcntl_lock(fd,SMB_F_SETLKW,0,1,F_UNLCK)==False) { DEBUG(0,("ERROR: can't release lock on %s\n", fname)); } close(fd); @@ -91,14 +91,14 @@ BOOL yield_connection(connection_struct *conn,char *name,int max_connections) if (sys_lseek(fd,i*sizeof(crec),SEEK_SET) != i*sizeof(crec) || write(fd, &crec,sizeof(crec)) != sizeof(crec)) { DEBUG(2,("Couldn't update lock file %s (%s)\n",fname,strerror(errno))); - if (fcntl_lock(fd,F_SETLKW,0,1,F_UNLCK)==False) { + if (fcntl_lock(fd,SMB_F_SETLKW,0,1,F_UNLCK)==False) { DEBUG(0,("ERROR: can't release lock on %s\n", fname)); } close(fd); return(False); } - if (fcntl_lock(fd,F_SETLKW,0,1,F_UNLCK)==False) { + if (fcntl_lock(fd,SMB_F_SETLKW,0,1,F_UNLCK)==False) { DEBUG(0,("ERROR: can't release lock on %s\n", fname)); } @@ -149,7 +149,7 @@ BOOL claim_connection(connection_struct *conn,char *name,int max_connections,BOO return(False); } - if (fcntl_lock(fd,F_SETLKW,0,1,F_WRLCK)==False) { + if (fcntl_lock(fd,SMB_F_SETLKW,0,1,F_WRLCK)==False) { DEBUG(0,("ERROR: can't get lock on %s\n", fname)); return False; } @@ -180,7 +180,7 @@ BOOL claim_connection(connection_struct *conn,char *name,int max_connections,BOO if (foundi < 0) { DEBUG(3,("no free locks in %s\n",fname)); - if (fcntl_lock(fd,F_SETLKW,0,1,F_UNLCK)==False) { + if (fcntl_lock(fd,SMB_F_SETLKW,0,1,F_UNLCK)==False) { DEBUG(0,("ERROR: can't release lock on %s\n", fname)); } close(fd); @@ -208,14 +208,14 @@ BOOL claim_connection(connection_struct *conn,char *name,int max_connections,BOO /* make our mark */ if (sys_lseek(fd,foundi*sizeof(crec),SEEK_SET) != foundi*sizeof(crec) || write(fd, &crec,sizeof(crec)) != sizeof(crec)) { - if (fcntl_lock(fd,F_SETLKW,0,1,F_UNLCK)==False) { + if (fcntl_lock(fd,SMB_F_SETLKW,0,1,F_UNLCK)==False) { DEBUG(0,("ERROR: can't release lock on %s\n", fname)); } close(fd); return(False); } - if (fcntl_lock(fd,F_SETLKW,0,1,F_UNLCK)==False) { + if (fcntl_lock(fd,SMB_F_SETLKW,0,1,F_UNLCK)==False) { DEBUG(0,("ERROR: can't release lock on %s\n", fname)); } diff --git a/source3/smbd/open.c b/source3/smbd/open.c index 395de66a88..f24d4ac962 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -562,7 +562,11 @@ static void truncate_unless_locked(files_struct *fsp, connection_struct *conn, i BOOL *share_locked) { if (fsp->can_write){ +#ifdef LARGE_SMB_OFF_T + if (is_locked(fsp,conn,0x3FFFFFFFFFFFFFFFLL,0,F_WRLCK)){ +#else if (is_locked(fsp,conn,0x3FFFFFFF,0,F_WRLCK)){ +#endif /* If share modes are in force for this connection we have the share entry locked. Unlock it before closing. */ if (*share_locked && lp_share_modes(SNUM(conn))) |