diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-11-08 03:54:12 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:40 -0500 |
commit | 19fc6e8f511f028aa40122cc7e40c83908d07ebe (patch) | |
tree | 43fe216bd4812568fc39a01e72ec777bf398066d /source4/ntvfs/posix/pvfs_qfileinfo.c | |
parent | ce51a06f029e78212b3f02e1433f050bec394152 (diff) | |
download | samba-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_qfileinfo.c')
-rw-r--r-- | source4/ntvfs/posix/pvfs_qfileinfo.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/source4/ntvfs/posix/pvfs_qfileinfo.c b/source4/ntvfs/posix/pvfs_qfileinfo.c index 5847b1a2cc..fee3b19c9f 100644 --- a/source4/ntvfs/posix/pvfs_qfileinfo.c +++ b/source4/ntvfs/posix/pvfs_qfileinfo.c @@ -242,27 +242,29 @@ NTSTATUS pvfs_qfileinfo(struct ntvfs_module_context *ntvfs, { struct pvfs_state *pvfs = ntvfs->private_data; struct pvfs_file *f; + struct pvfs_file_handle *h; NTSTATUS status; f = pvfs_find_fd(pvfs, req, info->generic.in.fnum); if (!f) { return NT_STATUS_INVALID_HANDLE; } + h = f->handle; /* update the file information */ - status = pvfs_resolve_name_fd(pvfs, f->fd, f->name); + status = pvfs_resolve_name_fd(pvfs, h->fd, h->name); if (!NT_STATUS_IS_OK(status)) { return status; } - status = pvfs_map_fileinfo(pvfs, req, f->name, info, f->fd); + status = pvfs_map_fileinfo(pvfs, req, h->name, info, h->fd); /* a qfileinfo can fill in a bit more info than a qpathinfo - now modify the levels that need to be fixed up */ switch (info->generic.level) { case RAW_FILEINFO_STANDARD_INFO: case RAW_FILEINFO_STANDARD_INFORMATION: - if (f->create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE) { + if (h->create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE) { info->standard_info.out.delete_pending = 1; info->standard_info.out.nlink--; } @@ -270,22 +272,22 @@ NTSTATUS pvfs_qfileinfo(struct ntvfs_module_context *ntvfs, case RAW_FILEINFO_ALL_INFO: case RAW_FILEINFO_ALL_INFORMATION: - if (f->create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE) { + if (h->create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE) { info->all_info.out.delete_pending = 1; info->all_info.out.nlink--; } break; case RAW_FILEINFO_POSITION_INFORMATION: - info->position_information.out.position = f->position; + info->position_information.out.position = h->position; break; case RAW_FILEINFO_ACCESS_INFORMATION: - info->access_information.out.access_flags = f->access_mask; + info->access_information.out.access_flags = h->access_mask; break; case RAW_FILEINFO_MODE_INFORMATION: - info->mode_information.out.mode = f->mode; + info->mode_information.out.mode = h->mode; break; default: |