Re-fix regression noticed by Tom Schaefer <tom@umsl.edu> due to
authorJeremy Allison <jra@samba.org>
Fri, 4 Apr 2003 21:58:42 +0000 (21:58 +0000)
committerJeremy Allison <jra@samba.org>
Fri, 4 Apr 2003 21:58:42 +0000 (21:58 +0000)
correct delete on close semantics change.
Jeremy.
(This used to be commit 55d0ab0e307e16389cc470fa04a9d7b44043a4da)

source3/smbd/close.c
source3/smbd/trans2.c

index 4798d62db8559b3a54f63a67a2049ba616f72810..9cb191c4e27e031d4d1d26750c5018f1ee4af2b2 100644 (file)
@@ -196,6 +196,7 @@ static int close_normal_file(files_struct *fsp, BOOL normal_close)
                DEBUG(5,("close_file: file %s. Delete on close was set and unlink failed \
 with error %s\n", fsp->fsp_name, strerror(errno) ));
                }
+               process_pending_change_notify_queue((time_t)0);
        }
 
        unlock_share_entry_fsp(fsp);
@@ -262,6 +263,7 @@ static int close_directory(files_struct *fsp, BOOL normal_close)
 
                if(ok)
                        remove_pending_change_notify_requests_by_filename(fsp);
+               process_pending_change_notify_queue((time_t)0);
        }
 
        /*
index 4129852f778370353f5b213dfeb397ca0f1d1de6..7b8b7e3a4f6c64e15156ff69ddf10fdfdb668c1e 100644 (file)
@@ -2130,6 +2130,9 @@ NTSTATUS set_delete_on_close_over_all(files_struct *fsp, BOOL delete_on_close)
        DEBUG(10,("set_delete_on_close_over_all: %s delete on close flag for fnum = %d, file %s\n",
                delete_on_close ? "Adding" : "Removing", fsp->fnum, fsp->fsp_name ));
 
+       if (fsp->is_directory || fsp->is_stat)
+               return NT_STATUS_OK;
+
        if (lock_share_entry_fsp(fsp) == False)
                return NT_STATUS_ACCESS_DENIED;