summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix/pvfs_open.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-10-18 11:47:13 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:00:00 -0500
commit384f87bd38c1133c90e2a57775f139532574e3cc (patch)
tree620191b0984eb721361e33b61301156fd140329c /source4/ntvfs/posix/pvfs_open.c
parenta03a7d0aea2884d4bf0e3fa993acf39189a37ddf (diff)
downloadsamba-384f87bd38c1133c90e2a57775f139532574e3cc.tar.gz
samba-384f87bd38c1133c90e2a57775f139532574e3cc.tar.bz2
samba-384f87bd38c1133c90e2a57775f139532574e3cc.zip
r3034: - fixed a bug in message dispatch, when the dispatch function called messaging_deregister()
- added a pvfs_lock_close_pending() hook to remove pending locks on file close - fixed the private ptr argument to messaging_deregister() in pvfs_wait - fixed a bug in continuing lock requests after a lock that is blocking a pending lock is removed - removed bogus brl_unlock() call in lock continue - corrected error code for LOCKING_ANDX_CHANGE_LOCKTYPE - expanded the lock cancel test suite to test lock cancel by unlock and by close - added a testsuite for LOCKING_ANDX_CHANGE_LOCKTYPE (This used to be commit 5ef80f034d4aa4dd6810532c63ad041bfc019cb8)
Diffstat (limited to 'source4/ntvfs/posix/pvfs_open.c')
-rw-r--r--source4/ntvfs/posix/pvfs_open.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source4/ntvfs/posix/pvfs_open.c b/source4/ntvfs/posix/pvfs_open.c
index 05c2bdda28..429f519bca 100644
--- a/source4/ntvfs/posix/pvfs_open.c
+++ b/source4/ntvfs/posix/pvfs_open.c
@@ -52,6 +52,8 @@ static int pvfs_fd_destructor(void *p)
{
struct pvfs_file *f = p;
+ pvfs_lock_close_pending(f->pvfs, f);
+
brl_close(f->pvfs->brl_context, &f->locking_key, f->fnum);
if (f->fd != -1) {
@@ -221,6 +223,8 @@ NTSTATUS pvfs_close(struct ntvfs_module_context *ntvfs,
return NT_STATUS_INVALID_HANDLE;
}
+ pvfs_lock_close_pending(pvfs, f);
+
status = brl_close(pvfs->brl_context, &f->locking_key, f->fnum);
if (!NT_STATUS_IS_OK(status)) {
return status;