svn commit: samba r23151 - in branches: SAMBA_3_0/source/smbd	SAMBA_3_0_25/source/smbd SAMBA_3_0_26/source/smbd Author: jra
Date: 2007-05-26 01:26:09 +0000 (Sat, 26 May 2007)
New Revision: 23151

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

Log:
Re-arrange the logic so it looks identical to the
"file existed" case above. This has no functional
change but is easier to see that it's doing the
same thing.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/smbd/open.c
   branches/SAMBA_3_0_25/source/smbd/open.c
   branches/SAMBA_3_0_26/source/smbd/open.c


Changeset:
Modified: branches/SAMBA_3_0/source/smbd/open.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/open.c	2007-05-26 01:19:51 UTC (rev 23150)
+++ branches/SAMBA_3_0/source/smbd/open.c	2007-05-26 01:26:09 UTC (rev 23151)
@@ -1663,6 +1663,20 @@
 					 access_mask, share_access,
 					 create_options, &file_existed);
 
+		if (NT_STATUS_IS_OK(status)) {
+			/* We might be going to allow this open. Check oplock
+			 * status again. */
+			/* Second pass - send break for both batch or
+			 * exclusive oplocks. */
+			if (delay_for_oplocks(lck, fsp, 2, oplock_request)) {
+				schedule_defer_open(lck, request_time);
+				TALLOC_FREE(lck);
+				fd_close(conn, fsp);
+				file_free(fsp);
+				return NT_STATUS_SHARING_VIOLATION;
+			}
+		}
+
 		if (!NT_STATUS_IS_OK(status)) {
 			struct deferred_open_record state;
 
@@ -1686,14 +1700,6 @@
 			return status;
 		}
 
-		if (delay_for_oplocks(lck, fsp, 2, oplock_request)) {
-			schedule_defer_open(lck, request_time);
-			TALLOC_FREE(lck);
-			fd_close(conn, fsp);
-			file_free(fsp);
-			return NT_STATUS_SHARING_VIOLATION;
-		}
-
 		/*
 		 * We exit this block with the share entry *locked*.....
 		 */

Modified: branches/SAMBA_3_0_25/source/smbd/open.c
===================================================================
--- branches/SAMBA_3_0_25/source/smbd/open.c	2007-05-26 01:19:51 UTC (rev 23150)
+++ branches/SAMBA_3_0_25/source/smbd/open.c	2007-05-26 01:26:09 UTC (rev 23151)
@@ -1665,6 +1665,20 @@
 					 access_mask, share_access,
 					 create_options, &file_existed);
 
+		if (NT_STATUS_IS_OK(status)) {
+			/* We might be going to allow this open. Check oplock
+			 * status again. */
+			/* Second pass - send break for both batch or
+			 * exclusive oplocks. */
+			if (delay_for_oplocks(lck, fsp, 2, oplock_request)) {
+				schedule_defer_open(lck, request_time);
+				TALLOC_FREE(lck);
+				fd_close(conn, fsp);
+				file_free(fsp);
+				return NT_STATUS_SHARING_VIOLATION;
+			}
+		}
+
 		if (!NT_STATUS_IS_OK(status)) {
 			struct deferred_open_record state;
 
@@ -1688,14 +1702,6 @@
 			return status;
 		}
 
-		if (delay_for_oplocks(lck, fsp, 2, oplock_request)) {
-			schedule_defer_open(lck, request_time);
-			TALLOC_FREE(lck);
-			fd_close(conn, fsp);
-			file_free(fsp);
-			return NT_STATUS_SHARING_VIOLATION;
-		}
-
 		/*
 		 * We exit this block with the share entry *locked*.....
 		 */

Modified: branches/SAMBA_3_0_26/source/smbd/open.c
===================================================================
--- branches/SAMBA_3_0_26/source/smbd/open.c	2007-05-26 01:19:51 UTC (rev 23150)
+++ branches/SAMBA_3_0_26/source/smbd/open.c	2007-05-26 01:26:09 UTC (rev 23151)
@@ -1667,6 +1667,20 @@
 					 access_mask, share_access,
 					 create_options, &file_existed);
 
+		if (NT_STATUS_IS_OK(status)) {
+			/* We might be going to allow this open. Check oplock
+			 * status again. */
+			/* Second pass - send break for both batch or
+			 * exclusive oplocks. */
+			if (delay_for_oplocks(lck, fsp, 2, oplock_request)) {
+				schedule_defer_open(lck, request_time);
+				TALLOC_FREE(lck);
+				fd_close(conn, fsp);
+				file_free(fsp);
+				return NT_STATUS_SHARING_VIOLATION;
+			}
+		}
+
 		if (!NT_STATUS_IS_OK(status)) {
 			struct deferred_open_record state;
 
@@ -1690,14 +1704,6 @@
 			return status;
 		}
 
-		if (delay_for_oplocks(lck, fsp, 2, oplock_request)) {
-			schedule_defer_open(lck, request_time);
-			TALLOC_FREE(lck);
-			fd_close(conn, fsp);
-			file_free(fsp);
-			return NT_STATUS_SHARING_VIOLATION;
-		}
-
 		/*
 		 * We exit this block with the share entry *locked*.....
 		 */

