1. 05 Aug, 2021 2 commits
    • Ryan Moeller's avatar
      ZTS: Add tests for creation time · e2465c19
      Ryan Moeller authored
      Signed-off-by: default avatarRyan Moeller <ryan@iXsystems.com>
      e2465c19
    • Richard Yao's avatar
      Linux 4.11 compat: statx support · 5b6da04c
      Richard Yao authored
      
      Linux 4.11 added a new statx system call that allows us to expose crtime
      as btime. We do this by caching crtime in the znode to match how atime,
      ctime and mtime are cached in the inode.
      
      statx also introduced a new way of reporting whether the immutable,
      append and nodump bits have been set. It adds support for reporting
      compression and encryption, but the semantics on other filesystems is
      not just to report compression/encryption, but to allow it to be turned
      on/off at the file level. We do not support that.
      
      We could implement semantics where we refuse to allow user modification
      of the bit, but we would need to do a dnode_hold() in zfs_znode_alloc()
      to find out encryption/compression information. That would introduce
      locking that will have a minor (although unmeasured) performance cost.
      It also would be inferior to zdb, which reports far more detailed
      information. We therefore omit reporting of encryption/compression
      through statx in favor of recommending that users interested in such
      information use zdb.
      Signed-off-by: default avatarRichard Yao <ryao@gentoo.org>
      Closes #8507
      5b6da04c
  2. 02 Aug, 2021 1 commit
  3. 15 Jul, 2021 3 commits
  4. 14 Jul, 2021 1 commit
    • Ryan Moeller's avatar
      Add xattr_fallback property to skip fallbacks · 133096fd
      Ryan Moeller authored
      
      This property defaults to "on" so by default we do not miss xattrs in
      datasets received from pools for which the encoding cannot be known or
      may even be a mix of both.  It can be turned "off" for a performance
      boost when it is known only the configured xattr_compat format is
      relevant.
      Signed-off-by: default avatarRyan Moeller <ryan@iXsystems.com>
      133096fd
  5. 13 Jul, 2021 6 commits
  6. 12 Jul, 2021 1 commit
  7. 08 Jul, 2021 1 commit
  8. 07 Jul, 2021 2 commits
  9. 02 Jul, 2021 1 commit
  10. 29 Jun, 2021 9 commits
    • Brian Behlendorf's avatar
      Tag 2.1.0-rc8 · 508fff0e
      Brian Behlendorf authored
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      508fff0e
    • Brian Behlendorf's avatar
      Linux 5.13 compat: META · d3942963
      Brian Behlendorf authored
      
      Increase the Linux-Maximum version in the META file to 5.13.
      All of the required compatibility patches have been merged
      and the 5.13 kernel has been officially released.
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      d3942963
    • Laurențiu Nicola's avatar
      zed: fix sending emails (#12292) · 0584ad8f
      Laurențiu Nicola authored
      Commit 6fc30992
      
       broke the quoting when invoking the mail program, revert
      that change.
      Signed-off-by: default avatarLaurențiu Nicola <lnicola@dend.ro>
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Reviewed-by: default avatarTony Hutter <hutter2@llnl.gov>
      0584ad8f
    • Alexander Motin's avatar
      Avoid 64bit division in multilist index functions · ea478570
      Alexander Motin authored
      
      The number of sublists in a multilist is relatively small. We dont need
      64 bits to calculate an index. 32 bits is sufficient and makes the
      code more efficient.
      Reviewed-by: default avatarMatthew Ahrens <mahrens@delphix.com>
      Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> 
      Reviewed-by: default avatarMark Maybee <mark.maybee@delphix.com>
      Signed-off-by: default avatarAlexander Motin <mav@FreeBSD.org>
      Sponsored-By: iXsystems, Inc.
      Closes #12288
      ea478570
    • Michal Vasilek's avatar
      Fix plymouth passphrase prompt with dracut · 4ebda5d4
      Michal Vasilek authored
      plymouth --command splits the command on spaces which means
      that zfs-load-key was getting the filesystem name enclosed
      in single quotes (since 13c59bb7
      
      ) and failing. This commit
      fixes it by piping the password directly to the command
      similar to how it's done in other scripts (initramfs,
      dracut without plymouth).
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Signed-off-by: default avatarMichal Vasilek <michal@vasilek.cz>
      Related-to: #9193
      Related-to: #9202
      Closes #12147 
      4ebda5d4
    • Rich Ercolani's avatar
      Fix build with KASAN · 57ce66d2
      Rich Ercolani authored
      
      The stock zstd code expects some helpers from ASAN if present.
      This works fine in userland, but in kernel, KASAN also gets detected,
      and lacks those helpers. So let's make some empty substitutes for
      that case.
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Signed-off-by: default avatarRich Ercolani <rincebrain@gmail.com>
      Closes #12232 
      57ce66d2
    • Alexander Motin's avatar
      Help compiller optimize out abd_verify() · da6c288d
      Alexander Motin authored
      
      While abd_verify() does nothing when built without debug, compiler
      can't optimize it out by itself due to calls to external list_*()
      and abd_verify_scatter().  This commit makes it explicit.
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Reviewed-by: default avatarAdam Moss <c@yotes.com>
      Reviewed-by: default avatarGeorge Melikov <mail@gmelikov.ru>
      Signed-off-by: default avatarAlexander Motin <mav@FreeBSD.org>
      Sponsored-By: iXsystems, Inc.
      Closes #12280
      da6c288d
    • Ryan Moeller's avatar
      Bump ABI defs after xattr compat · 1cd67052
      Ryan Moeller authored
      Signed-off-by: default avatarRyan Moeller <ryan@iXsystems.com>
      1cd67052
    • Ryan Moeller's avatar
      Cross-platform xattr user namespace compatibility · d2cece6a
      Ryan Moeller authored
      
      ZFS on Linux originally implemented xattr namespaces in a way that is
      incompatible with other operating systems.  On illumos, xattrs do not
      have namespaces.  Every xattr name is visible.  FreeBSD has two
      universally defined namespaces: EXTATTR_NAMESPACE_USER and
      EXTATTR_NAMESPACE_SYSTEM.  The system namespace is used for protected
      FreeBSD-specific attributes such as MAC labels and pnfs state.  These
      attributes have the namespace string "freebsd:system:" prefixed to the
      name in the encoding scheme used by ZFS.  The user namespace is used
      for general purpose user attributes and obeys normal access control
      mechanisms.  These attributes have no namespace string prefixed, so
      xattrs written on illumos are accessible in the user namespace on
      FreeBSD, and xattrs written to the user namespace on FreeBSD are
      accessible by the same name on illumos.
      
      Linux has several xattr namespaces.  On Linux, ZFS encodes the
      namespace in the xattr name for every namespace, including the user
      namespace.  As a consequence, an xattr in the user namespace with the
      name "foo" is stored by ZFS with the name "user.foo" and therefore
      appears on FreeBSD and illumos to have the name "user.foo" rather than
      "foo".  Conversely, none of the xattrs written on FreeBSD or illumos
      are accessible on Linux unless the name happens to be prefixed with one
      of the Linux xattr namespaces, in which case the namespace is stripped
      from the name.  This makes xattrs entirely incompatible between Linux
      and other platforms.
      
      We want to make the encoding of user namespace xattrs compatible across
      platforms.  A critical requirement of this compatibility is for xattrs
      from existing pools from FreeBSD and illumos to be accessible by the
      same names in the user namespace on Linux.  It is also necessary that
      existing pools with xattrs written by Linux retain access to those
      xattrs by the same names on Linux.  Making user namespace xattrs from
      Linux accessible by the correct names on other platforms is important.
      The handling of other namespaces is not required to be consistent.
      
      Add a fallback mechanism for listing and getting xattrs to treat xattrs
      as being in the user namespace if they do not match a known prefix.
      
      When setting user namespace xattrs, do not prefix the namespace to the
      name.  If the xattr is already present with the namespace prefix,
      remove it so only the non-prefixed version persists.  This ensures
      other platforms will be able to read the xattr with the correct name.
      
      Do not allow setting or getting xattrs with a name that is prefixed
      with one of the namespace names used by ZFS on supported platforms.
      
      Make xattr namespace compatibility dependent on a new feature.  New
      pools will use the compatible namespace encoding by default, and
      existing pools will continue using the old Linux-specific encoding
      until the feature is enabled.
      
      Allow choosing between cross-platform compatability and legacy Linux
      compatibility with a per-dataset property.  This facilitates
      replication between hosts with different compatibility needs.
      
      TODO:
      
      * New tests should be added.
      * Performance optimizations should be investigated.
      Signed-off-by: default avatarRyan Moeller <ryan@iXsystems.com>
      d2cece6a
  11. 24 Jun, 2021 10 commits
  12. 22 Jun, 2021 1 commit
  13. 17 Jun, 2021 1 commit
  14. 15 Jun, 2021 1 commit