diff options
author | delphij <delphij@FreeBSD.org> | 2014-08-08 18:57:43 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2014-08-08 18:57:43 +0000 |
commit | 1052358c986e694063b4b57f8b53422363d05315 (patch) | |
tree | 7688e65f35606ffe47bff558f8bec11285bbd54d | |
parent | c9f34e40cb614130f2e6e14e50ce173941ef4ef8 (diff) | |
download | FreeBSD-src-1052358c986e694063b4b57f8b53422363d05315.zip FreeBSD-src-1052358c986e694063b4b57f8b53422363d05315.tar.gz |
MFC r269093:
Transform the I/O when vdev_physical_ashift is greater than
SPA_MINBLOCKSHIFT.
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c index aba22d3..2131f5e 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c @@ -2619,7 +2619,8 @@ zio_vdev_io_start(zio_t **ziop) align = 1ULL << vd->vdev_top->vdev_ashift; - if (!(zio->io_flags & ZIO_FLAG_PHYSICAL) && + if ((!(zio->io_flags & ZIO_FLAG_PHYSICAL) || + (vd->vdev_top->vdev_physical_ashift > SPA_MINBLOCKSHIFT)) && P2PHASE(zio->io_size, align) != 0) { /* Transform logical writes to be a full physical block size. */ uint64_t asize = P2ROUNDUP(zio->io_size, align); |