X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=lib%2Flibzfs%2Flibzfs_dataset.c;h=d4691dd2a178b0ea9de10b4682ff624ce22b6e75;hb=295304bed6fa6744b8d011e36b9c2180311cedb2;hp=7ccd941c69202f03963ea5a22911987481a0bea6;hpb=08b1b21d58b1ae8a67fec38ccda02489c4aa8115;p=zfs.git diff --git a/lib/libzfs/libzfs_dataset.c b/lib/libzfs/libzfs_dataset.c index 7ccd941..d4691dd 100644 --- a/lib/libzfs/libzfs_dataset.c +++ b/lib/libzfs/libzfs_dataset.c @@ -2532,29 +2532,29 @@ userquota_propname_decode(const char *propname, boolean_t zoned, return (ENOSYS); #endif /* HAVE_IDMAP */ } else { -#ifdef HAVE_IDMAP /* It's a user/group ID (eg "12345"). */ uid_t id; - idmap_rid_t rid; - char *mapdomain; char *end; - id = strtoul(cp, &end, 10); if (*end != '\0') return (EINVAL); if (id > MAXUID) { +#ifdef HAVE_IDMAP /* It's an ephemeral ID. */ + idmap_rid_t rid; + char *mapdomain; + if (idmap_id_to_numeric_domain_rid(id, isuser, &mapdomain, &rid) != 0) return (ENOENT); (void) strlcpy(domain, mapdomain, domainlen); *ridp = rid; +#else + return (ENOSYS); +#endif /* HAVE_IDMAP */ } else { *ridp = id; } -#else - return (ENOSYS); -#endif /* HAVE_IDMAP */ } return (0); @@ -3700,7 +3700,7 @@ zfs_rollback(zfs_handle_t *zhp, zfs_handle_t *snap, boolean_t force) zhp->zfs_type == ZFS_TYPE_VOLUME); /* - * Destroy all recent snapshots and its dependends. + * Destroy all recent snapshots and their dependents. */ cb.cb_force = force; cb.cb_target = snap->zfs_name; @@ -4016,6 +4016,14 @@ zvol_create_link_common(libzfs_handle_t *hdl, const char *dataset, int ifexists) */ return (0); + case ENODEV: + /* + * snapdev set to hidden : + * device creation was not permitted (see zvol.c) + * ignore error quietly + */ + return (0); + case ENOENT: /* * Dataset does not exist in the kernel. If we