makefs/zfs: Add a helper function for adding ZAP entries

Some ZAPs are used to represent sets, in which keys and values are the
same.  Add a helper function for this case.  No functional change
intended.

MFC after:	1 week
This commit is contained in:
Mark Johnston 2024-06-01 11:16:18 -04:00
parent 2468e20df4
commit be2f92a96b
3 changed files with 11 additions and 3 deletions

View file

@ -490,7 +490,6 @@ dsl_dir_finalize_props(zfs_dsl_dir_t *dir)
static void
dsl_dir_finalize(zfs_opt_t *zfs, zfs_dsl_dir_t *dir, void *arg __unused)
{
char key[32];
zfs_dsl_dir_t *cdir;
dnode_phys_t *snapnames;
zfs_dsl_dataset_t *headds;
@ -519,8 +518,7 @@ dsl_dir_finalize(zfs_opt_t *zfs, zfs_dsl_dir_t *dir, void *arg __unused)
objset_root_blkptr_copy(os, &headds->phys->ds_bp);
zfs->snapds->phys->ds_num_children++;
snprintf(key, sizeof(key), "%jx", (uintmax_t)headds->dsid);
zap_add_uint64(zfs->cloneszap, key, headds->dsid);
zap_add_uint64_self(zfs->cloneszap, headds->dsid);
bytes = objset_space(os);
headds->phys->ds_used_bytes = bytes;

View file

@ -166,6 +166,15 @@ zap_add_uint64(zfs_zap_t *zap, const char *name, uint64_t val)
zap_add(zap, name, sizeof(uint64_t), 1, (uint8_t *)&val);
}
void
zap_add_uint64_self(zfs_zap_t *zap, uint64_t val)
{
char name[32];
snprintf(name, sizeof(name), "%jx", (uintmax_t)val);
zap_add(zap, name, sizeof(uint64_t), 1, (uint8_t *)&val);
}
void
zap_add_string(zfs_zap_t *zap, const char *name, const char *val)
{

View file

@ -159,6 +159,7 @@ void vdev_fini(zfs_opt_t *zfs);
zfs_zap_t *zap_alloc(zfs_objset_t *, dnode_phys_t *);
void zap_add(zfs_zap_t *, const char *, size_t, size_t, const uint8_t *);
void zap_add_uint64(zfs_zap_t *, const char *, uint64_t);
void zap_add_uint64_self(zfs_zap_t *, uint64_t);
void zap_add_string(zfs_zap_t *, const char *, const char *);
bool zap_entry_exists(zfs_zap_t *, const char *);
void zap_write(zfs_opt_t *, zfs_zap_t *);