Lines Matching refs:data

211 						 void *buf, struct zfs_data *data);
215 size_t *size, struct zfs_data *data);
346 uberblock_verify(uberblock_t *uber, int offset, struct zfs_data *data) in uberblock_verify() argument
352 if (uber->ub_txg < data->label_txg) { in uberblock_verify()
354 uber->ub_txg, data->label_txg); in uberblock_verify()
376 (char *) uber, UBERBLOCK_SIZE(data->vdev_ashift)); in uberblock_verify()
382 err = zio_read(&uber->ub_rootbp, endian, &osp, &ospsize, data); in uberblock_verify()
400 static uberblock_t *find_bestub(char *ub_array, struct zfs_data *data) in find_bestub() argument
402 const uint64_t sector = data->vdev_phys_sector; in find_bestub()
408 const unsigned int UBCOUNT = UBERBLOCK_COUNT(data->vdev_ashift); in find_bestub()
409 const uint64_t UBBYTES = UBERBLOCK_SIZE(data->vdev_ashift); in find_bestub()
415 err = uberblock_verify(ubnext, offset, data); in find_bestub()
453 struct zfs_data *data) in zio_read_gang() argument
495 err = zio_read_data(&zio_gb->zg_blkptr[i], endian, buf, data); in zio_read_gang()
511 struct zfs_data *data) in zio_read_data() argument
526 err = zio_read_gang(bp, endian, &bp->blk_dva[i], buf, data); in zio_read_data()
561 size_t *size, struct zfs_data *data) in zio_read() argument
597 err = zio_read_data(bp, endian, compbuf, data); in zio_read()
630 zfs_endian_t *endian_out, struct zfs_data *data) in dmu_read() argument
667 err = zio_read(bp, endian, buf, 0, data); in dmu_read()
671 err = zio_read(bp, endian, &tmpbuf, 0, data); in dmu_read()
713 struct zfs_data *data), in mzap_iterate() argument
714 struct zfs_data *data) in mzap_iterate()
723 data)) in mzap_iterate()
907 char *name, uint64_t *value, struct zfs_data *data) in fzap_lookup() argument
935 err = dmu_read(zap_dnode, blkid, &l, &leafendian, data); in fzap_lookup()
949 struct zfs_data *data), in fzap_iterate() argument
950 struct zfs_data *data) in fzap_iterate()
977 err = dmu_read(zap_dnode, blkid, &l_in, &endian, data); in fzap_iterate()
1019 if (hook(buf, val, data)) in fzap_iterate()
1035 struct zfs_data *data) in zap_lookup() argument
1046 err = dmu_read(zap_dnode, 0, &zapbuf, &endian, data); in zap_lookup()
1057 err = (fzap_lookup(zap_dnode, zapbuf, name, val, data)); in zap_lookup()
1070 struct zfs_data *data), in zap_iterate() argument
1071 struct zfs_data *data) in zap_iterate()
1082 err = dmu_read(zap_dnode, 0, &zapbuf, &endian, data); in zap_iterate()
1088 ret = mzap_iterate(zapbuf, endian, size, hook, data); in zap_iterate()
1093 ret = fzap_iterate(zap_dnode, zapbuf, hook, data); in zap_iterate()
1113 dnode_end_t *buf, struct zfs_data *data) in dnode_get() argument
1129 if (data->dnode_buf != NULL && memcmp(data->dnode_mdn, mdn, in dnode_get()
1131 && objnum >= data->dnode_start && objnum < data->dnode_end) { in dnode_get()
1132 memmove(&(buf->dn), &(data->dnode_buf)[idx], DNODE_SIZE); in dnode_get()
1133 buf->endian = data->dnode_endian; in dnode_get()
1141 err = dmu_read(mdn, blkid, &dnbuf, &endian, data); in dnode_get()
1145 free(data->dnode_buf); in dnode_get()
1146 free(data->dnode_mdn); in dnode_get()
1147 data->dnode_mdn = malloc(sizeof(*mdn)); in dnode_get()
1148 if (!data->dnode_mdn) { in dnode_get()
1149 data->dnode_buf = 0; in dnode_get()
1151 memcpy(data->dnode_mdn, mdn, sizeof(*mdn)); in dnode_get()
1152 data->dnode_buf = dnbuf; in dnode_get()
1153 data->dnode_start = blkid << epbs; in dnode_get()
1154 data->dnode_end = (blkid + 1) << epbs; in dnode_get()
1155 data->dnode_endian = endian; in dnode_get()
1176 struct zfs_data *data) in dnode_get_path() argument
1195 &(dnode_path->dn), data); in dnode_get_path()
1201 err = zap_lookup(&(dnode_path->dn), ZPL_VERSION_STR, &version, data); in dnode_get_path()
1212 err = zap_lookup(&(dnode_path->dn), ZFS_ROOT_OBJ, &objnum, data); in dnode_get_path()
1218 err = dnode_get(mdn, objnum, 0, &(dnode_path->dn), data); in dnode_get_path()
1265 err = zap_lookup(&(dnode_path->dn), cname, &objnum, data); in dnode_get_path()
1278 err = dnode_get(mdn, objnum, 0, &(dnode_path->dn), data); in dnode_get_path()
1310 dnode_end_t *mdn, struct zfs_data *data) in get_filesystem_dnode() argument
1316 DMU_OT_OBJECT_DIRECTORY, mdn, data); in get_filesystem_dnode()
1320 err = zap_lookup(mdn, DMU_POOL_ROOT_DATASET, &objnum, data); in get_filesystem_dnode()
1324 err = dnode_get(mosmdn, objnum, DMU_OT_DSL_DIR, mdn, data); in get_filesystem_dnode()
1346 DMU_OT_DSL_DIR_CHILD_MAP, mdn, data); in get_filesystem_dnode()
1350 err = zap_lookup(mdn, cname, &objnum, data); in get_filesystem_dnode()
1354 err = dnode_get(mosmdn, objnum, DMU_OT_DSL_DIR, mdn, data); in get_filesystem_dnode()
1364 make_mdn(dnode_end_t *mdn, struct zfs_data *data) in make_mdn() argument
1372 err = zio_read(bp, mdn->endian, &osp, &ospsize, data); in make_mdn()
1391 struct zfs_data *data) in dnode_get_fullpath() argument
1433 err = get_filesystem_dnode(&(data->mos), fsname, dn, data); in dnode_get_fullpath()
1443 err = dnode_get(&(data->mos), headobj, DMU_OT_DSL_DATASET, mdn, data); in dnode_get_fullpath()
1455 err = dnode_get(&(data->mos), snapobj, in dnode_get_fullpath()
1456 DMU_OT_DSL_DS_SNAP_MAP, mdn, data); in dnode_get_fullpath()
1458 err = zap_lookup(mdn, snapname, &headobj, data); in dnode_get_fullpath()
1460 err = dnode_get(&(data->mos), headobj, DMU_OT_DSL_DATASET, mdn, data); in dnode_get_fullpath()
1471 make_mdn(mdn, data); in dnode_get_fullpath()
1478 err = dnode_get_path(mdn, filename, dn, data); in dnode_get_fullpath()
1696 int_zfs_fetch_nvlist(struct zfs_data *data, char **nvlist) in int_zfs_fetch_nvlist() argument
1702 err = zfs_devread(data->vdev_phys_sector, 0, VDEV_PHYS_SIZE, *nvlist); in int_zfs_fetch_nvlist()
1716 check_pool_label(struct zfs_data *data) in check_pool_label() argument
1726 err = int_zfs_fetch_nvlist(data, &nvlist); in check_pool_label()
1744 data->label_txg = 0; in check_pool_label()
1746 &data->label_txg); in check_pool_label()
1754 if (data->label_txg == 0) { in check_pool_label()
1784 &data->vdev_ashift); in check_pool_label()
1799 found = zfs_nvlist_lookup_uint64(nvlist, ZPOOL_CONFIG_POOL_GUID, &data->pool_guid); in check_pool_label()
1809 (unsigned long long) data->pool_guid, in check_pool_label()
1810 (unsigned long long) data->pool_guid, in check_pool_label()
1813 (unsigned long long) data->label_txg, in check_pool_label()
1815 (unsigned long long) data->vdev_ashift); in check_pool_label()
1832 zfs_unmount(struct zfs_data *data) in zfs_unmount() argument
1834 free(data->dnode_buf); in zfs_unmount()
1835 free(data->dnode_mdn); in zfs_unmount()
1836 free(data->file_buf); in zfs_unmount()
1837 free(data); in zfs_unmount()
1848 struct zfs_data *data = 0; in zfs_mount() local
1857 data = malloc(sizeof(*data)); in zfs_mount()
1858 if (!data) in zfs_mount()
1860 memset(data, 0, sizeof(*data)); in zfs_mount()
1864 zfs_unmount(data); in zfs_mount()
1871 zfs_unmount(data); in zfs_mount()
1904 data->vdev_phys_sector = labelstart + in zfs_mount()
1907 err = check_pool_label(data); in zfs_mount()
1914 err = zfs_devread(data->vdev_phys_sector + in zfs_mount()
1922 ubcur = find_bestub(ub_array, data); in zfs_mount()
1941 zfs_unmount(data); in zfs_mount()
1954 err = zio_read(&ubbest->ub_rootbp, ub_endian, &osp, &ospsize, data); in zfs_mount()
1958 zfs_unmount(data); in zfs_mount()
1966 zfs_unmount(data); in zfs_mount()
1973 memmove(&(data->mos.dn), &((objset_phys_t *) osp)->os_meta_dnode, DNODE_SIZE); in zfs_mount()
1974 data->mos.endian = in zfs_mount()
1976 memmove(&(data->current_uberblock), ubbest, sizeof(uberblock_t)); in zfs_mount()
1981 return data; in zfs_mount()
2005 struct zfs_data *data; in zfs_open() local
2009 data = zfs_mount(file->device); in zfs_open()
2010 if (!data) in zfs_open()
2013 err = dnode_get_fullpath(fsfilename, &(data->mdn), 0, in zfs_open()
2014 &(data->dnode), &isfs, data); in zfs_open()
2016 zfs_unmount(data); in zfs_open()
2021 zfs_unmount(data); in zfs_open()
2027 if (data->dnode.dn.dn_type != DMU_OT_PLAIN_FILE_CONTENTS) { in zfs_open()
2028 zfs_unmount(data); in zfs_open()
2040 if (data->dnode.dn.dn_bonustype == DMU_OT_SA) { in zfs_open()
2044 if (data->dnode.dn.dn_bonuslen != 0) { in zfs_open()
2045 sahdrp = (sa_hdr_phys_t *) DN_BONUS(&data->dnode.dn); in zfs_open()
2046 } else if (data->dnode.dn.dn_flags & DNODE_FLAG_SPILL_BLKPTR) { in zfs_open()
2047 blkptr_t *bp = &data->dnode.dn.dn_spill; in zfs_open()
2049 err = zio_read(bp, data->dnode.endian, &sahdrp, NULL, data); in zfs_open()
2059 if ((data->dnode.dn.dn_bonuslen == 0) && in zfs_open()
2060 (data->dnode.dn.dn_flags & DNODE_FLAG_SPILL_BLKPTR)) in zfs_open()
2063 …file->size = zfs_to_cpu64(((znode_phys_t *) DN_BONUS(&data->dnode.dn))->zp_size, data->dnode.endia… in zfs_open()
2066 file->data = data; in zfs_open()
2075 struct zfs_data *data = (struct zfs_data *) file->data; in zfs_read() local
2081 if (data->file_buf == NULL) { in zfs_read()
2082 data->file_buf = malloc(SPA_MAXBLOCKSIZE); in zfs_read()
2083 if (!data->file_buf) in zfs_read()
2085 data->file_start = data->file_end = 0; in zfs_read()
2091 if (file->offset >= data->file_start in zfs_read()
2092 && file->offset + len <= data->file_end) { in zfs_read()
2093 memmove(buf, data->file_buf + file->offset - data->file_start, in zfs_read()
2098 blksz = zfs_to_cpu16(data->dnode.dn.dn_datablkszsec, in zfs_read()
2099 data->dnode.endian) << SPA_MINBLOCKSHIFT; in zfs_read()
2116 free(data->file_buf); in zfs_read()
2117 data->file_buf = 0; in zfs_read()
2119 err = dmu_read(&(data->dnode), blkid, &t, in zfs_read()
2120 0, data); in zfs_read()
2121 data->file_buf = t; in zfs_read()
2125 data->file_start = blkid * blksz; in zfs_read()
2126 data->file_end = data->file_start + blksz; in zfs_read()
2128 movesize = min(length, data->file_end - (int)file->offset - red); in zfs_read()
2130 memmove(buf, data->file_buf + file->offset + red in zfs_read()
2131 - data->file_start, movesize); in zfs_read()
2143 zfs_unmount((struct zfs_data *) file->data); in zfs_close()
2151 struct zfs_data *data; in zfs_getmdnobj() local
2155 data = zfs_mount(dev); in zfs_getmdnobj()
2156 if (!data) in zfs_getmdnobj()
2159 err = dnode_get_fullpath(fsfilename, &(data->mdn), mdnobj, in zfs_getmdnobj()
2160 &(data->dnode), &isfs, data); in zfs_getmdnobj()
2161 zfs_unmount(data); in zfs_getmdnobj()
2167 dnode_end_t mdn, struct zfs_data *data) in fill_fs_info() argument
2181 err = dnode_get(&(data->mos), headobj, DMU_OT_DSL_DATASET, &mdn, data); in fill_fs_info()
2187 make_mdn(&mdn, data); in fill_fs_info()
2189 &dn, data); in fill_fs_info()
2195 err = zap_lookup(&dn, ZFS_ROOT_OBJ, &objnum, data); in fill_fs_info()
2201 err = dnode_get(&mdn, objnum, 0, &dn, data); in fill_fs_info()
2213 static int iterate_zap(const char *name, uint64_t val, struct zfs_data *data) in iterate_zap() argument
2220 dnode_get(&(data->mdn), val, 0, &dn, data); in iterate_zap()
2226 if (!data->userhook) in iterate_zap()
2228 return data->userhook(name, &info); in iterate_zap()
2231 static int iterate_zap_fs(const char *name, uint64_t val, struct zfs_data *data) in iterate_zap_fs() argument
2236 err = dnode_get(&(data->mos), val, 0, &mdn, data); in iterate_zap_fs()
2242 fill_fs_info(&info, mdn, data); in iterate_zap_fs()
2244 if (!data->userhook) in iterate_zap_fs()
2246 return data->userhook(name, &info); in iterate_zap_fs()
2249 static int iterate_zap_snap(const char *name, uint64_t val, struct zfs_data *data) in iterate_zap_snap() argument
2257 err = dnode_get(&(data->mos), val, 0, &mdn, data); in iterate_zap_snap()
2264 fill_fs_info(&info, mdn, data); in iterate_zap_snap()
2269 if (data->userhook) in iterate_zap_snap()
2270 ret = data->userhook(name2, &info); in iterate_zap_snap()
2279 struct zfs_data *data; in zfs_ls() local
2283 data = zfs_mount(device); in zfs_ls()
2284 if (!data) in zfs_ls()
2287 data->userhook = hook; in zfs_ls()
2289 err = dnode_get_fullpath(path, &(data->mdn), 0, &(data->dnode), &isfs, data); in zfs_ls()
2291 zfs_unmount(data); in zfs_ls()
2300 fill_fs_info(&info, data->dnode, data); in zfs_ls()
2303 …childobj = zfs_to_cpu64(((dsl_dir_phys_t *) DN_BONUS(&data->dnode.dn))->dd_child_dir_zapobj, data-… in zfs_ls()
2304 …headobj = zfs_to_cpu64(((dsl_dir_phys_t *) DN_BONUS(&data->dnode.dn))->dd_head_dataset_obj, data->… in zfs_ls()
2305 err = dnode_get(&(data->mos), childobj, in zfs_ls()
2306 DMU_OT_DSL_DIR_CHILD_MAP, &dn, data); in zfs_ls()
2308 zfs_unmount(data); in zfs_ls()
2313 zap_iterate(&dn, iterate_zap_fs, data); in zfs_ls()
2315 err = dnode_get(&(data->mos), headobj, DMU_OT_DSL_DATASET, &dn, data); in zfs_ls()
2317 zfs_unmount(data); in zfs_ls()
2323 err = dnode_get(&(data->mos), snapobj, in zfs_ls()
2324 DMU_OT_DSL_DS_SNAP_MAP, &dn, data); in zfs_ls()
2326 zfs_unmount(data); in zfs_ls()
2330 zap_iterate(&dn, iterate_zap_snap, data); in zfs_ls()
2332 if (data->dnode.dn.dn_type != DMU_OT_DIRECTORY_CONTENTS) { in zfs_ls()
2333 zfs_unmount(data); in zfs_ls()
2337 zap_iterate(&(data->dnode), iterate_zap, data); in zfs_ls()
2339 zfs_unmount(data); in zfs_ls()