OpenZFS 5428 - provide fts(), reallocarray(), and strtonum()

Authored by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Approved by: Joshua M. Clulow <josh@sysmgr.org>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>

Porting Notes:
* All hunks unrelated to ZFS were dropped.

OpenZFS-issue: https://www.illumos.org/issues/5428
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/4585130
Closes #6326
This commit is contained in:
Yuri Pankov 2017-06-12 20:16:28 -07:00 committed by Brian Behlendorf
parent b24827ac1e
commit e19572e4cc
7 changed files with 12 additions and 14 deletions

View File

@ -860,7 +860,7 @@ extern int spa_maxdnodesize(spa_t *spa);
extern void zfs_blkptr_verify(spa_t *spa, const blkptr_t *bp); extern void zfs_blkptr_verify(spa_t *spa, const blkptr_t *bp);
extern int spa_mode(spa_t *spa); extern int spa_mode(spa_t *spa);
extern uint64_t strtonum(const char *str, char **nptr); extern uint64_t zfs_strtonum(const char *str, char **nptr);
extern char *spa_his_ievent_table[]; extern char *spa_his_ievent_table[];

View File

@ -78,10 +78,8 @@ dsl_deadlist_load_tree(dsl_deadlist_t *dl)
for (zap_cursor_init(&zc, dl->dl_os, dl->dl_object); for (zap_cursor_init(&zc, dl->dl_os, dl->dl_object);
zap_cursor_retrieve(&zc, &za) == 0; zap_cursor_retrieve(&zc, &za) == 0;
zap_cursor_advance(&zc)) { zap_cursor_advance(&zc)) {
dsl_deadlist_entry_t *dle; dsl_deadlist_entry_t *dle = kmem_alloc(sizeof (*dle), KM_SLEEP);
dle->dle_mintxg = zfs_strtonum(za.za_name, NULL);
dle = kmem_alloc(sizeof (*dle), KM_SLEEP);
dle->dle_mintxg = strtonum(za.za_name, NULL);
VERIFY3U(0, ==, bpobj_open(&dle->dle_bpobj, dl->dl_os, VERIFY3U(0, ==, bpobj_open(&dle->dle_bpobj, dl->dl_os,
za.za_first_integer)); za.za_first_integer));
avl_add(&dl->dl_tree, dle); avl_add(&dl->dl_tree, dle);
@ -494,7 +492,7 @@ dsl_deadlist_merge(dsl_deadlist_t *dl, uint64_t obj, dmu_tx_t *tx)
for (zap_cursor_init(&zc, dl->dl_os, obj); for (zap_cursor_init(&zc, dl->dl_os, obj);
zap_cursor_retrieve(&zc, &za) == 0; zap_cursor_retrieve(&zc, &za) == 0;
zap_cursor_advance(&zc)) { zap_cursor_advance(&zc)) {
uint64_t mintxg = strtonum(za.za_name, NULL); uint64_t mintxg = zfs_strtonum(za.za_name, NULL);
dsl_deadlist_insert_bpobj(dl, za.za_first_integer, mintxg, tx); dsl_deadlist_insert_bpobj(dl, za.za_first_integer, mintxg, tx);
VERIFY3U(0, ==, zap_remove_int(dl->dl_os, obj, mintxg, tx)); VERIFY3U(0, ==, zap_remove_int(dl->dl_os, obj, mintxg, tx));
} }

View File

@ -1512,7 +1512,7 @@ dsl_scan_visit(dsl_scan_t *scn, dmu_tx_t *tx)
dsl_dataset_t *ds; dsl_dataset_t *ds;
uint64_t dsobj; uint64_t dsobj;
dsobj = strtonum(za->za_name, NULL); dsobj = zfs_strtonum(za->za_name, NULL);
VERIFY3U(0, ==, zap_remove_int(dp->dp_meta_objset, VERIFY3U(0, ==, zap_remove_int(dp->dp_meta_objset,
scn->scn_phys.scn_queue_obj, dsobj, tx)); scn->scn_phys.scn_queue_obj, dsobj, tx));

View File

@ -342,7 +342,7 @@ static int
dsl_dataset_hold_obj_string(dsl_pool_t *dp, const char *dsobj, void *tag, dsl_dataset_hold_obj_string(dsl_pool_t *dp, const char *dsobj, void *tag,
dsl_dataset_t **dsp) dsl_dataset_t **dsp)
{ {
return (dsl_dataset_hold_obj(dp, strtonum(dsobj, NULL), tag, dsp)); return (dsl_dataset_hold_obj(dp, zfs_strtonum(dsobj, NULL), tag, dsp));
} }
static int static int

View File

@ -73,13 +73,13 @@ bookmark_to_name(zbookmark_phys_t *zb, char *buf, size_t len)
static void static void
name_to_bookmark(char *buf, zbookmark_phys_t *zb) name_to_bookmark(char *buf, zbookmark_phys_t *zb)
{ {
zb->zb_objset = strtonum(buf, &buf); zb->zb_objset = zfs_strtonum(buf, &buf);
ASSERT(*buf == ':'); ASSERT(*buf == ':');
zb->zb_object = strtonum(buf + 1, &buf); zb->zb_object = zfs_strtonum(buf + 1, &buf);
ASSERT(*buf == ':'); ASSERT(*buf == ':');
zb->zb_level = (int)strtonum(buf + 1, &buf); zb->zb_level = (int)zfs_strtonum(buf + 1, &buf);
ASSERT(*buf == ':'); ASSERT(*buf == ':');
zb->zb_blkid = strtonum(buf + 1, &buf); zb->zb_blkid = zfs_strtonum(buf + 1, &buf);
ASSERT(*buf == '\0'); ASSERT(*buf == '\0');
} }
#endif #endif

View File

@ -1465,7 +1465,7 @@ zfs_panic_recover(const char *fmt, ...)
* lowercase hexadecimal numbers that don't overflow. * lowercase hexadecimal numbers that don't overflow.
*/ */
uint64_t uint64_t
strtonum(const char *str, char **nptr) zfs_strtonum(const char *str, char **nptr)
{ {
uint64_t val = 0; uint64_t val = 0;
char c; char c;

View File

@ -604,7 +604,7 @@ fuidstr_to_sid(zfsvfs_t *zfsvfs, const char *fuidstr,
uint64_t fuid; uint64_t fuid;
const char *domain; const char *domain;
fuid = strtonum(fuidstr, NULL); fuid = zfs_strtonum(fuidstr, NULL);
domain = zfs_fuid_find_by_idx(zfsvfs, FUID_INDEX(fuid)); domain = zfs_fuid_find_by_idx(zfsvfs, FUID_INDEX(fuid));
if (domain) if (domain)