  This is the client VFS module for the Common Internet File System
  (CIFS) protocol which is 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. These dialects are also supported by the
  CIFS VFS module. CIFS is fully supported by network
  file servers such as Windows 2000, 2003, 2008 and 2012
  as well by Samba (which provides excellent CIFS
  server support for Linux and many other operating systems), so
  this network filesystem client can mount to a wide variety of
  servers.

  The intent of this module is to provide the most advanced network
  file system function for CIFS compliant servers, including better
  POSIX compliance, secure per-user session establishment, high
  performance safe distributed caching (oplock), optional packet
  signing, large files, Unicode support and other internationalization
  improvements. Since both Samba server and this filesystem client support
  the CIFS Unix extensions, the combination can provide a reasonable 
  alternative to NFSv4 for fileserving in some Linux to Linux environments,
  not just in Linux to Windows environments.

  This filesystem has an mount utility (mount.cifs) that can be obtained from

      https://ftp.samba.org/pub/linux-cifs/cifs-utils/

  It must 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_utils
