============
Introduction
============

  This is the client VFS module for the SMB3 NAS protocol as well
  as for older dialects such as the Common Internet File System (CIFS)
  protocol which was the successor to the Server Message Block
  (SMB) protocol, the native file sharing mechanism for most early
  PC operating systems. New and improved versions of CIFS are now
  called SMB2 and SMB3. Use of SMB3 (and later, including SMB3.1.1
  the most current dialect) is strongly preferred over using older
  dialects like CIFS due to security reasons. All modern dialects,
  including the most recent, SMB3.1.1, are supported by the CIFS VFS
  module. The SMB3 protocol is implemented and supported by all major
  file servers such as Windows (including Windows 2019 Server), as
  well as by Samba (which provides excellent CIFS/SMB2/SMB3 server
  support and tools for Linux and many other operating systems).
  Apple systems also support SMB3 well, as do most Network Attached
  Storage vendors, so this network filesystem client can mount to a
  wide variety of systems. It also supports mounting to the cloud
  (for example Microsoft Azure), including the necessary security
  features.

  The intent of this module is to provide the most advanced network
  file system function for SMB3 compliant servers, including advanced
  security features, excellent parallelized high performance i/o, better
  POSIX compliance, secure per-user session establishment, encryption,
  high performance safe distributed caching (leases/oplocks), optional packet
  signing, large files, Unicode support and other internationalization
  improvements. Since both Samba server and this filesystem client support the
  CIFS Unix extensions, and the Linux client also supports SMB3 POSIX extensions,
  the combination can provide a reasonable alternative to other network and
  cluster file systems for fileserving in some Linux to Linux environments,
  not just in Linux to Windows (or Linux to Mac) environments.

  This filesystem has a mount utility (mount.cifs) and various user space
  tools (including smbinfo and setcifsacl) that can be obtained from

      https://git.samba.org/?p=cifs-utils.git

  or

      git://git.samba.org/cifs-utils.git

  mount.cifs should be installed in the directory with the other mount helpers.

  For more information on the module see the project wiki page at

      https://wiki.samba.org/index.php/LinuxCIFS

  and

      https://wiki.samba.org/index.php/LinuxCIFS_utils
