summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-09-04 00:23:28 +0000
committerJeremy Allison <jra@samba.org>1998-09-04 00:23:28 +0000
commit623a18db4b0f46c80c29e93a0ad0a2fcbfec71dc (patch)
tree3911452a790d0ad2f1e836e06b31cc6ca3a22951 /source3/smbd
parent7bb86c1b132bce31a006ea9768a54db7a45fe1a5 (diff)
downloadsamba-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.c18
-rw-r--r--source3/smbd/open.c4
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)))