git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Illumos #3422, #3425
[zfs.git]
/
module
/
zfs
/
zap.c
diff --git
a/module/zfs/zap.c
b/module/zfs/zap.c
index
59f62fa
..
a6c8c82
100644
(file)
--- a/
module/zfs/zap.c
+++ b/
module/zfs/zap.c
@@
-1094,6
+1094,16
@@
zap_add_int_key(objset_t *os, uint64_t obj,
}
int
}
int
+zap_update_int_key(objset_t *os, uint64_t obj,
+ uint64_t key, uint64_t value, dmu_tx_t *tx)
+{
+ char name[20];
+
+ (void) snprintf(name, sizeof (name), "%llx", (longlong_t)key);
+ return (zap_update(os, obj, name, 8, 1, &value, tx));
+}
+
+int
zap_lookup_int_key(objset_t *os, uint64_t obj, uint64_t key, uint64_t *valuep)
{
char name[20];
zap_lookup_int_key(objset_t *os, uint64_t obj, uint64_t key, uint64_t *valuep)
{
char name[20];
@@
-1247,13
+1257,13
@@
fzap_cursor_move_to_key(zap_cursor_t *zc, zap_name_t *zn)
return (err);
err = zap_leaf_lookup(l, zn, &zeh);
return (err);
err = zap_leaf_lookup(l, zn, &zeh);
- if (err != 0)
- return (err);
-
- zc->zc_leaf = l;
- zc->zc_hash = zeh.zeh_hash;
- zc->zc_cd = zeh.zeh_cd;
+ if (err == 0) {
+ zc->zc_leaf = l;
+ zc->zc_hash = zeh.zeh_hash;
+ zc->zc_cd = zeh.zeh_cd;
+ }
+ rw_exit(&l->l_rwlock);
return (err);
}
return (err);
}