summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
diff options
context:
space:
mode:
authormm <mm@FreeBSD.org>2013-04-06 10:39:38 +0000
committermm <mm@FreeBSD.org>2013-04-06 10:39:38 +0000
commit696d961cbd8bcba286545fef03c51a896b56d229 (patch)
tree557b6db8b3be2ff65382b43d2ae9edd99d502a44 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
parentf25063da0770fd0a9b4ed6ffdd6687e7de116255 (diff)
parent70e6431e93f13270d6907ce23de3c7da99803278 (diff)
downloadFreeBSD-src-696d961cbd8bcba286545fef03c51a896b56d229.zip
FreeBSD-src-696d961cbd8bcba286545fef03c51a896b56d229.tar.gz
MFV r248217:
Merge change from vendor to reduce diff only. ZFS dtrace probes are not supported on FreeBSD yet. Illumos ZFS issues: 3598 want to dtrace when errors are generated in zfs MFC after: 3 weeks
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c45
1 files changed, 22 insertions, 23 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
index 05f890b..47356c2 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c
@@ -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 <sys/zio.h>
@@ -791,7 +791,7 @@ zap_lookup_norm(objset_t *os, uint64_t zapobj, const char *name,
zn = zap_name_alloc(zap, name, mt);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
if (!zap->zap_ismicro) {
@@ -800,12 +800,12 @@ zap_lookup_norm(objset_t *os, uint64_t zapobj, const char *name,
} else {
mze = mze_find(zn);
if (mze == NULL) {
- err = ENOENT;
+ err = SET_ERROR(ENOENT);
} else {
if (num_integers < 1) {
- err = EOVERFLOW;
+ err = SET_ERROR(EOVERFLOW);
} else if (integer_size != 8) {
- err = EINVAL;
+ err = SET_ERROR(EINVAL);
} else {
*(uint64_t *)buf =
MZE_PHYS(zap, mze)->mze_value;
@@ -837,7 +837,7 @@ zap_prefetch_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
zn = zap_name_alloc_uint64(zap, key, key_numints);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
fzap_prefetch(zn);
@@ -860,7 +860,7 @@ zap_lookup_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
zn = zap_name_alloc_uint64(zap, key, key_numints);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
err = fzap_lookup(zn, integer_size, num_integers, buf,
@@ -895,14 +895,14 @@ zap_length(objset_t *os, uint64_t zapobj, const char *name,
zn = zap_name_alloc(zap, name, MT_EXACT);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
if (!zap->zap_ismicro) {
err = fzap_length(zn, integer_size, num_integers);
} else {
mze = mze_find(zn);
if (mze == NULL) {
- err = ENOENT;
+ err = SET_ERROR(ENOENT);
} else {
if (integer_size)
*integer_size = 8;
@@ -929,7 +929,7 @@ zap_length_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
zn = zap_name_alloc_uint64(zap, key, key_numints);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
err = fzap_length(zn, integer_size, num_integers);
zap_name_free(zn);
@@ -998,7 +998,7 @@ zap_add(objset_t *os, uint64_t zapobj, const char *key,
zn = zap_name_alloc(zap, key, MT_EXACT);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
if (!zap->zap_ismicro) {
err = fzap_add(zn, integer_size, num_integers, val, tx);
@@ -1012,7 +1012,7 @@ zap_add(objset_t *os, uint64_t zapobj, const char *key,
} else {
mze = mze_find(zn);
if (mze != NULL) {
- err = EEXIST;
+ err = SET_ERROR(EEXIST);
} else {
mzap_addent(zn, *intval);
}
@@ -1039,7 +1039,7 @@ zap_add_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
zn = zap_name_alloc_uint64(zap, key, key_numints);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
err = fzap_add(zn, integer_size, num_integers, val, tx);
zap = zn->zn_zap; /* fzap_add() may change zap */
@@ -1075,7 +1075,7 @@ zap_update(objset_t *os, uint64_t zapobj, const char *name,
zn = zap_name_alloc(zap, name, MT_EXACT);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
if (!zap->zap_ismicro) {
err = fzap_update(zn, integer_size, num_integers, val, tx);
@@ -1120,7 +1120,7 @@ zap_update_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
zn = zap_name_alloc_uint64(zap, key, key_numints);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
err = fzap_update(zn, integer_size, num_integers, val, tx);
zap = zn->zn_zap; /* fzap_update() may change zap */
@@ -1151,14 +1151,14 @@ zap_remove_norm(objset_t *os, uint64_t zapobj, const char *name,
zn = zap_name_alloc(zap, name, mt);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
if (!zap->zap_ismicro) {
err = fzap_remove(zn, tx);
} else {
mze = mze_find(zn);
if (mze == NULL) {
- err = ENOENT;
+ err = SET_ERROR(ENOENT);
} else {
zap->zap_m.zap_num_entries--;
bzero(&zap->zap_m.zap_phys->mz_chunk[mze->mze_chunkid],
@@ -1185,7 +1185,7 @@ zap_remove_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key,
zn = zap_name_alloc_uint64(zap, key, key_numints);
if (zn == NULL) {
zap_unlockdir(zap);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
err = fzap_remove(zn, tx);
zap_name_free(zn);
@@ -1263,7 +1263,7 @@ zap_cursor_retrieve(zap_cursor_t *zc, zap_attribute_t *za)
mzap_ent_t *mze;
if (zc->zc_hash == -1ULL)
- return (ENOENT);
+ return (SET_ERROR(ENOENT));
if (zc->zc_zap == NULL) {
int hb;
@@ -1289,8 +1289,6 @@ zap_cursor_retrieve(zap_cursor_t *zc, zap_attribute_t *za)
if (!zc->zc_zap->zap_ismicro) {
err = fzap_cursor_retrieve(zc->zc_zap, zc, za);
} else {
- err = ENOENT;
-
mze_tofind.mze_hash = zc->zc_hash;
mze_tofind.mze_cd = zc->zc_cd;
@@ -1313,6 +1311,7 @@ zap_cursor_retrieve(zap_cursor_t *zc, zap_attribute_t *za)
err = 0;
} else {
zc->zc_hash = -1ULL;
+ err = SET_ERROR(ENOENT);
}
}
rw_exit(&zc->zc_zap->zap_rwlock);
@@ -1346,7 +1345,7 @@ zap_cursor_move_to_key(zap_cursor_t *zc, const char *name, matchtype_t mt)
zn = zap_name_alloc(zc->zc_zap, name, mt);
if (zn == NULL) {
rw_exit(&zc->zc_zap->zap_rwlock);
- return (ENOTSUP);
+ return (SET_ERROR(ENOTSUP));
}
if (!zc->zc_zap->zap_ismicro) {
@@ -1354,7 +1353,7 @@ zap_cursor_move_to_key(zap_cursor_t *zc, const char *name, matchtype_t mt)
} else {
mze = mze_find(zn);
if (mze == NULL) {
- err = ENOENT;
+ err = SET_ERROR(ENOENT);
goto out;
}
zc->zc_hash = mze->mze_hash;
OpenPOWER on IntegriCloud