Print this page
NEX-13644 File access audit logging
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
NEX-17589 Get "too high" smbd error when copy big file to cifs share (redo)
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-16763 Catch up with illumos SMB client 1575 ... (fix rebuild)
NEX-9808 SMB3 persistent handles
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-15578 SMB2 durable handle redesign
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-5665 SMB2 oplock leases
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-9808 SMB3 persistent handles
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-15578 SMB2 durable handle redesign
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-5665 SMB2 oplock leases
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-1643 dtrace provider for smbsrv
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
NEX-9864 Some SMB cancel races remain after NEX-5845
Revert (part of) "NEX-5845 rework SMB immediate cancel"
reverts (part of) commit 7a5da69f6d42b17ebcc95ca3d02925d07a01343e.
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-5273 SMB 3 Encryption
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-5664 Offload Data Transfer (ODX) support for Hyper-V
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
NEX-6276 SMB sparse file support
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-5844 want SMB2 ioctl FSCTL_SRV_COPYCHUNK
NEX-6124 smb_fsop_read/write should allow file != sr->fid_ofile
NEX-6125 smbtorture invalid response with smb2.ioctl
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
NEX-6096 Enable compile warnings re. parentheses in smbsrv
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Jean McCormack <jean.mccormack@nexenta.com>
NEX-3733 Want SMB2 Apple extensions
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Matt Barden <Matt.Barden@nexenta.com>
NEX-4598 SMB2 credit shortage with Mac client
Reviewed by: Bayard Bell <bayard.bell@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Matt Barden <Matt.Barden@nexenta.com>
NEX-4083 Upstream changes from illumos 5917 and 5995
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
NEX-3728 SMB1 signing should use KCF like SMB2/3
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Dan Fields <dan.fields@nexenta.com>
NEX-3610 CLONE NEX-3591 SMB3 signing
Reviewed by: Gordon Ross <gwr@nexenta.com>
Reviewed by: Dan Fields <dan.fields@nexenta.com>
NEX-3487 Fix fallout from illumos 5688 ELF tools need to be more careful with dwarf data
NEX-2460 libfksmbd should not link with libsmb
SMB-55 SMB2 signing
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-69 read-raw, write-raw are dead code
SMB-56 extended security NTLMSSP, inbound
SMB-39 Use AF_UNIX pipes for RPC
SMB-50 User-mode SMB server
 Includes work by these authors:
 Thomas Keiser <thomas.keiser@nexenta.com>
 Albert Lee <trisk@nexenta.com>
        
*** 20,38 ****
  #
  #
  # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  # Use is subject to license terms.
  #
! # Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
  #
  
  LIBRARY =       libfksmbsrv.a
  VERS =          .1
  
  OBJS_LOCAL = \
                  fksmb_cred.o \
!                 fksmb_dt.o \
                  fksmb_fem.o \
                  fksmb_idmap.o \
                  fksmb_init.o \
                  fksmb_kdoor.o \
                  fksmb_sign_pkcs.o \
--- 20,39 ----
  #
  #
  # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  # Use is subject to license terms.
  #
! # Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  #
  
  LIBRARY =       libfksmbsrv.a
  VERS =          .1
  
  OBJS_LOCAL = \
+                 fksmb_audit.o \
                  fksmb_cred.o \
!                 fksmb_encrypt_pkcs.o \
                  fksmb_fem.o \
                  fksmb_idmap.o \
                  fksmb_init.o \
                  fksmb_kdoor.o \
                  fksmb_sign_pkcs.o \
*** 52,61 ****
--- 53,63 ----
  OBJS_FS_SMBSRV = \
                  smb_acl.o                               \
                  smb_alloc.o                             \
                  smb_authenticate.o                      \
                  smb_close.o                             \
+                 smb_cmn_oplock.o                        \
                  smb_cmn_rename.o                        \
                  smb_cmn_setfile.o                       \
                  smb_common_open.o                       \
                  smb_common_transact.o                   \
                  smb_create.o                            \
*** 106,136 ****
                  smb_server.o                            \
                  smb_session.o                           \
                  smb_session_setup_andx.o                \
                  smb_set_fileinfo.o                      \
                  smb_signing.o                           \
                  smb_thread.o                            \
                  smb_tree.o                              \
                  smb_trans2_create_directory.o           \
                  smb_trans2_dfs.o                        \
                  smb_trans2_find.o                       \
                  smb_tree_connect.o                      \
                  smb_unlock_byte_range.o                 \
                  smb_user.o                              \
-                 smb_vfs.o                               \
                  smb_vops.o                              \
                  smb_vss.o                               \
                  smb_write.o                             \
                  \
                  smb2_dispatch.o \
                  smb2_cancel.o \
                  smb2_change_notify.o \
                  smb2_close.o \
                  smb2_create.o \
                  smb2_echo.o \
                  smb2_flush.o \
                  smb2_ioctl.o \
                  smb2_lock.o \
                  smb2_logoff.o \
                  smb2_negotiate.o \
                  smb2_ofile.o \
                  smb2_oplock.o \
--- 108,145 ----
                  smb_server.o                            \
                  smb_session.o                           \
                  smb_session_setup_andx.o                \
                  smb_set_fileinfo.o                      \
                  smb_signing.o                           \
+                 smb_srv_oplock.o                        \
                  smb_thread.o                            \
                  smb_tree.o                              \
                  smb_trans2_create_directory.o           \
                  smb_trans2_dfs.o                        \
                  smb_trans2_find.o                       \
                  smb_tree_connect.o                      \
                  smb_unlock_byte_range.o                 \
                  smb_user.o                              \
                  smb_vops.o                              \
                  smb_vss.o                               \
                  smb_write.o                             \
                  \
+                 smb2_aapl.o \
                  smb2_dispatch.o \
+                 smb2_durable.o \
                  smb2_cancel.o \
                  smb2_change_notify.o \
                  smb2_close.o \
                  smb2_create.o \
                  smb2_echo.o \
                  smb2_flush.o \
+                 smb2_fsctl_copychunk.o \
+                 smb2_fsctl_fs.o \
+                 smb2_fsctl_odx.o \
+                 smb2_fsctl_sparse.o \
                  smb2_ioctl.o \
+                 smb2_lease.o \
                  smb2_lock.o \
                  smb2_logoff.o \
                  smb2_negotiate.o \
                  smb2_ofile.o \
                  smb2_oplock.o \
*** 148,163 ****
                  smb2_setinfo_quota.o \
                  smb2_setinfo_sec.o \
                  smb2_signing.o \
                  smb2_tree_connect.o \
                  smb2_tree_disconn.o \
!                 smb2_write.o
  
  # Can't just link with -lsmb because of user vs kernel API
  # i.e. can't call free with mem from kmem_alloc, which is
  # what happens if we just link with -lsmb
  OBJS_CMN_SMBSRV = \
                  smb_inet.o \
                  smb_match.o \
                  smb_msgbuf.o \
                  smb_native.o \
                  smb_netbios_util.o \
--- 157,175 ----
                  smb2_setinfo_quota.o \
                  smb2_setinfo_sec.o \
                  smb2_signing.o \
                  smb2_tree_connect.o \
                  smb2_tree_disconn.o \
!                 smb2_write.o \
!                 \
!                 smb3_encrypt.o
  
  # Can't just link with -lsmb because of user vs kernel API
  # i.e. can't call free with mem from kmem_alloc, which is
  # what happens if we just link with -lsmb
  OBJS_CMN_SMBSRV = \
+                 smb_cfg_util.o \
                  smb_inet.o \
                  smb_match.o \
                  smb_msgbuf.o \
                  smb_native.o \
                  smb_netbios_util.o \
*** 174,183 ****
--- 186,200 ----
                  pathname.o \
                  refstr.o \
                  smb_status2winerr.o \
                  xattr_common.o
  
+ # This one can't be in OBJECTS, as it has to depend on
+ # all of those for the COMPILE.d rule (which processes
+ # all those objects collecting probe instances).
+ DTRACE_OBJS = fksmb_dt.o
+ 
  OBJECTS = \
          $(OBJS_LOCAL) \
          $(OBJS_FS_SMBSRV) \
          $(OBJS_CMN_SMBSRV) \
          $(OBJS_MISC)
*** 190,201 ****
--- 207,220 ----
  CCSOURCEDEBUGFLAGS      = -g
  STRIP_STABS     = :
  
  
  # Note: need our sys includes _before_ ENVCPPFLAGS, proto etc.
+ # Also, like Makefile.uts, reset CPPFLAGS
  CPPFLAGS.first += -I../../../libfakekernel/common
  CPPFLAGS.first += -I../common
+ CPPFLAGS        = $(CPPFLAGS.first)
  
  INCS += -I$(SRC)/uts/common
  INCS += -I$(SRC)/common/smbsrv
  INCS += -I$(SRC)/common
  
*** 210,220 ****
  CPPFLAGS += $(INCS) -D_REENTRANT -D_FAKE_KERNEL
  CPPFLAGS += -D_FILE_OFFSET_BITS=64
  # Always want DEBUG here
  CPPFLAGS += -DDEBUG
  
- CERRWARN += -_gcc=-Wno-parentheses
  CERRWARN += -_gcc=-Wno-switch
  
  SRCS=   $(OBJS_LOCAL:%.o=$(SRCDIR)/%.c) \
          $(OBJS_FS_SMBSRV:%.o=$(SRC)/uts/common/fs/smbsrv/%.c) \
          $(OBJS_CMN_SMBSRV:%.o=$(SRC)/common/smbsrv/%.c)
--- 229,238 ----
*** 227,248 ****
  
  pics/acl_common.o:         $(SRC)/common/acl/acl_common.c
          $(COMPILE.c) -o $@ $(SRC)/common/acl/acl_common.c
          $(POST_PROCESS_O)
  
- pics/smb_status2winerr.o:  $(SRC)/common/smbclnt/smb_status2winerr.c
-         $(COMPILE.c) -o $@ $(SRC)/common/smbclnt/smb_status2winerr.c
-         $(POST_PROCESS_O)
- 
  pics/pathname.o:           $(SRC)/uts/common/fs/pathname.c
          $(COMPILE.c) -o $@ $(SRC)/uts/common/fs/pathname.c
          $(POST_PROCESS_O)
  
  pics/refstr.o:             $(SRC)/uts/common/os/refstr.c
          $(COMPILE.c) -o $@ $(SRC)/uts/common/os/refstr.c
          $(POST_PROCESS_O)
  
  pics/xattr_common.o:       $(SRC)/common/xattr/xattr_common.c
          $(COMPILE.c) -o $@ $(SRC)/common/xattr/xattr_common.c
          $(POST_PROCESS_O)
  
  # Makefile.targ has rule for $(SRC)/common/smbsrv/%.c
--- 245,266 ----
  
  pics/acl_common.o:         $(SRC)/common/acl/acl_common.c
          $(COMPILE.c) -o $@ $(SRC)/common/acl/acl_common.c
          $(POST_PROCESS_O)
  
  pics/pathname.o:           $(SRC)/uts/common/fs/pathname.c
          $(COMPILE.c) -o $@ $(SRC)/uts/common/fs/pathname.c
          $(POST_PROCESS_O)
  
  pics/refstr.o:             $(SRC)/uts/common/os/refstr.c
          $(COMPILE.c) -o $@ $(SRC)/uts/common/os/refstr.c
          $(POST_PROCESS_O)
  
+ pics/smb_status2winerr.o:  $(SRC)/common/smbclnt/smb_status2winerr.c
+         $(COMPILE.c) -o $@ $(SRC)/common/smbclnt/smb_status2winerr.c
+         $(POST_PROCESS_O)
+ 
  pics/xattr_common.o:       $(SRC)/common/xattr/xattr_common.c
          $(COMPILE.c) -o $@ $(SRC)/common/xattr/xattr_common.c
          $(POST_PROCESS_O)
  
  # Makefile.targ has rule for $(SRC)/common/smbsrv/%.c
*** 249,253 ****
--- 267,280 ----
  
  .KEEP_STATE:
  
  include ../../Makefile.targ
  include ../../../Makefile.targ
+ 
+ EXTPICS= $(DTRACE_OBJS:%=pics/%)
+ CLEANFILES += $(EXTPICS)
+ 
+ $(OBJS) $(PICS) : ../common/fksmb_dt.h
+ 
+ pics/fksmb_dt.o: ../common/fksmb_dt.d $(PICS)
+         $(COMPILE.d) -C -s ../common/fksmb_dt.d -o $@ $(PICS)
+         $(POST_PROCESS_O)