Lines Matching refs:zio
32 #include <sys/zio.h>
159 vdev_cache_allocate(zio_t *zio)
161 vdev_cache_t *vc = &zio->io_vd->vdev_cache;
162 uint64_t offset = P2ALIGN(zio->io_offset, VCBS);
195 vdev_cache_hit(vdev_cache_t *vc, vdev_cache_entry_t *ve, zio_t *zio)
197 uint64_t cache_phase = P2PHASE(zio->io_offset, VCBS);
209 bcopy(ve->ve_data + cache_phase, zio->io_data, zio->io_size);
255 vdev_cache_read(zio_t *zio)
257 vdev_cache_t *vc = &zio->io_vd->vdev_cache;
259 uint64_t cache_offset = P2ALIGN(zio->io_offset, VCBS);
260 uint64_t cache_phase = P2PHASE(zio->io_offset, VCBS);
263 ASSERT(zio->io_type == ZIO_TYPE_READ);
265 if (zio->io_flags & ZIO_FLAG_DONT_CACHE)
268 if (zio->io_size > zfs_vdev_cache_max)
274 if (P2BOUNDARY(zio->io_offset, zio->io_size, VCBS))
277 ASSERT(cache_phase + zio->io_size <= VCBS);
291 zio_vdev_io_bypass(zio);
292 zio_add_child(zio, fio);
298 vdev_cache_hit(vc, ve, zio);
299 zio_vdev_io_bypass(zio);
306 ve = vdev_cache_allocate(zio);
313 fio = zio_vdev_delegated_io(zio->io_vd, cache_offset,
318 zio_vdev_io_bypass(zio);
319 zio_add_child(zio, fio);
332 vdev_cache_write(zio_t *zio)
334 vdev_cache_t *vc = &zio->io_vd->vdev_cache;
336 uint64_t io_start = zio->io_offset;
337 uint64_t io_end = io_start + zio->io_size;
342 ASSERT(zio->io_type == ZIO_TYPE_WRITE);
359 bcopy((char *)zio->io_data + start - io_start,