svn commit: samba r20534 - in branches/SAMBA_3_0_24/source/smbd: .

jra at samba.org jra at samba.org
Thu Jan 4 22:52:09 GMT 2007


Author: jra
Date: 2007-01-04 22:52:09 +0000 (Thu, 04 Jan 2007)
New Revision: 20534

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

Log:
Final merge of Volker's work - we should be in sync
on the file server code now except for the change
notify code.

"Closing a dir with del-on-close set requires the same as files: Don't actually
unlink/rmdir if another process still has it open.

Jeremy, this is a potential merger to 3.0.24."

Jeremy.

Modified:
   branches/SAMBA_3_0_24/source/smbd/close.c


Changeset:
Modified: branches/SAMBA_3_0_24/source/smbd/close.c
===================================================================
--- branches/SAMBA_3_0_24/source/smbd/close.c	2007-01-04 22:40:44 UTC (rev 20533)
+++ branches/SAMBA_3_0_24/source/smbd/close.c	2007-01-04 22:52:09 UTC (rev 20534)
@@ -392,6 +392,18 @@
 
 	delete_dir = (lck->delete_on_close | lck->initial_delete_on_close);
 
+	if (delete_dir) {
+		int i;
+		/* See if others still have the dir open. If this is the
+		 * case, then don't delete */
+		for (i=0; i<lck->num_share_modes; i++) {
+			if (is_valid_share_mode_entry(&lck->share_modes[i])) {
+				delete_dir = False;
+				break;
+			}
+		}
+	}
+
 	if ((close_type == NORMAL_CLOSE || close_type == SHUTDOWN_CLOSE) &&
 				delete_dir &&
 				lck->delete_token) {



More information about the samba-cvs mailing list