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>
SMB-65 SMB server in non-global zones (data structure changes)
Many things move to the smb_server_t object, and
many functions gain an sv arg (which server).
re #7815 SMB server delivers old modification time...
re #6812 rb1753 backport illumos 1604 smbd print_enable doesn't really work

*** 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. */ /* * SMB print interface. */ --- 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. */ /* * SMB print interface. */
*** 76,95 **** (void) snprintf(path, MAXPATHLEN, "%s%05u", identifier, new_id); } op->create_disposition = FILE_OVERWRITE_IF; op->create_options = FILE_NON_DIRECTORY_FILE; ! DTRACE_SMB_2(op__OpenPrintFile__start, smb_request_t *, sr, ! struct open_param *, op); return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR); } void smb_post_open_print_file(smb_request_t *sr) { ! DTRACE_SMB_1(op__OpenPrintFile__done, smb_request_t *, sr); } /* * Creates a new spool file which will be later copied and * deleted by cupsd. After the file is created, information --- 76,94 ---- (void) snprintf(path, MAXPATHLEN, "%s%05u", identifier, new_id); } op->create_disposition = FILE_OVERWRITE_IF; op->create_options = FILE_NON_DIRECTORY_FILE; ! DTRACE_SMB_START(op__OpenPrintFile, smb_request_t *, sr); /* arg.open */ return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR); } void smb_post_open_print_file(smb_request_t *sr) { ! DTRACE_SMB_DONE(op__OpenPrintFile, smb_request_t *, sr); } /* * Creates a new spool file which will be later copied and * deleted by cupsd. After the file is created, information
*** 156,173 **** { int rc; rc = smbsr_decode_vwv(sr, "w", &sr->smb_fid); ! DTRACE_SMB_1(op__ClosePrintFile__start, smb_request_t *, sr); return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR); } void smb_post_close_print_file(smb_request_t *sr) { ! DTRACE_SMB_1(op__ClosePrintFile__done, smb_request_t *, sr); } /* * * Adds the print file fid to a list to be used as a search --- 155,172 ---- { int rc; rc = smbsr_decode_vwv(sr, "w", &sr->smb_fid); ! DTRACE_SMB_START(op__ClosePrintFile, smb_request_t *, sr); return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR); } void smb_post_close_print_file(smb_request_t *sr) { ! DTRACE_SMB_DONE(op__ClosePrintFile, smb_request_t *, sr); } /* * * Adds the print file fid to a list to be used as a search
*** 207,224 **** * this request is optional (not required for Windows clients). */ smb_sdrc_t smb_pre_get_print_queue(smb_request_t *sr) { ! DTRACE_SMB_1(op__GetPrintQueue__start, smb_request_t *, sr); return (SDRC_SUCCESS); } void smb_post_get_print_queue(smb_request_t *sr) { ! DTRACE_SMB_1(op__GetPrintQueue__done, smb_request_t *, sr); } smb_sdrc_t smb_com_get_print_queue(smb_request_t *sr) { --- 206,223 ---- * this request is optional (not required for Windows clients). */ smb_sdrc_t smb_pre_get_print_queue(smb_request_t *sr) { ! DTRACE_SMB_START(op__GetPrintQueue, smb_request_t *, sr); return (SDRC_SUCCESS); } void smb_post_get_print_queue(smb_request_t *sr) { ! DTRACE_SMB_DONE(op__GetPrintQueue, smb_request_t *, sr); } smb_sdrc_t smb_com_get_print_queue(smb_request_t *sr) {
*** 253,270 **** sr->arg.rw = param; param->rw_magic = SMB_RW_MAGIC; rc = smbsr_decode_vwv(sr, "w", &sr->smb_fid); ! DTRACE_SMB_1(op__WritePrintFile__start, smb_request_t *, sr); return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR); } void smb_post_write_print_file(smb_request_t *sr) { ! DTRACE_SMB_1(op__WritePrintFile__done, smb_request_t *, sr); kmem_free(sr->arg.rw, sizeof (smb_rw_param_t)); } smb_sdrc_t --- 252,269 ---- sr->arg.rw = param; param->rw_magic = SMB_RW_MAGIC; rc = smbsr_decode_vwv(sr, "w", &sr->smb_fid); ! DTRACE_SMB_START(op__WritePrintFile, smb_request_t *, sr); return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR); } void smb_post_write_print_file(smb_request_t *sr) { ! DTRACE_SMB_DONE(op__WritePrintFile, smb_request_t *, sr); kmem_free(sr->arg.rw, sizeof (smb_rw_param_t)); } smb_sdrc_t