svn commit: samba r12551 - in branches/SAMBA_4_0/source/torture: .

tridge at samba.org tridge at samba.org
Wed Dec 28 22:31:27 GMT 2005


Author: tridge
Date: 2005-12-28 22:31:26 +0000 (Wed, 28 Dec 2005)
New Revision: 12551

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

Log:

fixed oplock serialisation problem in gentest as well

Modified:
   branches/SAMBA_4_0/source/torture/gentest.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/gentest.c
===================================================================
--- branches/SAMBA_4_0/source/torture/gentest.c	2005-12-28 22:23:24 UTC (rev 12550)
+++ branches/SAMBA_4_0/source/torture/gentest.c	2005-12-28 22:31:26 UTC (rev 12551)
@@ -708,6 +708,16 @@
 	}
 }
 
+static void oplock_handler_close_recv(struct smbcli_request *req)
+{
+	NTSTATUS status;
+	status = smbcli_request_simple_recv(req);
+	if (!NT_STATUS_IS_OK(status)) {
+		printf("close failed in oplock_handler\n");
+		smb_panic("close failed in oplock_handler");
+	}
+}
+
 /*
   the oplock handler will either ack the break or close the file
 */
@@ -718,6 +728,7 @@
 	int i, j;
 	BOOL do_close;
 	struct smbcli_tree *tree = NULL;
+	struct smbcli_request *req;
 
 	srandom(current_op.seed);
 	do_close = gen_chance(50);
@@ -751,11 +762,17 @@
 	io.close.level = RAW_CLOSE_CLOSE;
 	io.close.in.fnum = fnum;
 	io.close.in.write_time = 0;
-	status = smb_raw_close(tree, &io);
+	req = smb_raw_close_send(tree, &io);
 
-	if (!NT_STATUS_IS_OK(status)) {
-		printf("WARNING: close failed in oplock_handler_close - %s\n", nt_errstr(status));
+	if (req == NULL) {
+		printf("WARNING: close failed in oplock_handler_close - %s\n", 
+		       nt_errstr(status));
+		return False;
 	}
+
+	req->async.fn = oplock_handler_close_recv;
+	req->async.private = NULL;
+
 	return True;
 }
 



More information about the samba-cvs mailing list