]> git.proxmox.com Git - mirror_zfs.git/commit
Honor xattr=sa dataset property
authorNed Bass <bass6@llnl.gov>
Wed, 16 Sep 2015 09:49:09 +0000 (02:49 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Sat, 19 Sep 2015 21:04:14 +0000 (14:04 -0700)
commit3af56fd95fbe8b417d7ed7c9c25ef59d6f1ee161
treef3900dad139a246b7aa961bbd30735e23299a153
parent66aad10ce88f2a599365322a79f20d02f3c64393
Honor xattr=sa dataset property

ZFS incorrectly uses directory-based extended attributes even when
xattr=sa is specified as a dataset property or mount option. Support to
honor temporary mount options including "xattr" was added in commit
0282c4137e7409e6d85289f4955adf07fac834f5. There are two issues with the
mount option handling:

* Libzfs has historically included "xattr" in its list of default mount
  options. This overrides the dataset property, so the dataset is always
  configured to use directory-based xattrs even when the xattr dataset
  property is set to off or sa. Address this by removing "xattr" from
  the set of default mount options in libzfs.

* There was no way to enable system attribute-based extended attributes
  using temporary mount options. Add the mount options "saxattr" and
  "dirxattr" which enable the xattr behavior their names suggest.  This
  approach has the advantages of mirroring the valid xattr dataset
  property values and following existing conventions for mount option
  names.

Signed-off-by: Ned Bass <bass6@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #3787
include/sys/mntent.h
include/sys/zfs_vfsops.h
lib/libzfs/libzfs_mount.c
man/man8/mount.zfs.8
module/zfs/zpl_super.c