summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-04-04 21:58:55 +0000
committerJeremy Allison <jra@samba.org>2003-04-04 21:58:55 +0000
commitd5f235912fe5802a0698f0b56328a9a3b5f903fc (patch)
tree584e2ba6f857eab9dc35858409415fd11d3a24bf /source3/smbd
parent34226f1bd4d90ffe0f324277b11bbc4f2b575740 (diff)
downloadsamba-d5f235912fe5802a0698f0b56328a9a3b5f903fc.tar.gz
samba-d5f235912fe5802a0698f0b56328a9a3b5f903fc.tar.bz2
samba-d5f235912fe5802a0698f0b56328a9a3b5f903fc.zip
Re-fix regression noticed by Tom Schaefer <tom@umsl.edu> due to
correct delete on close semantics change. Jeremy. (This used to be commit 7a45b45490e6001c17fc89aabfa802f76fa3fe5e)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/close.c2
-rw-r--r--source3/smbd/trans2.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/source3/smbd/close.c b/source3/smbd/close.c
index 4798d62db8..9cb191c4e2 100644
--- a/source3/smbd/close.c
+++ b/source3/smbd/close.c
@@ -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);
}
/*
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 4129852f77..7b8b7e3a4f 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -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;