svn commit: samba r14672 - in branches/SAMBA_4_0/source/ntvfs/cifs: .

metze at samba.org metze at samba.org
Thu Mar 23 11:13:20 GMT 2006


Author: metze
Date: 2006-03-23 11:13:19 +0000 (Thu, 23 Mar 2006)
New Revision: 14672

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

Log:
the async_info desctructor needs access to the private struct,
so free async info explicit...

I hope to find a generic way later, so that the ntvfs modules doesn't need to 
take care that much...

metze
Modified:
   branches/SAMBA_4_0/source/ntvfs/cifs/vfs_cifs.c


Changeset:
Modified: branches/SAMBA_4_0/source/ntvfs/cifs/vfs_cifs.c
===================================================================
--- branches/SAMBA_4_0/source/ntvfs/cifs/vfs_cifs.c	2006-03-23 00:57:27 UTC (rev 14671)
+++ branches/SAMBA_4_0/source/ntvfs/cifs/vfs_cifs.c	2006-03-23 11:13:19 UTC (rev 14672)
@@ -184,7 +184,15 @@
 static NTSTATUS cvfs_disconnect(struct ntvfs_module_context *ntvfs)
 {
 	struct cvfs_private *private = ntvfs->private_data;
+	struct async_info *a, *an;
 
+	/* first cleanup pending requests */
+	for (a=private->pending; a; a = an) {
+		an = a->next;
+		smbcli_request_destroy(a->c_req);
+		talloc_free(a);
+	}
+
 	talloc_free(private);
 	ntvfs->private_data = NULL;
 
@@ -211,6 +219,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smbcli_request_simple_recv(c_req);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -268,6 +277,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_ioctl_recv(c_req, req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -321,6 +331,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_pathinfo_recv(c_req, req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -352,6 +363,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_fileinfo_recv(c_req, req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -405,6 +417,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_open_recv(c_req, req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -509,6 +522,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_read_recv(c_req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -545,6 +559,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_write_recv(c_req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -581,6 +596,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_seek_recv(c_req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -767,6 +783,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_fsinfo_recv(c_req, req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -846,6 +863,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_trans2_recv(c_req, req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 
@@ -885,6 +903,7 @@
 	struct async_info *async = c_req->async.private;
 	struct ntvfs_request *req = async->req;
 	req->async_states->status = smb_raw_changenotify_recv(c_req, req, async->parms);
+	talloc_free(async);
 	req->async_states->send_fn(req);
 }
 



More information about the samba-cvs mailing list