summaryrefslogtreecommitdiff
path: root/usr/src/lib/libzfs/common/libzfs_dataset.c
diff options
context:
space:
mode:
authorck153898 <none@none>2006-12-13 11:32:10 -0800
committerck153898 <none@none>2006-12-13 11:32:10 -0800
commit7b55fa8ea6046becb3b72f8886a503979c322084 (patch)
tree7ecd98acb42e2602e7a6681103607d85a593347b /usr/src/lib/libzfs/common/libzfs_dataset.c
parente71762350b6d2f119e1206a5e15f15aafa47fc95 (diff)
downloadillumos-joyent-7b55fa8ea6046becb3b72f8886a503979c322084.tar.gz
PSARC/2006/638 noxattr ZFS property
6351954 zfs missing noxattr mount flag
Diffstat (limited to 'usr/src/lib/libzfs/common/libzfs_dataset.c')
-rw-r--r--usr/src/lib/libzfs/common/libzfs_dataset.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/usr/src/lib/libzfs/common/libzfs_dataset.c b/usr/src/lib/libzfs/common/libzfs_dataset.c
index d3ff17dbe3..5a33047b0f 100644
--- a/usr/src/lib/libzfs/common/libzfs_dataset.c
+++ b/usr/src/lib/libzfs/common/libzfs_dataset.c
@@ -1316,7 +1316,8 @@ get_numeric_property(zfs_handle_t *zhp, zfs_prop_t prop, zfs_source_t *src,
prop == ZFS_PROP_EXEC ||
prop == ZFS_PROP_READONLY ||
prop == ZFS_PROP_SETUID ||
- prop == ZFS_PROP_MOUNTED)) {
+ prop == ZFS_PROP_MOUNTED ||
+ prop == ZFS_PROP_XATTR)) {
struct mnttab search = { 0 }, entry;
search.mnt_special = (char *)zhp->zfs_name;
@@ -1439,6 +1440,20 @@ get_numeric_property(zfs_handle_t *zhp, zfs_prop_t prop, zfs_source_t *src,
*val = getprop_uint64(zhp, prop, source);
break;
+ case ZFS_PROP_XATTR:
+ *val = getprop_uint64(zhp, prop, source);
+
+ if (hasmntopt(&mnt, MNTOPT_XATTR) && !*val) {
+ *val = B_TRUE;
+ if (src)
+ *src = ZFS_SRC_TEMPORARY;
+ } else if (hasmntopt(&mnt, MNTOPT_NOXATTR) && *val) {
+ *val = B_FALSE;
+ if (src)
+ *src = ZFS_SRC_TEMPORARY;
+ }
+ break;
+
default:
zfs_error_aux(zhp->zfs_hdl, dgettext(TEXT_DOMAIN,
"cannot get non-numeric property"));
@@ -1508,6 +1523,7 @@ zfs_prop_get(zfs_handle_t *zhp, zfs_prop_t prop, char *propbuf, size_t proplen,
case ZFS_PROP_DEVICES:
case ZFS_PROP_EXEC:
case ZFS_PROP_CANMOUNT:
+ case ZFS_PROP_XATTR:
/*
* Basic boolean values are built on top of
* get_numeric_property().