diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-03-07 07:38:44 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-03-07 07:38:44 +1100 |
commit | 449c0c52428e79ffcaa520c590df468b10397fb3 (patch) | |
tree | eaf0e4ad65284ffe72194d11e1a970da251eea2d /source4/smb_server | |
parent | 8b24d248b7c928fd3b20f95ede34302ca274c4ae (diff) | |
parent | 7eaa6b5f9a316d658c3ecf98b44a4cdf8a2de512 (diff) | |
download | samba-449c0c52428e79ffcaa520c590df468b10397fb3.tar.gz samba-449c0c52428e79ffcaa520c590df468b10397fb3.tar.bz2 samba-449c0c52428e79ffcaa520c590df468b10397fb3.zip |
Merge branch 'v4-0-test' of git://git.samba.org/samba into 4-0-local
(This used to be commit a6997c333cdd68dfba8a069df448836ff487787f)
Diffstat (limited to 'source4/smb_server')
-rw-r--r-- | source4/smb_server/smb/service.c | 6 | ||||
-rw-r--r-- | source4/smb_server/smb2/tcon.c | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/source4/smb_server/smb/service.c b/source4/smb_server/smb/service.c index 35b3653026..52471c09c9 100644 --- a/source4/smb_server/smb/service.c +++ b/source4/smb_server/smb/service.c @@ -36,6 +36,7 @@ static NTSTATUS make_connection_scfg(struct smbsrv_request *req, { struct smbsrv_tcon *tcon; NTSTATUS status; + uint64_t ntvfs_caps = 0; tcon = smbsrv_smb_tcon_new(req->smb_conn, scfg->name); if (!tcon) { @@ -44,9 +45,14 @@ static NTSTATUS make_connection_scfg(struct smbsrv_request *req, } req->tcon = tcon; + if (req->smb_conn->negotiate.client_caps & CAP_LEVEL_II_OPLOCKS) { + ntvfs_caps |= NTVFS_CLIENT_CAP_LEVEL_II_OPLOCKS; + } + /* init ntvfs function pointers */ status = ntvfs_init_connection(tcon, scfg, type, req->smb_conn->negotiate.protocol, + ntvfs_caps, req->smb_conn->connection->event.ctx, req->smb_conn->connection->msg_ctx, req->smb_conn->lp_ctx, diff --git a/source4/smb_server/smb2/tcon.c b/source4/smb_server/smb2/tcon.c index 7f7d558b16..040947f84f 100644 --- a/source4/smb_server/smb2/tcon.c +++ b/source4/smb_server/smb2/tcon.c @@ -245,6 +245,7 @@ static NTSTATUS smb2srv_tcon_backend(struct smb2srv_request *req, union smb_tcon const char *service = io->smb2.in.path; struct share_config *scfg; const char *sharetype; + uint64_t ntvfs_caps = 0; if (strncmp(service, "\\\\", 2) == 0) { const char *p = strchr(service+2, '\\'); @@ -283,9 +284,12 @@ static NTSTATUS smb2srv_tcon_backend(struct smb2srv_request *req, union smb_tcon } req->tcon = tcon; + ntvfs_caps = NTVFS_CLIENT_CAP_LEVEL_II_OPLOCKS; + /* init ntvfs function pointers */ status = ntvfs_init_connection(tcon, scfg, type, req->smb_conn->negotiate.protocol, + ntvfs_caps, req->smb_conn->connection->event.ctx, req->smb_conn->connection->msg_ctx, req->smb_conn->lp_ctx, |