summaryrefslogtreecommitdiff
path: root/source4/ntvfs/posix
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2008-07-16 14:00:18 +1000
committerAndrew Bartlett <abartlet@samba.org>2008-07-16 14:00:18 +1000
commite92125e6319d49185a3d0456a8a0e5c1b8d364e7 (patch)
tree04e5ff58c418118219b05d25e1935c07c3304a15 /source4/ntvfs/posix
parent376b2a29d6a5d56be8539beec80540772cda875e (diff)
downloadsamba-e92125e6319d49185a3d0456a8a0e5c1b8d364e7.tar.gz
samba-e92125e6319d49185a3d0456a8a0e5c1b8d364e7.tar.bz2
samba-e92125e6319d49185a3d0456a8a0e5c1b8d364e7.zip
Ignore and handle more NT Create & X options.
The MS-SMB document explains that some of these options should be ignored. The test proves it. /* Must be ignored by the server, per MS-SMB 2.2.8 */ /* Must be ignored by the server, per MS-SMB 2.2.8 */ If we implement HSM in samba4 (likely) we should honour this bit. /* Don't pull this file off tape in a HSM system */ Andrew Bartlett (This used to be commit 502739ff90d56d2c9aabe8e224317f6ceb175c17)
Diffstat (limited to 'source4/ntvfs/posix')
-rw-r--r--source4/ntvfs/posix/pvfs_open.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/source4/ntvfs/posix/pvfs_open.c b/source4/ntvfs/posix/pvfs_open.c
index 43203086f8..5302fc3f50 100644
--- a/source4/ntvfs/posix/pvfs_open.c
+++ b/source4/ntvfs/posix/pvfs_open.c
@@ -1206,11 +1206,22 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
return NT_STATUS_INVALID_PARAMETER;
}
- /* some create options are not supported */
if (create_options & NTCREATEX_OPTIONS_NOT_SUPPORTED_MASK) {
return NT_STATUS_NOT_SUPPORTED;
}
+ /* TODO: When we implement HSM, add a hook here not to pull
+ * the actual file off tape, when this option is passed from
+ * the client */
+ if (create_options & NTCREATEX_OPTIONS_NO_RECALL) {
+ /* no-op */
+ }
+
+ /* These options are ignored */
+ if (create_options & (NTCREATEX_OPTIONS_FREE_SPACE_QUERY | NTCREATEX_OPTIONS_OPFILTER)) {
+ /* no-op */
+ }
+
/* other create options are not allowed */
if ((create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE) &&
!(access_mask & SEC_STD_DELETE)) {