svn commit: samba r21645 - in branches: SAMBA_3_0/source/smbd SAMBA_3_0_25/source/smbd

jra at samba.org jra at samba.org
Thu Mar 1 23:03:47 GMT 2007


Author: jra
Date: 2007-03-01 23:03:46 +0000 (Thu, 01 Mar 2007)
New Revision: 21645

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

Log:
Make posix_unlink work - on open files too !
Jeremy.

Modified:
   branches/SAMBA_3_0/source/smbd/trans2.c
   branches/SAMBA_3_0_25/source/smbd/trans2.c


Changeset:
Modified: branches/SAMBA_3_0/source/smbd/trans2.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/trans2.c	2007-03-01 22:44:02 UTC (rev 21644)
+++ branches/SAMBA_3_0/source/smbd/trans2.c	2007-03-01 23:03:46 UTC (rev 21645)
@@ -4030,6 +4030,12 @@
 	delete_on_close = (CVAL(pdata,0) ? True : False);
 	dosmode = dos_mode(conn, fname, psbuf);
 
+	DEBUG(10,("smb_set_file_disposition_info: file %s, dosmode = %u, "
+		"delete_on_close = %u\n",
+		fsp->fsp_name,
+		(unsigned int)dosmode,
+		(unsigned int)delete_on_close ));
+
 	status = can_set_delete_on_close(fsp, delete_on_close, dosmode);
  
 	if (!NT_STATUS_IS_OK(status)) {
@@ -5193,17 +5199,34 @@
 					&info,				
 					&fsp);
 	} else {
+		char del = 1;
+
 		status = open_file_ntcreate(conn,
 				fname,
 				psbuf,
 				DELETE_ACCESS,
 				FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
 				FILE_OPEN,
-				FILE_DELETE_ON_CLOSE,
+				0,
 				FILE_FLAG_POSIX_SEMANTICS|0777,
 				INTERNAL_OPEN_ONLY,
 				&info,
 				&fsp);
+		/* 
+		 * For file opens we must set the delete on close
+		 * after the open.
+		 */
+
+		if (!NT_STATUS_IS_OK(status)) {
+			return status;
+		}
+
+		status = smb_set_file_disposition_info(conn,
+							&del,
+							1,
+							fsp,
+							fname,
+							psbuf);
 	}
 
 	if (!NT_STATUS_IS_OK(status)) {

Modified: branches/SAMBA_3_0_25/source/smbd/trans2.c
===================================================================
--- branches/SAMBA_3_0_25/source/smbd/trans2.c	2007-03-01 22:44:02 UTC (rev 21644)
+++ branches/SAMBA_3_0_25/source/smbd/trans2.c	2007-03-01 23:03:46 UTC (rev 21645)
@@ -4030,6 +4030,12 @@
 	delete_on_close = (CVAL(pdata,0) ? True : False);
 	dosmode = dos_mode(conn, fname, psbuf);
 
+	DEBUG(10,("smb_set_file_disposition_info: file %s, dosmode = %u, "
+		"delete_on_close = %u\n",
+		fsp->fsp_name,
+		(unsigned int)dosmode,
+		(unsigned int)delete_on_close ));
+
 	status = can_set_delete_on_close(fsp, delete_on_close, dosmode);
  
 	if (!NT_STATUS_IS_OK(status)) {
@@ -5193,17 +5199,34 @@
 					&info,				
 					&fsp);
 	} else {
+		char del = 1;
+
 		status = open_file_ntcreate(conn,
 				fname,
 				psbuf,
 				DELETE_ACCESS,
 				FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
 				FILE_OPEN,
-				FILE_DELETE_ON_CLOSE,
+				0,
 				FILE_FLAG_POSIX_SEMANTICS|0777,
 				INTERNAL_OPEN_ONLY,
 				&info,
 				&fsp);
+		/* 
+		 * For file opens we must set the delete on close
+		 * after the open.
+		 */
+
+		if (!NT_STATUS_IS_OK(status)) {
+			return status;
+		}
+
+		status = smb_set_file_disposition_info(conn,
+							&del,
+							1,
+							fsp,
+							fname,
+							psbuf);
 	}
 
 	if (!NT_STATUS_IS_OK(status)) {



More information about the samba-cvs mailing list