Print this page
NEX-1643 dtrace provider for smbsrv
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
NEX-6041 Should pass the smbtorture lock tests
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
re #7815 SMB server delivers old modification time...
*** 20,30 ****
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
! * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
*/
#include <smbsrv/smb_kproto.h>
/*
--- 20,30 ----
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
! * Copyright 2017 Nexenta Systems, Inc. All rights reserved.
*/
#include <smbsrv/smb_kproto.h>
/*
*** 43,60 ****
{
int rc;
rc = smbsr_decode_vwv(sr, "wl", &sr->smb_fid, &sr->arg.timestamp);
! DTRACE_SMB_1(op__Close__start, smb_request_t *, sr);
return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
}
void
smb_post_close(smb_request_t *sr)
{
! DTRACE_SMB_1(op__Close__done, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_close(smb_request_t *sr)
{
--- 43,60 ----
{
int rc;
rc = smbsr_decode_vwv(sr, "wl", &sr->smb_fid, &sr->arg.timestamp);
! DTRACE_SMB_START(op__Close, smb_request_t *, sr);
return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
}
void
smb_post_close(smb_request_t *sr)
{
! DTRACE_SMB_DONE(op__Close, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_close(smb_request_t *sr)
{
*** 84,101 ****
{
int rc;
rc = smbsr_decode_vwv(sr, "wl", &sr->smb_fid, &sr->arg.timestamp);
! DTRACE_SMB_1(op__CloseAndTreeDisconnect__start, smb_request_t *, sr);
return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
}
void
smb_post_close_and_tree_disconnect(smb_request_t *sr)
{
! DTRACE_SMB_1(op__CloseAndTreeDisconnect__done, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_close_and_tree_disconnect(smb_request_t *sr)
{
--- 84,101 ----
{
int rc;
rc = smbsr_decode_vwv(sr, "wl", &sr->smb_fid, &sr->arg.timestamp);
! DTRACE_SMB_START(op__CloseAndTreeDisconnect, smb_request_t *, sr);
return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
}
void
smb_post_close_and_tree_disconnect(smb_request_t *sr)
{
! DTRACE_SMB_DONE(op__CloseAndTreeDisconnect, smb_request_t *, sr);
}
smb_sdrc_t
smb_com_close_and_tree_disconnect(smb_request_t *sr)
{
*** 107,118 ****
return (SDRC_ERROR);
}
mtime = smb_time_local_to_gmt(sr, sr->arg.timestamp);
smb_ofile_close(sr->fid_ofile, mtime);
! smb_session_cancel_requests(sr->session, sr->tid_tree, sr);
smb_tree_disconnect(sr->tid_tree, B_TRUE);
if (smbsr_encode_empty_result(sr) != 0)
return (SDRC_ERROR);
return (SDRC_SUCCESS);
--- 107,119 ----
return (SDRC_ERROR);
}
mtime = smb_time_local_to_gmt(sr, sr->arg.timestamp);
smb_ofile_close(sr->fid_ofile, mtime);
!
smb_tree_disconnect(sr->tid_tree, B_TRUE);
+ smb_session_cancel_requests(sr->session, sr->tid_tree, sr);
if (smbsr_encode_empty_result(sr) != 0)
return (SDRC_ERROR);
return (SDRC_SUCCESS);