svn commit: samba r20781 - in branches: SAMBA_3_0/source/smbd SAMBA_3_0_24/source/smbd

jra at samba.org jra at samba.org
Sun Jan 14 19:43:07 GMT 2007


Author: jra
Date: 2007-01-14 19:43:06 +0000 (Sun, 14 Jan 2007)
New Revision: 20781

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

Log:
Fix a couple of paths found by Volker where we weren't
correctly handling deferred opens.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/smbd/nttrans.c
   branches/SAMBA_3_0/source/smbd/trans2.c
   branches/SAMBA_3_0_24/source/smbd/nttrans.c
   branches/SAMBA_3_0_24/source/smbd/trans2.c


Changeset:
Modified: branches/SAMBA_3_0/source/smbd/nttrans.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/nttrans.c	2007-01-14 19:08:14 UTC (rev 20780)
+++ branches/SAMBA_3_0/source/smbd/nttrans.c	2007-01-14 19:43:06 UTC (rev 20781)
@@ -1853,8 +1853,14 @@
 
 	status = rename_internals(conn, fsp->fsp_name,
 				  new_name, 0, replace_if_exists, path_contains_wcard);
-	if (!NT_STATUS_IS_OK(status))
+
+	if (!NT_STATUS_IS_OK(status)) {
+		if (open_was_deferred(SVAL(inbuf,smb_mid))) {
+			/* We have re-scheduled this call. */
+			return -1;
+		}
 		return ERROR_NT(status);
+	}
 
 	/*
 	 * Rename was successful.

Modified: branches/SAMBA_3_0/source/smbd/trans2.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/trans2.c	2007-01-14 19:08:14 UTC (rev 20780)
+++ branches/SAMBA_3_0/source/smbd/trans2.c	2007-01-14 19:43:06 UTC (rev 20781)
@@ -4459,9 +4459,15 @@
 					fname, newname ));
 				status = rename_internals(conn, fname, base_name, 0, overwrite, False);
 			}
+
 			if (!NT_STATUS_IS_OK(status)) {
+				if (open_was_deferred(SVAL(inbuf,smb_mid))) {
+					/* We have re-scheduled this call. */
+					return -1;
+				}
 				return ERROR_NT(status);
 			}
+
 			process_pending_change_notify_queue((time_t)0);
 			SSVAL(params,0,0);
 			send_trans2_replies(outbuf, bufsize, params, 2, *ppdata, 0, max_data_bytes);

Modified: branches/SAMBA_3_0_24/source/smbd/nttrans.c
===================================================================
--- branches/SAMBA_3_0_24/source/smbd/nttrans.c	2007-01-14 19:08:14 UTC (rev 20780)
+++ branches/SAMBA_3_0_24/source/smbd/nttrans.c	2007-01-14 19:43:06 UTC (rev 20781)
@@ -1853,8 +1853,14 @@
 
 	status = rename_internals(conn, fsp->fsp_name,
 				  new_name, 0, replace_if_exists, path_contains_wcard);
-	if (!NT_STATUS_IS_OK(status))
+
+	if (!NT_STATUS_IS_OK(status)) {
+		if (open_was_deferred(SVAL(inbuf,smb_mid))) {
+			/* We have re-scheduled this call. */
+			return -1;
+		}
 		return ERROR_NT(status);
+	}
 
 	/*
 	 * Rename was successful.

Modified: branches/SAMBA_3_0_24/source/smbd/trans2.c
===================================================================
--- branches/SAMBA_3_0_24/source/smbd/trans2.c	2007-01-14 19:08:14 UTC (rev 20780)
+++ branches/SAMBA_3_0_24/source/smbd/trans2.c	2007-01-14 19:43:06 UTC (rev 20781)
@@ -4459,9 +4459,15 @@
 					fname, newname ));
 				status = rename_internals(conn, fname, base_name, 0, overwrite, False);
 			}
+
 			if (!NT_STATUS_IS_OK(status)) {
+				if (open_was_deferred(SVAL(inbuf,smb_mid))) {
+					/* We have re-scheduled this call. */
+					return -1;
+				}
 				return ERROR_NT(status);
 			}
+
 			process_pending_change_notify_queue((time_t)0);
 			SSVAL(params,0,0);
 			send_trans2_replies(outbuf, bufsize, params, 2, *ppdata, 0, max_data_bytes);



More information about the samba-cvs mailing list