mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 10:01:01 +03:00
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:
parent
b24827ac1e
commit
e19572e4cc
@ -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[];
|
||||||
|
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user