Lines Matching refs:data

201 						 void *buf, struct zfs_data *data);
205 size_t *size, struct zfs_data *data);
341 uberblock_verify(uberblock_t *uber, int offset, struct zfs_data *data) in uberblock_verify() argument
347 if (uber->ub_txg < data->label_txg) { in uberblock_verify()
349 uber->ub_txg, data->label_txg); in uberblock_verify()
369 (char *) uber, UBERBLOCK_SIZE(data->vdev_ashift)); in uberblock_verify()
375 err = zio_read(&uber->ub_rootbp, endian, &osp, &ospsize, data); in uberblock_verify()
393 static uberblock_t *find_bestub(char *ub_array, struct zfs_data *data) in find_bestub() argument
395 const uint64_t sector = data->vdev_phys_sector; in find_bestub()
401 const unsigned int UBCOUNT = UBERBLOCK_COUNT(data->vdev_ashift); in find_bestub()
402 const uint64_t UBBYTES = UBERBLOCK_SIZE(data->vdev_ashift); in find_bestub()
408 err = uberblock_verify(ubnext, offset, data); in find_bestub()
446 struct zfs_data *data) in zio_read_gang() argument
488 err = zio_read_data(&zio_gb->zg_blkptr[i], endian, buf, data); in zio_read_gang()
504 struct zfs_data *data) in zio_read_data() argument
519 err = zio_read_gang(bp, endian, &bp->blk_dva[i], buf, data); in zio_read_data()
554 size_t *size, struct zfs_data *data) in zio_read() argument
590 err = zio_read_data(bp, endian, compbuf, data); in zio_read()
623 zfs_endian_t *endian_out, struct zfs_data *data) in dmu_read() argument
660 err = zio_read(bp, endian, buf, 0, data); in dmu_read()
664 err = zio_read(bp, endian, &tmpbuf, 0, data); in dmu_read()
706 struct zfs_data *data), in mzap_iterate() argument
707 struct zfs_data *data) in mzap_iterate()
716 data)) in mzap_iterate()
898 char *name, uint64_t *value, struct zfs_data *data) in fzap_lookup() argument
926 err = dmu_read(zap_dnode, blkid, &l, &leafendian, data); in fzap_lookup()
940 struct zfs_data *data), in fzap_iterate() argument
941 struct zfs_data *data) in fzap_iterate()
968 err = dmu_read(zap_dnode, blkid, &l_in, &endian, data); in fzap_iterate()
1010 if (hook(buf, val, data)) in fzap_iterate()
1025 struct zfs_data *data) in zap_lookup() argument
1036 err = dmu_read(zap_dnode, 0, &zapbuf, &endian, data); in zap_lookup()
1047 err = (fzap_lookup(zap_dnode, zapbuf, name, val, data)); in zap_lookup()
1060 struct zfs_data *data), in zap_iterate() argument
1061 struct zfs_data *data) in zap_iterate()
1072 err = dmu_read(zap_dnode, 0, &zapbuf, &endian, data); in zap_iterate()
1078 ret = mzap_iterate(zapbuf, endian, size, hook, data); in zap_iterate()
1083 ret = fzap_iterate(zap_dnode, zapbuf, hook, data); in zap_iterate()
1102 dnode_end_t *buf, struct zfs_data *data) in dnode_get() argument
1118 if (data->dnode_buf != NULL && memcmp(data->dnode_mdn, mdn, in dnode_get()
1120 && objnum >= data->dnode_start && objnum < data->dnode_end) { in dnode_get()
1121 memmove(&(buf->dn), &(data->dnode_buf)[idx], DNODE_SIZE); in dnode_get()
1122 buf->endian = data->dnode_endian; in dnode_get()
1130 err = dmu_read(mdn, blkid, &dnbuf, &endian, data); in dnode_get()
1134 free(data->dnode_buf); in dnode_get()
1135 free(data->dnode_mdn); in dnode_get()
1136 data->dnode_mdn = malloc(sizeof(*mdn)); in dnode_get()
1137 if (!data->dnode_mdn) { in dnode_get()
1138 data->dnode_buf = 0; in dnode_get()
1140 memcpy(data->dnode_mdn, mdn, sizeof(*mdn)); in dnode_get()
1141 data->dnode_buf = dnbuf; in dnode_get()
1142 data->dnode_start = blkid << epbs; in dnode_get()
1143 data->dnode_end = (blkid + 1) << epbs; in dnode_get()
1144 data->dnode_endian = endian; in dnode_get()
1165 struct zfs_data *data) in dnode_get_path() argument
1184 &(dnode_path->dn), data); in dnode_get_path()
1190 err = zap_lookup(&(dnode_path->dn), ZPL_VERSION_STR, &version, data); in dnode_get_path()
1201 err = zap_lookup(&(dnode_path->dn), ZFS_ROOT_OBJ, &objnum, data); in dnode_get_path()
1207 err = dnode_get(mdn, objnum, 0, &(dnode_path->dn), data); in dnode_get_path()
1254 err = zap_lookup(&(dnode_path->dn), cname, &objnum, data); in dnode_get_path()
1267 err = dnode_get(mdn, objnum, 0, &(dnode_path->dn), data); in dnode_get_path()
1298 dnode_end_t *mdn, struct zfs_data *data) in get_filesystem_dnode() argument
1304 DMU_OT_OBJECT_DIRECTORY, mdn, data); in get_filesystem_dnode()
1308 err = zap_lookup(mdn, DMU_POOL_ROOT_DATASET, &objnum, data); in get_filesystem_dnode()
1312 err = dnode_get(mosmdn, objnum, DMU_OT_DSL_DIR, mdn, data); in get_filesystem_dnode()
1334 DMU_OT_DSL_DIR_CHILD_MAP, mdn, data); in get_filesystem_dnode()
1338 err = zap_lookup(mdn, cname, &objnum, data); in get_filesystem_dnode()
1342 err = dnode_get(mosmdn, objnum, DMU_OT_DSL_DIR, mdn, data); in get_filesystem_dnode()
1352 make_mdn(dnode_end_t *mdn, struct zfs_data *data) in make_mdn() argument
1360 err = zio_read(bp, mdn->endian, &osp, &ospsize, data); in make_mdn()
1379 struct zfs_data *data) in dnode_get_fullpath() argument
1420 err = get_filesystem_dnode(&(data->mos), fsname, dn, data); in dnode_get_fullpath()
1430 err = dnode_get(&(data->mos), headobj, DMU_OT_DSL_DATASET, mdn, data); in dnode_get_fullpath()
1442 err = dnode_get(&(data->mos), snapobj, in dnode_get_fullpath()
1443 DMU_OT_DSL_DS_SNAP_MAP, mdn, data); in dnode_get_fullpath()
1445 err = zap_lookup(mdn, snapname, &headobj, data); in dnode_get_fullpath()
1447 err = dnode_get(&(data->mos), headobj, DMU_OT_DSL_DATASET, mdn, data); in dnode_get_fullpath()
1458 make_mdn(mdn, data); in dnode_get_fullpath()
1465 err = dnode_get_path(mdn, filename, dn, data); in dnode_get_fullpath()
1706 int_zfs_fetch_nvlist(struct zfs_data *data, char **nvlist) in int_zfs_fetch_nvlist() argument
1712 err = zfs_devread(data->vdev_phys_sector, 0, VDEV_PHYS_SIZE, *nvlist); in int_zfs_fetch_nvlist()
1726 check_pool_label(struct zfs_data *data) in check_pool_label() argument
1736 err = int_zfs_fetch_nvlist(data, &nvlist); in check_pool_label()
1754 data->label_txg = 0; in check_pool_label()
1756 &data->label_txg); in check_pool_label()
1764 if (data->label_txg == 0) { in check_pool_label()
1794 &data->vdev_ashift); in check_pool_label()
1809 found = zfs_nvlist_lookup_uint64(nvlist, ZPOOL_CONFIG_POOL_GUID, &data->pool_guid); in check_pool_label()
1819 (unsigned long long) data->pool_guid, in check_pool_label()
1820 (unsigned long long) data->pool_guid, in check_pool_label()
1823 (unsigned long long) data->label_txg, in check_pool_label()
1825 (unsigned long long) data->vdev_ashift); in check_pool_label()
1842 zfs_unmount(struct zfs_data *data) in zfs_unmount() argument
1844 free(data->dnode_buf); in zfs_unmount()
1845 free(data->dnode_mdn); in zfs_unmount()
1846 free(data->file_buf); in zfs_unmount()
1847 free(data); in zfs_unmount()
1858 struct zfs_data *data = 0; in zfs_mount() local
1867 data = malloc(sizeof(*data)); in zfs_mount()
1868 if (!data) in zfs_mount()
1870 memset(data, 0, sizeof(*data)); in zfs_mount()
1874 zfs_unmount(data); in zfs_mount()
1881 zfs_unmount(data); in zfs_mount()
1914 data->vdev_phys_sector = labelstart + in zfs_mount()
1917 err = check_pool_label(data); in zfs_mount()
1924 err = zfs_devread(data->vdev_phys_sector + in zfs_mount()
1932 ubcur = find_bestub(ub_array, data); in zfs_mount()
1951 zfs_unmount(data); in zfs_mount()
1964 err = zio_read(&ubbest->ub_rootbp, ub_endian, &osp, &ospsize, data); in zfs_mount()
1968 zfs_unmount(data); in zfs_mount()
1976 zfs_unmount(data); in zfs_mount()
1983 memmove(&(data->mos.dn), &((objset_phys_t *) osp)->os_meta_dnode, DNODE_SIZE); in zfs_mount()
1984 data->mos.endian = in zfs_mount()
1986 memmove(&(data->current_uberblock), ubbest, sizeof(uberblock_t)); in zfs_mount()
1991 return data; in zfs_mount()
2015 struct zfs_data *data; in zfs_open() local
2019 data = zfs_mount(file->device); in zfs_open()
2020 if (!data) in zfs_open()
2023 err = dnode_get_fullpath(fsfilename, &(data->mdn), 0, in zfs_open()
2024 &(data->dnode), &isfs, data); in zfs_open()
2026 zfs_unmount(data); in zfs_open()
2031 zfs_unmount(data); in zfs_open()
2037 if (data->dnode.dn.dn_type != DMU_OT_PLAIN_FILE_CONTENTS) { in zfs_open()
2038 zfs_unmount(data); in zfs_open()
2050 if (data->dnode.dn.dn_bonustype == DMU_OT_SA) { in zfs_open()
2054 if (data->dnode.dn.dn_bonuslen != 0) { in zfs_open()
2055 sahdrp = (sa_hdr_phys_t *) DN_BONUS(&data->dnode.dn); in zfs_open()
2056 } else if (data->dnode.dn.dn_flags & DNODE_FLAG_SPILL_BLKPTR) { in zfs_open()
2057 blkptr_t *bp = &data->dnode.dn.dn_spill; in zfs_open()
2059 err = zio_read(bp, data->dnode.endian, &sahdrp, NULL, data); in zfs_open()
2069 if ((data->dnode.dn.dn_bonuslen == 0) && in zfs_open()
2070 (data->dnode.dn.dn_flags & DNODE_FLAG_SPILL_BLKPTR)) in zfs_open()
2073 …file->size = zfs_to_cpu64(((znode_phys_t *) DN_BONUS(&data->dnode.dn))->zp_size, data->dnode.endia… in zfs_open()
2076 file->data = data; in zfs_open()
2085 struct zfs_data *data = (struct zfs_data *) file->data; in zfs_read() local
2091 if (data->file_buf == NULL) { in zfs_read()
2092 data->file_buf = malloc(SPA_MAXBLOCKSIZE); in zfs_read()
2093 if (!data->file_buf) in zfs_read()
2095 data->file_start = data->file_end = 0; in zfs_read()
2101 if (file->offset >= data->file_start in zfs_read()
2102 && file->offset + len <= data->file_end) { in zfs_read()
2103 memmove(buf, data->file_buf + file->offset - data->file_start, in zfs_read()
2108 blksz = zfs_to_cpu16(data->dnode.dn.dn_datablkszsec, in zfs_read()
2109 data->dnode.endian) << SPA_MINBLOCKSHIFT; in zfs_read()
2126 free(data->file_buf); in zfs_read()
2127 data->file_buf = 0; in zfs_read()
2129 err = dmu_read(&(data->dnode), blkid, &t, in zfs_read()
2130 0, data); in zfs_read()
2131 data->file_buf = t; in zfs_read()
2135 data->file_start = blkid * blksz; in zfs_read()
2136 data->file_end = data->file_start + blksz; in zfs_read()
2138 movesize = min(length, data->file_end - (int)file->offset - red); in zfs_read()
2140 memmove(buf, data->file_buf + blkoff, movesize); in zfs_read()
2152 zfs_unmount((struct zfs_data *) file->data); in zfs_close()
2160 struct zfs_data *data; in zfs_getmdnobj() local
2164 data = zfs_mount(dev); in zfs_getmdnobj()
2165 if (!data) in zfs_getmdnobj()
2168 err = dnode_get_fullpath(fsfilename, &(data->mdn), mdnobj, in zfs_getmdnobj()
2169 &(data->dnode), &isfs, data); in zfs_getmdnobj()
2170 zfs_unmount(data); in zfs_getmdnobj()
2176 dnode_end_t mdn, struct zfs_data *data) in fill_fs_info() argument
2190 err = dnode_get(&(data->mos), headobj, DMU_OT_DSL_DATASET, &mdn, data); in fill_fs_info()
2196 make_mdn(&mdn, data); in fill_fs_info()
2198 &dn, data); in fill_fs_info()
2204 err = zap_lookup(&dn, ZFS_ROOT_OBJ, &objnum, data); in fill_fs_info()
2210 err = dnode_get(&mdn, objnum, 0, &dn, data); in fill_fs_info()
2222 static int iterate_zap(const char *name, uint64_t val, struct zfs_data *data) in iterate_zap() argument
2229 dnode_get(&(data->mdn), val, 0, &dn, data); in iterate_zap()
2235 if (!data->userhook) in iterate_zap()
2237 return data->userhook(name, &info); in iterate_zap()
2240 static int iterate_zap_fs(const char *name, uint64_t val, struct zfs_data *data) in iterate_zap_fs() argument
2245 err = dnode_get(&(data->mos), val, 0, &mdn, data); in iterate_zap_fs()
2251 fill_fs_info(&info, mdn, data); in iterate_zap_fs()
2253 if (!data->userhook) in iterate_zap_fs()
2255 return data->userhook(name, &info); in iterate_zap_fs()
2258 static int iterate_zap_snap(const char *name, uint64_t val, struct zfs_data *data) in iterate_zap_snap() argument
2266 err = dnode_get(&(data->mos), val, 0, &mdn, data); in iterate_zap_snap()
2273 fill_fs_info(&info, mdn, data); in iterate_zap_snap()
2278 if (data->userhook) in iterate_zap_snap()
2279 ret = data->userhook(name2, &info); in iterate_zap_snap()
2288 struct zfs_data *data; in zfs_ls() local
2292 data = zfs_mount(device); in zfs_ls()
2293 if (!data) in zfs_ls()
2296 data->userhook = hook; in zfs_ls()
2298 err = dnode_get_fullpath(path, &(data->mdn), 0, &(data->dnode), &isfs, data); in zfs_ls()
2300 zfs_unmount(data); in zfs_ls()
2309 fill_fs_info(&info, data->dnode, data); in zfs_ls()
2312 …childobj = zfs_to_cpu64(((dsl_dir_phys_t *) DN_BONUS(&data->dnode.dn))->dd_child_dir_zapobj, data-… in zfs_ls()
2313 …headobj = zfs_to_cpu64(((dsl_dir_phys_t *) DN_BONUS(&data->dnode.dn))->dd_head_dataset_obj, data->… in zfs_ls()
2314 err = dnode_get(&(data->mos), childobj, in zfs_ls()
2315 DMU_OT_DSL_DIR_CHILD_MAP, &dn, data); in zfs_ls()
2317 zfs_unmount(data); in zfs_ls()
2321 zap_iterate(&dn, iterate_zap_fs, data); in zfs_ls()
2323 err = dnode_get(&(data->mos), headobj, DMU_OT_DSL_DATASET, &dn, data); in zfs_ls()
2325 zfs_unmount(data); in zfs_ls()
2331 err = dnode_get(&(data->mos), snapobj, in zfs_ls()
2332 DMU_OT_DSL_DS_SNAP_MAP, &dn, data); in zfs_ls()
2334 zfs_unmount(data); in zfs_ls()
2338 zap_iterate(&dn, iterate_zap_snap, data); in zfs_ls()
2340 if (data->dnode.dn.dn_type != DMU_OT_DIRECTORY_CONTENTS) { in zfs_ls()
2341 zfs_unmount(data); in zfs_ls()
2345 zap_iterate(&(data->dnode), iterate_zap, data); in zfs_ls()
2347 zfs_unmount(data); in zfs_ls()