1. 08 Jul, 2021 1 commit
  2. 07 Jul, 2021 2 commits
  3. 02 Jul, 2021 1 commit
  4. 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
  5. 24 Jun, 2021 10 commits
  6. 22 Jun, 2021 1 commit
  7. 17 Jun, 2021 1 commit
  8. 15 Jun, 2021 5 commits
    • наб's avatar
      systemd: import: expand $ZPOOL_IMPORT_OPTS correctly · ff64096e
      наб authored
      Turns out $ZPOOL_IMPORT_OPTS expands in a shell-like fashion,
      yielding 'import' '-aN' '-o' 'cachefile=none' for an unset variable,
      and 'import' '-aN' '-o' 'cachefile=none' 'word1' 'word2' for a
      white-spaced one, but ${ZPOOL_IMPORT_OPTS} expands like "${Z_I_O}"
      would in a shell, yielding 'import' '-aN' '-o' 'cachefile=none' ''
      (empty) and 'import' '-aN' '-o' 'cachefile=none' 'word1 word2' (spaced)
      
      Fixes eec5ba11
      
       "dracut: 90zfs: respect
      zfs_force=1 on systemd systems"
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Reviewed-by: default avatarJohn Kennedy <john.kennedy@delphix.com>
      Signed-off-by: default avatarAhelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
      Closes: #12231
      ff64096e
    • Matthew Ahrens's avatar
      vdev_draid_min_asize() ignores reserved space · 7e221299
      Matthew Ahrens authored
      
      vdev_draid_min_asize() returns the minimum size of a child vdev.  This
      is used when determining if a disk is big enough to replace a child.
      It's also used by zdb to determine how big of a child to make to test
      replacement.
      
      vdev_draid_min_asize() says that the child’s asize has to be at least
      1/Nth of the entire draid’s asize, which is the same logic as raidz.
      However, this contradicts the code in vdev_draid_open(), which
      calculates the draid’s asize based on a reduced child size:
      
        An additional 32MB of scratch space is reserved at the end of each
        child for use by the dRAID expansion feature
      
      So the problem is that you can replace a draid disk with one that’s
      vdev_draid_min_asize(), but it actually needs to be larger to accommodate
      the additional 32MB.  The replacement is allowed and everything works at
      first (since the reserved space is at the end, and we don’t try to use
      it yet), but when you try to close and reopen the pool,
      vdev_draid_open() calculates a smaller asize for the draid, because of
      the smaller leaf, which is not allowed.
      
      I think the confusion is that vdev_draid_min_asize() is correctly
      returning the amount of required *allocatable* space in a leaf, but the
      actual *size* of the leaf needs to be at least 32MB more than that.
      ztest_vdev_attach_detach() assumes that it can attach that size of
      device, and it actually can (the kernel/libzpool accepts it), but it
      then later causes zdb to not be able to open the pool.
      
      This commit changes vdev_draid_min_asize() to return the required size
      of the leaf, not the size that draid will make available to the metaslab
      allocator.
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Reviewed-by: default avatarMark Maybee <mark.maybee@delphix.com>
      Signed-off-by: default avatarMatthew Ahrens <mahrens@delphix.com>
      Closes #11459
      Closes #12221 
      7e221299
    • Paul Zuchowski's avatar
      Do not hash unlinked inodes · bd83c1e0
      Paul Zuchowski authored
      
      In zfs_znode_alloc we always hash inodes.  If the
      znode is unlinked, we do not need to hash it.  This
      fixes the problem where zfs_suspend_fs is doing zrele
      (iput) in an async fashion, and zfs_resume_fs unlinked
      drain processing will try to hash an inode that could
      still be hashed, resulting in a panic.
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Reviewed-by: default avatarAlan Somers <asomers@gmail.com>
      Signed-off-by: default avatarPaul Zuchowski <pzuchowski@datto.com>
      Closes #9741
      Closes #11223
      Closes #11648
      Closes #12210
      bd83c1e0
    • Rich Ercolani's avatar
      Added uncompress requirement · a416b29e
      Rich Ercolani authored
      
      Having an old enough version of "file" and no "uncompress" program
      installed can cause rpmbuild as root to crash and mangle rpmdb.
      
      So let's add a build dependency for RPM-based systems.
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Reviewed-by: default avatarTony Hutter <hutter2@llnl.gov>
      Signed-off-by: default avatarRich Ercolani <rincebrain@gmail.com>
      Closes: #12071
      Closes: #12168
      a416b29e
    • Brian Behlendorf's avatar
      ZTS: Add zfs_clone_livelist_dedup.ksh to Makefile.am · af4b6f7d
      Brian Behlendorf authored
      Commit 86b5f4c1
      
       added a new zfs_clone_livelist_dedup.ksh test case
      but didn't include it in the Makefile.am.  This results in the test
      not being included in the dist tarball so it's never run by the CI.
      Reviewed-by: default avatarJohn Kennedy <john.kennedy@delphix.com>
      Reviewed-by: default avatarSerapheim Dimitropoulos <serapheim@delphix.com>
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Closes: #12224
      af4b6f7d
  9. 10 Jun, 2021 10 commits