svn commit: samba r21748 - in branches/SAMBA_3_0/source/smbd: .

vlendec at samba.org vlendec at samba.org
Wed Mar 7 14:25:08 GMT 2007


Author: vlendec
Date: 2007-03-07 14:25:07 +0000 (Wed, 07 Mar 2007)
New Revision: 21748

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21748

Log:
More cosmetic alignment. One change to call_nt_transact_create(): We were
asking open_file_ntcreate for a batch oplock if the client asked us to do so,
even if it did not ask for an oplock in the first place. Did not test it, but
I think this is bogus anyway.

Volker
Modified:
   branches/SAMBA_3_0/source/smbd/nttrans.c


Changeset:
Modified: branches/SAMBA_3_0/source/smbd/nttrans.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/nttrans.c	2007-03-07 13:57:32 UTC (rev 21747)
+++ branches/SAMBA_3_0/source/smbd/nttrans.c	2007-03-07 14:25:07 UTC (rev 21748)
@@ -491,7 +491,9 @@
 			(unsigned int)create_options,
 			(unsigned int)root_dir_fid ));
 
-	/* If it's an IPC, use the pipe handler. */
+	/*
+	 * If it's an IPC, use the pipe handler.
+	 */
 
 	if (IS_IPC(conn)) {
 		if (lp_nt_pipe_support()) {
@@ -669,14 +671,14 @@
 	 */
 
 	if(create_options & FILE_DIRECTORY_FILE) {
-		oplock_request = 0;
-		
+
 		/* Can't open a temp directory. IFS kit test. */
 		if (file_attributes & FILE_ATTRIBUTE_TEMPORARY) {
 			END_PROFILE(SMBntcreateX);
 			return ERROR_NT(NT_STATUS_INVALID_PARAMETER);
 		}
 
+		oplock_request = 0;
 		status = open_directory(conn, fname, &sbuf,
 					access_mask,
 					share_access,
@@ -723,6 +725,7 @@
 					new_file_attributes,
 					oplock_request,
 					&info, &fsp);
+
 		if (!NT_STATUS_IS_OK(status)) { 
 			/* We cheat here. There are two cases we
 			 * care about. One is a directory rename,
@@ -775,7 +778,6 @@
 					return ERROR_NT(status);
 				}
 			} else {
-
 				restore_case_semantics(conn, file_attributes);
 				END_PROFILE(SMBntcreateX);
 				if (open_was_deferred(SVAL(inbuf,smb_mid))) {
@@ -788,7 +790,7 @@
 	}
 		
 	restore_case_semantics(conn, file_attributes);
-		
+
 	file_len = sbuf.st_size;
 	fattr = dos_mode(conn,fname,&sbuf);
 	if(fattr == 0) {
@@ -873,8 +875,8 @@
 		SIVAL(p,0,info);
 	}
 	p += 4;
-	
-	/* Create time. */  
+
+	/* Create time. */
 	c_timespec = get_create_timespec(&sbuf,lp_fake_dir_create_times(SNUM(conn)));
 	a_timespec = get_atimespec(&sbuf);
 	m_timespec = get_mtimespec(&sbuf);
@@ -885,7 +887,7 @@
 		dos_filetime_timespec(&m_timespec);
 	}
 
-	put_long_date_timespec(p, c_timespec);
+	put_long_date_timespec(p, c_timespec); /* create time. */
 	p += 8;
 	put_long_date_timespec(p, a_timespec); /* access time */
 	p += 8;
@@ -1254,7 +1256,9 @@
 	}
 
 	oplock_request = (flags & REQUEST_OPLOCK) ? EXCLUSIVE_OPLOCK : 0;
-	oplock_request |= (flags & REQUEST_BATCH_OPLOCK) ? BATCH_OPLOCK : 0;
+	if (oplock_request) {
+		oplock_request |= (flags & REQUEST_BATCH_OPLOCK) ? BATCH_OPLOCK : 0;
+	}
 
 	/*
 	 * Ordinary file or directory.
@@ -1323,14 +1327,13 @@
 			return ERROR_NT(NT_STATUS_INVALID_PARAMETER);
 		}
 
-		oplock_request = 0;
-
 		/*
 		 * We will get a create directory here if the Win32
 		 * app specified a security descriptor in the 
 		 * CreateDirectory() call.
 		 */
 
+		oplock_request = 0;
 		status = open_directory(conn, fname, &sbuf,
 					access_mask,
 					share_access,



More information about the samba-cvs mailing list