1. 01 Nov, 2015 2 commits
  2. 13 Aug, 2015 1 commit
  3. 08 Feb, 2014 1 commit
  4. 24 Aug, 2013 1 commit
  5. 08 Apr, 2013 1 commit
  6. 18 Mar, 2013 1 commit
    • Brian Behlendorf's avatar
      Refresh RPM packaging · f3757573
      Brian Behlendorf authored
      Refresh the existing RPM packaging to conform to the 'Fedora
      Packaging Guidelines'.  This includes adopting the kmods2
      packaging standard which is used fod kmods distributed by
      rpmfusion for Fedora/RHEL.
      
        http://fedoraproject.org/wiki/Packaging:Guidelines
        http://rpmfusion.org/Packaging/KernelModules/Kmods2
      
      While the spec files have been entirely rewritten from a
      user perspective the only major changes are:
      
      * The Fedora packages now have a build dependency on the
        rpmfusion repositories.  The generic kmod packages also
        have a new dependency on kmodtool-1.22 but it is bundled
        with the source rpm so no additional packages are needed.
      
      * The kernel binary module packages have been renamed from
        zfs-modules-* to kmod-zfs-* as specificed by kmods2.
      
      * The is now a common kmod-zfs-devel-* package in addition
        to the per-kernel devel packages.  The common package
        contains the development headers while the per-kernel
        package contains kernel specific build products.
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Closes #1341
      f3757573
  7. 13 Mar, 2013 1 commit
  8. 06 Mar, 2013 1 commit
  9. 29 Jan, 2013 1 commit
    • Brian Behlendorf's avatar
      Retire zpool_id infrastructure · dbf763b3
      Brian Behlendorf authored
      In the interest of maintaining only one udev helper to give vdevs
      user friendly names, the zpool_id and zpool_layout infrastructure
      is being retired.  They are superseded by vdev_id which incorporates
      all the previous functionality.
      
      Documentation for the new vdev_id(8) helper and its configuration
      file, vdev_id.conf(5), can be found in their respective man pages.
      Several useful example files are installed under /etc/zfs/.
      
        /etc/zfs/vdev_id.conf.alias.example
        /etc/zfs/vdev_id.conf.multipath.example
        /etc/zfs/vdev_id.conf.sas_direct.example
        /etc/zfs/vdev_id.conf.sas_switch.example
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Closes #981
      dbf763b3
  10. 10 Jan, 2013 1 commit
  11. 08 Jan, 2013 1 commit
    • Christopher Siden's avatar
      Illumos #2619 and #2747 · 9ae529ec
      Christopher Siden authored
      2619 asynchronous destruction of ZFS file systems
      2747 SPA versioning with zfs feature flags
      Reviewed by: Matt Ahrens <mahrens@delphix.com>
      Reviewed by: George Wilson <gwilson@delphix.com>
      Reviewed by: Richard Lowe <richlowe@richlowe.net>
      Reviewed by: Dan Kruchinin <dan.kruchinin@gmail.com>
      Approved by: Eric Schrock <Eric.Schrock@delphix.com>
      
      References:
        illumos/illumos-gate@53089ab7c84db6fb76c16ca50076c147cda11757
        illumos/illumos-gate@ad135b5d644628e791c3188a6ecbd9c257961ef8
        illumos changeset: 13700:2889e2596bd6
        https://www.illumos.org/issues/2619
        https://www.illumos.org/issues/2747
      
      NOTE: The grub specific changes were not ported.  This change
      must be made to the Linux grub packages.
      Ported-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      9ae529ec
  12. 02 Sep, 2012 1 commit
  13. 08 Aug, 2012 1 commit
    • Prakash Surya's avatar
      Support building a zfs-modules-dkms sub package · 26e08952
      Prakash Surya authored
      This commit adds support for building a zfs-modules-dkms sub package
      built around Dynamic Kernel Module Support. This is to allow building
      packages using the DKMS infrastructure which is intended to ease the
      burden of kernel version changes, upgrades, etc.
      
      By default zfs-modules-dkms-* sub package will be built as part of
      the 'make rpm' target.  Alternately, you can build only the DKMS
      module package using the 'make rpm-dkms' target.
      
      Examples:
      
          # To build packaged binaries as well as a dkms packages
          $ ./configure && make rpm
      
          # To build only the packaged binary utilities and dkms packages
          $ ./configure && make rpm-utils rpm-dkms
      
      Note: Only the RHEL 5/6, CHAOS 5, and Fedora distributions are
            supported for building the dkms sub package.
      Signed-off-by: default avatarPrakash Surya <surya1@llnl.gov>
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Issue #535
      26e08952
  14. 12 Jul, 2012 1 commit
    • Brian Behlendorf's avatar
      Move zfs.release generation to configure step · fb7eb3e3
      Brian Behlendorf authored
      Previously, the zfs.release file was created at 'make install' time.
      This is slightly problematic when the file is needed without running
      'make install'. Because of this, the step creating the file was removed
      from 'make install' and replaced with a more appropriate zfs.release.in
      file.
      
      As a result, the zfs.release file will now be created earlier as part
      of the 'configure' step as opposed to the 'make install' step.
      Signed-off-by: default avatarPrakash Surya <surya1@llnl.gov>
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      fb7eb3e3
  15. 01 Jun, 2012 1 commit
    • Ned A. Bass's avatar
      Add vdev_id for JBOD-friendly udev aliases · 821b6834
      Ned A. Bass authored
      vdev_id parses the file /etc/zfs/vdev_id.conf to map a physical path
      in a storage topology to a channel name.  The channel name is combined
      with a disk enclosure slot number to create an alias that reflects the
      physical location of the drive.  This is particularly helpful when it
      comes to tasks like replacing failed drives.  Slot numbers may also be
      re-mapped in case the default numbering is unsatisfactory.  The drive
      aliases will be created as symbolic links in /dev/disk/by-vdev.
      
      The only currently supported topologies are sas_direct and sas_switch:
      
      o  sas_direct - a channel is uniquely identified by a PCI slot and a
         HBA port
      
      o  sas_switch - a channel is uniquely identified by a SAS switch port
      
      A multipath mode is supported in which dm-mpath devices are handled by
      examining the first running component disk, as reported by 'multipath
      -l'.  In multipath mode the configuration file should contain a
      channel definition with the same name for each path to a given
      enclosure.
      
      vdev_id can replace the existing zpool_id script on systems where the
      storage topology conforms to sas_direct or sas_switch.  The script
      could be extended to support other topologies as well.  The advantage
      of vdev_id is that it is driven by a single static input file that can
      be shared across multiple nodes having a common storage toplogy.
      zpool_id, on the other hand, requires a unique /etc/zfs/zdev.conf per
      node and a separate slot-mapping file.  However, zpool_id provides the
      flexibility of using any device names that show up in
      /dev/disk/by-path, so it may still be needed on some systems.
      
      vdev_id's functionality subsumes that of the sas_switch_id script, and
      it is unlikely that anyone is using it, so sas_switch_id is removed.
      
      Finally, /dev/disk/by-vdev is added to the list of directories that
      'zpool import' will scan.
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Closes #713
      821b6834
  16. 23 Mar, 2012 1 commit
    • Brian Behlendorf's avatar
      Add --enable-debug-dmu-tx configure option · 1c5de20a
      Brian Behlendorf authored
      Allow rigorous (and expensive) tx validation to be enabled/disabled
      indepentantly from the standard zfs debugging.  When enabled these
      checks ensure that all txs are constructed properly and that a dbuf
      is never dirtied without taking the correct tx hold.
      
      This checking is particularly helpful when adding new dmu consumers
      like Lustre.  However, for established consumers such as the zpl
      with no known outstanding tx construction problems this is just
      overhead.
      
      --enable-debug-dmu-tx  - Enable/disable validation of each tx as
      --disable-debug-dmu-tx   it is constructed.  By default validation
                               is disabled due to performance concerns.
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      1c5de20a
  17. 15 Dec, 2011 1 commit
    • Prakash Surya's avatar
      Add make rule for building Arch Linux packages · 6ba3b446
      Prakash Surya authored
      Added the necessary build infrastructure for building packages
      compatible with the Arch Linux distribution. As such, one can now run:
      
          $ ./configure
          $ make pkg     # Alternatively, one can run 'make arch' as well
      
      on the Arch Linux machine to create two binary packages compatible with
      the pacman package manager, one for the zfs userland utilities and
      another for the zfs kernel modules. The new packages can then be
      installed by running:
      
          # pacman -U $package.pkg.tar.xz
      
      In addition, source-only packages suitable for an Arch Linux chroot
      environment or remote builder can also be build using the 'sarch' make
      rule.
      
      NOTE: Since the source dist tarball is created on the fly from the head
      of the build tree, it's MD5 hash signature will be continually influx.
      As a result, the md5sum variable was intentionally omitted from the
      PKGBUILD files, and the '--skipinteg' makepkg option is used. This may
      or may not have any serious security implications, as the source tarball
      is not being downloaded from an outside source.
      Signed-off-by: default avatarPrakash Surya <surya1@llnl.gov>
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Closes #491
      6ba3b446
  18. 19 Aug, 2011 1 commit
  19. 08 Aug, 2011 1 commit
    • Kyle Fuller's avatar
      Move udev rules from /etc/udev to /lib/udev · 12d06bac
      Kyle Fuller authored
      This change moves the default install location for the zfs udev
      rules from /etc/udev/ to /lib/udev/.  The correct convention is
      for rules provided by a package to be installed in /lib/udev/.
      The /etc/udev/ directory is reserved for custom rules or local
      overrides.
      
      Additionally, this patch cleans up some abuse of the bindir install
      location by adding a udevdir and udevruledir install directories.
      This allows us to revert to the default bin install location.  The
      udev install directories can be set with the following new options.
      
        --with-udevdir=DIR      install udev helpers [EPREFIX/lib/udev]
        --with-udevruledir=DIR  install udev rules [UDEVDIR/rules.d]
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Closes #356
      12d06bac
  20. 01 Aug, 2011 1 commit
  21. 06 Jul, 2011 1 commit
  22. 23 Jun, 2011 1 commit
    • Ned A. Bass's avatar
      Multipath device manageability improvements · 560bcf9d
      Ned A. Bass authored
      Update udev helper scripts to deal with device-mapper devices created
      by multipathd.  These enhancements are targeted at a particular
      storage network topology under evaluation at LLNL consisting of two
      SAS switches providing redundant connectivity between multiple server
      nodes and disk enclosures.
      
      The key to making these systems manageable is to create shortnames for
      each disk that conveys its physical location in a drawer.  In a
      direct-attached topology we infer a disk's enclosure from the PCI bus
      number and HBA port number in the by-path name provided by udev.  In a
      switched topology, however, multiple drawers are accessed via a single
      HBA port.  We therefore resort to assigning drawer identifiers based
      on which switch port a drive's enclosure is connected to.  This
      information is available from sysfs.
      
      Add options to zpool_layout to generate an /etc/zfs/zdev.conf using
      symbolic links in /dev/disk/by-id of the form
      <label>-<UUID>-switch-port:<X>-slot:<Y>.  <label> is a string that
      depends on the subsystem that created the link and defaults to
      "dm-uuid-mpath" (this prefix is used by multipathd).  <UUID> is a
      unique identifier for the disk typically obtained from the scsi_id
      program, and <X> and <Y> denote the switch port and disk slot numbers,
      respectively.
      
      Add a callout script sas_switch_id for use by multipathd to help
      create symlinks of the form described above.  Update zpool_id and the
      udev zpool rules file to handle both multipath devices and
      conventional drives.
      560bcf9d
  23. 17 Jun, 2011 1 commit
    • Darik Horn's avatar
      Fix autoconf variable substitution in udev rules. · b9f27ee7
      Darik Horn authored
      Change the variable substitution in the udev rule templates
      according to the method described in the Autoconf manual;
      Chapter 4.7.2: Installation Directory Variables.
      
      The udev rules are improperly generated if the bindir parameter
      overrides the prefix parameter during configure. For example:
      
        # ./configure --prefix=/usr/local --bindir=/opt/zfs/bin
      
      The udev helper is installed as /opt/zfs/bin/zpool_id, but the
      corresponding udev rule has a different path:
      
        # /usr/local/etc/udev/rules.d/60-zpool.rules
        ENV{DEVTYPE}=="disk", IMPORT{program}="/usr/local/bin/zpool_id -d %p"
      
      The @bindir@ variable expands to "${exec_prefix}/bin", so it cannot
      be used instead of @prefix@ directly.
      
      This also applies to the zvol_id helper.
      
      Closes #283.
      b9f27ee7
  24. 25 Mar, 2011 1 commit
    • Brian Behlendorf's avatar
      Set cmd paths in udev rules using --prefix · 1d82906d
      Brian Behlendorf authored
      The udev/rules.d scripts must use absolute paths to their support
      binaries.  However, where those binaries get installed depends
      on what --prefix was set to when the package was configured.
      This change makes the udev/rules.d helpers to *.in files which
      are processed by configure.  This allows them to be dynamically
      updated to include the specified --prefix.
      
      Additionally, this change updates 60-zvol.rules to handle both
      the 'add' and 'change' actions.  This ensures that that all
      valid zvol devices are correctly linked.
      1d82906d
  25. 17 Mar, 2011 2 commits
    • Manuel Amador (Rudd-O)'s avatar
      Add dracut support · ae26d046
      Manuel Amador (Rudd-O) authored
      To simplify the process of using zfs as your root filesystem a
      zfs-drucat sub-package has been added.  This sub-package adds a zfs
      dracut module which allows your initramfs to be rebuilt with zfs
      support.  The process for doing this is still complicated but there
      is clearly interest from the community about getting this working
      well and documented.  This should help lay some of the groundwork.
      
      Longer term these changes should be pushed in the upstream dracut
      package.  Once that occurs this subpackage will no longer be
      required for new systems, however we may want to conditionally
      build this package in the future for systems running older
      dracut versions.
      Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      ae26d046
    • Brian Behlendorf's avatar
      Add init scripts · 01c0e61d
      Brian Behlendorf authored
      To support automatically mounting your zfs on filesystem on boot
      a basic init script is needed.  Unfortunately, every distribution
      has their own idea of the _right_ way to do things.  Rather than
      write one very complicated portable init script, which would be
      invariably replaced by the distributions own anyway.  I have
      instead added support to provide multiple distribution specific
      init scripts.
      
      The correct init script for your distribution will be selected
      by ZFS_AC_DEFAULT_PACKAGE which will set DEFAULT_INIT_SCRIPT.
      During 'make install' the correct script for your system will
      be installed from zfs/etc/init.d/zfs.DEFAULT_INIT_SCRIPT to the
      usual /etc/init.d/zfs location.
      
      Currently, there is zfs.fedora and a more generic zfs.lsb init
      script.  Hopefully, the distribution maintainers who know best
      how they want their init scripts to function will feedback their
      approved versions to be included in the project.
      
      This change does not consider upstart jobs but I'm not at all
      opposed to add that sort of thing.
      01c0e61d
  26. 09 Mar, 2011 1 commit
    • Brian Behlendorf's avatar
      Fix mount helper · d53368f6
      Brian Behlendorf authored
      Several issues related to strange mount/umount behavior were reported
      and this commit should address most of them.  The original idea was
      to put in place a zfs mount helper (mount.zfs).  This helper is used
      to enforce 'legacy' mount behavior, and perform any extra mount argument
      processing (selinux, zfsutil, etc).  This helper wasn't ready for the
      0.6.0-rc1 release but with this change it's functional but needs to
      extensively tested.
      
      This change addresses the following open issues.
      Closes #101
      Closes #107
      Closes #113
      Closes #115
      Closes #119
      d53368f6
  27. 07 Mar, 2011 1 commit
    • Brian Behlendorf's avatar
      Fix mount helper · 6adf4587
      Brian Behlendorf authored
      Several issues related to strange mount/umount behavior were reported
      and this commit should address most of them.  The original idea was
      to put in place a zfs mount helper (mount.zfs).  This helper is used
      to enforce 'legacy' mount behavior, and perform any extra mount argument
      processing (selinux, zfsutil, etc).  This helper wasn't ready for the
      0.6.0-rc1 release but with this change it's functional but needs to
      extensively tested.
      
      This change addresses the following open issues.
      Closes #101
      Closes #107
      Closes #113
      Closes #115
      Closes #119
      6adf4587
  28. 25 Feb, 2011 1 commit
  29. 10 Feb, 2011 1 commit
    • Brian Behlendorf's avatar
      Add Linux Compat Infrastructure · 8299a1f4
      Brian Behlendorf authored
      Lay the initial ground work for a include/linux/ compatibility
      directory.  This was less critical in the past because the bulk
      of the ZFS code consumes the Solaris API via the SPL.  This API
      was stable and the bulk Linux API differences were handled in
      the SPL.
      
      However, with the addition of a full Posix layer written directly
      against the Linux APIs we are going to need more compatibility
      code.  It makes sense that all this code should be cleanly located
      in one place.  Subsequent patches should move the existing zvol
      and vdev_disk compatibility code in to this directory.
      8299a1f4
  30. 17 Sep, 2010 1 commit
    • Brian Behlendorf's avatar
      Add [-m map] option to zpool_layout · a5b4d635
      Brian Behlendorf authored
      By default the zpool_layout command would always use the slot
      number assigned by Linux when generating the zdev.conf file.
      This is a reasonable default there are cases when it makes
      sense to remap the slot id assigned by Linux using your own
      custom mapping.
      
      This commit adds support to zpool_layout to provide a custom
      slot mapping file.  The file contains in the first column the
      Linux slot it and in the second column the custom slot mapping.
      By passing this map file with '-m map' to zpool_config the
      mapping will be applied when generating zdev.conf.
      
      Additionally, two sample mapping have been added which reflect
      different ways to map the slots in the dragon drawers.
      a5b4d635
  31. 08 Sep, 2010 1 commit
    • Brian Behlendorf's avatar
      Support custom build directories and move includes · 6283f55e
      Brian Behlendorf authored
      One of the neat tricks an autoconf style project is capable of
      is allow configurion/building in a directory other than the
      source directory.  The major advantage to this is that you can
      build the project various different ways while making changes
      in a single source tree.
      
      For example, this project is designed to work on various different
      Linux distributions each of which work slightly differently.  This
      means that changes need to verified on each of those supported
      distributions perferably before the change is committed to the
      public git repo.
      
      Using nfs and custom build directories makes this much easier.
      I now have a single source tree in nfs mounted on several different
      systems each running a supported distribution.  When I make a
      change to the source base I suspect may break things I can
      concurrently build from the same source on all the systems each
      in their own subdirectory.
      
      wget -c http://github.com/downloads/behlendorf/zfs/zfs-x.y.z.tar.gz
      tar -xzf zfs-x.y.z.tar.gz
      cd zfs-x-y-z
      
      ------------------------- run concurrently ----------------------
      <ubuntu system>  <fedora system>  <debian system>  <rhel6 system>
      mkdir ubuntu     mkdir fedora     mkdir debian     mkdir rhel6
      cd ubuntu        cd fedora        cd debian        cd rhel6
      ../configure     ../configure     ../configure     ../configure
      make             make             make             make
      make check       make check       make check       make check
      
      This change also moves many of the include headers from individual
      incude/sys directories under the modules directory in to a single
      top level include directory.  This has the advantage of making
      the build rules cleaner and logically it makes a bit more sense.
      6283f55e
  32. 31 Aug, 2010 3 commits
  33. 01 Dec, 2008 1 commit
  34. 26 Nov, 2008 3 commits