summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix/pvfs_lock.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-11-08 03:54:12 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:40 -0500
commit19fc6e8f511f028aa40122cc7e40c83908d07ebe (patch)
tree43fe216bd4812568fc39a01e72ec777bf398066d /source4/ntvfs/posix/pvfs_lock.c
parentce51a06f029e78212b3f02e1433f050bec394152 (diff)
downloadsamba-19fc6e8f511f028aa40122cc7e40c83908d07ebe.tar.gz
samba-19fc6e8f511f028aa40122cc7e40c83908d07ebe.tar.bz2
samba-19fc6e8f511f028aa40122cc7e40c83908d07ebe.zip
r3615: split out struct pvfs_file_handle from struct pvfs_file. This is in
preparation for adding code to pass the BASE-DENY1 and BASE-DENYDOS tests, which require a shared filesystem handle for some specific combinations of two DENY_DOS opens on the same connection. (This used to be commit 6e4fdf01d19051e3923d7703dbf990fc1722b09a)
Diffstat (limited to 'source4/ntvfs/posix/pvfs_lock.c')
-rw-r--r--source4/ntvfs/posix/pvfs_lock.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/source4/ntvfs/posix/pvfs_lock.c b/source4/ntvfs/posix/pvfs_lock.c
index c8fc6c2de3..a2691cb550 100644
--- a/source4/ntvfs/posix/pvfs_lock.c
+++ b/source4/ntvfs/posix/pvfs_lock.c
@@ -41,7 +41,7 @@ NTSTATUS pvfs_check_lock(struct pvfs_state *pvfs,
}
return brl_locktest(pvfs->brl_context,
- &f->locking_key,
+ &f->handle->locking_key,
f->fnum,
smbpid,
offset, count, rw);
@@ -73,7 +73,7 @@ static void pvfs_lock_async_failed(struct pvfs_state *pvfs,
/* undo the locks we just did */
for (i=i-1;i>=0;i--) {
brl_unlock(pvfs->brl_context,
- &f->locking_key,
+ &f->handle->locking_key,
locks[i].pid,
f->fnum,
locks[i].offset,
@@ -118,7 +118,7 @@ static void pvfs_pending_lock_continue(void *private, enum pvfs_wait_notice reas
DLIST_REMOVE(f->pending_list, pending);
status = brl_lock(pvfs->brl_context,
- &f->locking_key,
+ &f->handle->locking_key,
req->smbpid,
f->fnum,
locks[pending->pending_lock].offset,
@@ -133,7 +133,8 @@ static void pvfs_pending_lock_continue(void *private, enum pvfs_wait_notice reas
don't need the pending lock any more */
if (NT_STATUS_IS_OK(status) || timed_out) {
NTSTATUS status2;
- status2 = brl_remove_pending(pvfs->brl_context, &f->locking_key, pending);
+ status2 = brl_remove_pending(pvfs->brl_context,
+ &f->handle->locking_key, pending);
if (!NT_STATUS_IS_OK(status2)) {
DEBUG(0,("pvfs_lock: failed to remove pending lock - %s\n", nt_errstr(status2)));
}
@@ -170,7 +171,7 @@ static void pvfs_pending_lock_continue(void *private, enum pvfs_wait_notice reas
}
status = brl_lock(pvfs->brl_context,
- &f->locking_key,
+ &f->handle->locking_key,
req->smbpid,
f->fnum,
locks[i].offset,
@@ -214,7 +215,7 @@ void pvfs_lock_close(struct pvfs_state *pvfs, struct pvfs_file *f)
if (f->lock_count || f->pending_list) {
DEBUG(5,("pvfs_lock: removing %.0f locks on close\n",
(double)f->lock_count));
- brl_close(f->pvfs->brl_context, &f->locking_key, f->fnum);
+ brl_close(f->pvfs->brl_context, &f->handle->locking_key, f->fnum);
f->lock_count = 0;
}
@@ -289,7 +290,7 @@ NTSTATUS pvfs_lock(struct ntvfs_module_context *ntvfs,
return NT_STATUS_INVALID_HANDLE;
}
- if (f->name->dos.attrib & FILE_ATTRIBUTE_DIRECTORY) {
+ if (f->handle->name->dos.attrib & FILE_ATTRIBUTE_DIRECTORY) {
return NT_STATUS_FILE_IS_A_DIRECTORY;
}
@@ -337,7 +338,7 @@ NTSTATUS pvfs_lock(struct ntvfs_module_context *ntvfs,
for (i=0;i<lck->lockx.in.ulock_cnt;i++) {
status = brl_unlock(pvfs->brl_context,
- &f->locking_key,
+ &f->handle->locking_key,
locks[i].pid,
f->fnum,
locks[i].offset,
@@ -356,7 +357,7 @@ NTSTATUS pvfs_lock(struct ntvfs_module_context *ntvfs,
}
status = brl_lock(pvfs->brl_context,
- &f->locking_key,
+ &f->handle->locking_key,
locks[i].pid,
f->fnum,
locks[i].offset,
@@ -379,7 +380,7 @@ NTSTATUS pvfs_lock(struct ntvfs_module_context *ntvfs,
/* undo the locks we just did */
for (i=i-1;i>=0;i--) {
brl_unlock(pvfs->brl_context,
- &f->locking_key,
+ &f->handle->locking_key,
locks[i].pid,
f->fnum,
locks[i].offset,