Print this page
NEX-15069 smtorture smb2.create.blob is failed
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-15069 smtorture smb2.create.blob is failed
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-1643 dtrace provider for smbsrv
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
SMB-11 SMB2 message parse & dispatch
SMB-12 SMB2 Negotiate Protocol
SMB-13 SMB2 Session Setup
SMB-14 SMB2 Logoff
SMB-15 SMB2 Tree Connect
SMB-16 SMB2 Tree Disconnect
SMB-17 SMB2 Create
SMB-18 SMB2 Close
SMB-19 SMB2 Flush
SMB-20 SMB2 Read
SMB-21 SMB2 Write
SMB-22 SMB2 Lock/Unlock
SMB-23 SMB2 Ioctl
SMB-24 SMB2 Cancel
SMB-25 SMB2 Echo
SMB-26 SMB2 Query Dir
SMB-27 SMB2 Change Notify
SMB-28 SMB2 Query Info
SMB-29 SMB2 Set Info
SMB-30 SMB2 Oplocks
SMB-53 SMB2 Create Context options
(SMB2 code review cleanup 1, 2, 3)
SMB-63 taskq_create_proc ... TQ_DYNAMIC puts tasks in p0
re #11974 CIFS Share - Tree connect fails from Windows 7 Clients
re #10733 Windows 7 directory listing keeps restarting
*** 18,28 ****
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
! * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
*/
#include <smbsrv/smb_kproto.h>
/*
--- 18,28 ----
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
! * Copyright 2017 Nexenta Systems, Inc. All rights reserved.
*/
#include <smbsrv/smb_kproto.h>
/*
*** 201,218 ****
/* *** smb_com_search *** */
smb_sdrc_t
smb_pre_search(smb_request_t *sr)
{
! DTRACE_SMB_1(op__Search__start, smb_request_t *, sr);
return (SDRC_SUCCESS);
}
void
smb_post_search(smb_request_t *sr)
{
! DTRACE_SMB_1(op__Search__done, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_search(smb_request_t *sr)
{
--- 201,218 ----
/* *** smb_com_search *** */
smb_sdrc_t
smb_pre_search(smb_request_t *sr)
{
! DTRACE_SMB_START(op__Search, smb_request_t *, sr);
return (SDRC_SUCCESS);
}
void
smb_post_search(smb_request_t *sr)
{
! DTRACE_SMB_DONE(op__Search, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_search(smb_request_t *sr)
{
*** 298,307 ****
--- 298,308 ----
if (status == NT_STATUS_ACCESS_DENIED)
smbsr_warn(sr, NT_STATUS_NO_MORE_FILES,
ERRDOS, ERROR_NO_MORE_FILES);
return (SDRC_ERROR);
}
+ odid = od->d_odid;
} else {
if (smb_mbc_decodef(&sr->smb_data, "b12.wwl",
&resume_char, &index, &odid, &client_key) != 0) {
return (SDRC_ERROR);
}
*** 392,409 ****
/* *** smb_com_find *** */
smb_sdrc_t
smb_pre_find(smb_request_t *sr)
{
! DTRACE_SMB_1(op__Find__start, smb_request_t *, sr);
return (SDRC_SUCCESS);
}
void
smb_post_find(smb_request_t *sr)
{
! DTRACE_SMB_1(op__Find__done, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_find(smb_request_t *sr)
{
--- 393,410 ----
/* *** smb_com_find *** */
smb_sdrc_t
smb_pre_find(smb_request_t *sr)
{
! DTRACE_SMB_START(op__Find, smb_request_t *, sr);
return (SDRC_SUCCESS);
}
void
smb_post_find(smb_request_t *sr)
{
! DTRACE_SMB_DONE(op__Find, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_find(smb_request_t *sr)
{
*** 453,462 ****
--- 454,464 ----
status = smb_odir_openpath(sr, pn->pn_path, sattr, 0, &od);
if (status != 0) {
smbsr_error(sr, status, 0, 0);
return (SDRC_ERROR);
}
+ odid = od->d_odid;
} else {
if (smb_mbc_decodef(&sr->smb_data, "b12.wwl",
&resume_char, &index, &odid, &client_key) != 0) {
return (SDRC_ERROR);
}
*** 545,562 ****
/* *** smb_com_find_close *** */
smb_sdrc_t
smb_pre_find_close(smb_request_t *sr)
{
! DTRACE_SMB_1(op__FindClose__start, smb_request_t *, sr);
return (SDRC_SUCCESS);
}
void
smb_post_find_close(smb_request_t *sr)
{
! DTRACE_SMB_1(op__FindClose__done, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_find_close(smb_request_t *sr)
{
--- 547,564 ----
/* *** smb_com_find_close *** */
smb_sdrc_t
smb_pre_find_close(smb_request_t *sr)
{
! DTRACE_SMB_START(op__FindClose, smb_request_t *, sr);
return (SDRC_SUCCESS);
}
void
smb_post_find_close(smb_request_t *sr)
{
! DTRACE_SMB_DONE(op__FindClose, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_find_close(smb_request_t *sr)
{
*** 611,628 ****
/* *** smb_com_find_unique *** */
smb_sdrc_t
smb_pre_find_unique(smb_request_t *sr)
{
! DTRACE_SMB_1(op__FindUnique__start, smb_request_t *, sr);
return (SDRC_SUCCESS);
}
void
smb_post_find_unique(smb_request_t *sr)
{
! DTRACE_SMB_1(op__FindUnique__done, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_find_unique(struct smb_request *sr)
{
--- 613,630 ----
/* *** smb_com_find_unique *** */
smb_sdrc_t
smb_pre_find_unique(smb_request_t *sr)
{
! DTRACE_SMB_START(op__FindUnique, smb_request_t *, sr);
return (SDRC_SUCCESS);
}
void
smb_post_find_unique(smb_request_t *sr)
{
! DTRACE_SMB_DONE(op__FindUnique, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_find_unique(struct smb_request *sr)
{
*** 689,700 ****
SMB_SHORTNAMELEN - 1);
}
smb_name83(fileinfo.fi_shortname, name83, SMB_SHORTNAMELEN);
(void) smb_mbc_encodef(&sr->reply, "b11c.wwlbYl13c",
! resume_char, name83, index, od->d_odid,
! client_key, fileinfo.fi_dosattr & 0xff,
smb_time_gmt_to_local(sr, fileinfo.fi_mtime.tv_sec),
(int32_t)fileinfo.fi_size,
fileinfo.fi_shortname);
count++;
--- 691,702 ----
SMB_SHORTNAMELEN - 1);
}
smb_name83(fileinfo.fi_shortname, name83, SMB_SHORTNAMELEN);
(void) smb_mbc_encodef(&sr->reply, "b11c.wwlbYl13c",
! resume_char, name83, index, od->d_odid, client_key,
! fileinfo.fi_dosattr & 0xff,
smb_time_gmt_to_local(sr, fileinfo.fi_mtime.tv_sec),
(int32_t)fileinfo.fi_size,
fileinfo.fi_shortname);
count++;