diff -r b01a4832cdf9 -r d7059eb1884c usr/src/uts/common/fs/zfs/dsl_dir.c --- a/usr/src/uts/common/fs/zfs/dsl_dir.c Wed Mar 06 17:57:09 2013 -0800 +++ b/usr/src/uts/common/fs/zfs/dsl_dir.c Fri Mar 08 10:41:28 2013 -0800 @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright (c) 2013 by Delphix. All rights reserved. */ #include @@ -249,12 +249,12 @@ char *p; if ((path == NULL) || (path[0] == '\0')) - return (ENOENT); + return (SET_ERROR(ENOENT)); /* This would be a good place to reserve some namespace... */ p = strpbrk(path, "/@"); if (p && (p[1] == '/' || p[1] == '@')) { /* two separators in a row */ - return (EINVAL); + return (SET_ERROR(EINVAL)); } if (p == NULL || p == path) { /* @@ -264,14 +264,14 @@ */ if (p != NULL && (p[0] != '@' || strpbrk(path+1, "/@") || p[1] == '\0')) - return (EINVAL); + return (SET_ERROR(EINVAL)); if (strlen(path) >= MAXNAMELEN) - return (ENAMETOOLONG); + return (SET_ERROR(ENAMETOOLONG)); (void) strcpy(component, path); p = NULL; } else if (p[0] == '/') { if (p - path >= MAXNAMELEN) - return (ENAMETOOLONG); + return (SET_ERROR(ENAMETOOLONG)); (void) strncpy(component, path, p - path); component[p - path] = '\0'; p++; @@ -281,9 +281,9 @@ * any more slashes. */ if (strchr(path, '/')) - return (EINVAL); + return (SET_ERROR(EINVAL)); if (p - path >= MAXNAMELEN) - return (ENAMETOOLONG); + return (SET_ERROR(ENAMETOOLONG)); (void) strncpy(component, path, p - path); component[p - path] = '\0'; } else { @@ -317,7 +317,7 @@ /* Make sure the name is in the specified pool. */ spaname = spa_name(dp->dp_spa); if (strcmp(buf, spaname) != 0) - return (EINVAL); + return (SET_ERROR(EINVAL)); ASSERT(dsl_pool_config_held(dp)); @@ -368,7 +368,7 @@ /* bad path name */ dsl_dir_rele(dd, tag); dprintf("next=%p (%s) tail=%p\n", next, next?next:"", tailp); - err = ENOENT; + err = SET_ERROR(ENOENT); } if (tailp != NULL) *tailp = next; @@ -677,7 +677,7 @@ used_on_disk>>10, est_inflight>>10, quota>>10, asize>>10, retval); mutex_exit(&dd->dd_lock); - return (retval); + return (SET_ERROR(retval)); } /* We need to up our estimated delta before dropping dd_lock */ @@ -740,7 +740,7 @@ if (err == EAGAIN) { txg_delay(dd->dd_pool, tx->tx_txg, MSEC2NSEC(10), MSEC2NSEC(10)); - err = ERESTART; + err = SET_ERROR(ERESTART); } dsl_pool_memory_pressure(dd->dd_pool); } @@ -950,7 +950,7 @@ if ((dmu_tx_is_syncing(tx) || towrite == 0) && (newval < ds->ds_dir->dd_phys->dd_reserved || newval < ds->ds_dir->dd_phys->dd_used_bytes + towrite)) { - error = ENOSPC; + error = SET_ERROR(ENOSPC); } mutex_exit(&ds->ds_dir->dd_lock); dsl_dataset_rele(ds, FTAG); @@ -1044,7 +1044,7 @@ if (delta > avail || (dd->dd_phys->dd_quota > 0 && newval > dd->dd_phys->dd_quota)) - error = ENOSPC; + error = SET_ERROR(ENOSPC); } dsl_dataset_rele(ds, FTAG); @@ -1152,7 +1152,7 @@ dsl_dataset_name(ds, namebuf); if (strlen(namebuf) + *deltap >= MAXNAMELEN) - return (ENAMETOOLONG); + return (SET_ERROR(ENAMETOOLONG)); return (0); } @@ -1183,14 +1183,14 @@ if (dd->dd_pool != newparent->dd_pool) { dsl_dir_rele(newparent, FTAG); dsl_dir_rele(dd, FTAG); - return (ENXIO); + return (SET_ERROR(ENXIO)); } /* new name should not already exist */ if (mynewname == NULL) { dsl_dir_rele(newparent, FTAG); dsl_dir_rele(dd, FTAG); - return (EEXIST); + return (SET_ERROR(EEXIST)); } /* if the name length is growing, validate child name lengths */ @@ -1213,7 +1213,7 @@ if (closest_common_ancestor(dd, newparent) == dd) { dsl_dir_rele(newparent, FTAG); dsl_dir_rele(dd, FTAG); - return (EINVAL); + return (SET_ERROR(EINVAL)); } error = dsl_dir_transfer_possible(dd->dd_parent, @@ -1315,7 +1315,7 @@ adelta = would_change(sdd, -space, ancestor); avail = dsl_dir_space_available(tdd, ancestor, adelta, FALSE); if (avail < space) - return (ENOSPC); + return (SET_ERROR(ENOSPC)); return (0); }