diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-07-16 14:00:18 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-07-16 14:00:18 +1000 |
commit | e92125e6319d49185a3d0456a8a0e5c1b8d364e7 (patch) | |
tree | 04e5ff58c418118219b05d25e1935c07c3304a15 /source4/ntvfs | |
parent | 376b2a29d6a5d56be8539beec80540772cda875e (diff) | |
download | samba-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')
-rw-r--r-- | source4/ntvfs/posix/pvfs_open.c | 13 |
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)) { |