| 1356 | } |
| 1357 | |
| 1358 | zio_t * |
| 1359 | zio_read_phys(zio_t *pio, vdev_t *vd, uint64_t offset, uint64_t size, |
| 1360 | abd_t *data, int checksum, zio_done_func_t *done, void *private, |
| 1361 | zio_priority_t priority, enum zio_flag flags, boolean_t labels) |
| 1362 | { |
| 1363 | zio_t *zio; |
| 1364 | |
| 1365 | ASSERT(vd->vdev_children == 0); |
| 1366 | ASSERT(!labels || offset + size <= VDEV_LABEL_START_SIZE || |
| 1367 | offset >= vd->vdev_psize - VDEV_LABEL_END_SIZE); |
| 1368 | ASSERT3U(offset + size, <=, vd->vdev_psize); |
| 1369 | |
| 1370 | zio = zio_create(pio, vd->vdev_spa, 0, NULL, data, size, size, done, |
| 1371 | private, ZIO_TYPE_READ, priority, flags | ZIO_FLAG_PHYSICAL, vd, |
| 1372 | offset, NULL, ZIO_STAGE_OPEN, ZIO_READ_PHYS_PIPELINE); |
| 1373 | |
| 1374 | zio->io_prop.zp_checksum = checksum; |
| 1375 | |
| 1376 | return (zio); |
| 1377 | } |
| 1378 | |
| 1379 | zio_t * |
| 1380 | zio_write_phys(zio_t *pio, vdev_t *vd, uint64_t offset, uint64_t size, |
no test coverage detected