summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsmh <smh@FreeBSD.org>2014-05-03 02:30:01 +0000
committersmh <smh@FreeBSD.org>2014-05-03 02:30:01 +0000
commit90763c16795eb165aaad92ff07db5b5a991b4456 (patch)
treeae08d6a22b03f1005bad1b5208b4017e0ca3a1a1
parent2c816214c0b338da708c8e9dbb63c7fb5760f5f5 (diff)
downloadFreeBSD-src-90763c16795eb165aaad92ff07db5b5a991b4456.zip
FreeBSD-src-90763c16795eb165aaad92ff07db5b5a991b4456.tar.gz
Don't treat TRIM requests returning ENOTSUP as an unexpected error.
MFC after: 1 month X-MFC-With: r265152
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c5
1 files changed, 4 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 d0940bf..01946fb 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
@@ -2674,7 +2674,10 @@ zio_vdev_io_done(zio_t **ziop)
zio->io_error = zio_handle_label_injection(zio, EIO);
if (zio->io_error) {
- if (!vdev_accessible(vd, zio)) {
+ if (zio->io_error == ENOTSUP &&
+ zio->io_type == ZIO_TYPE_FREE) {
+ /* Not all devices support TRIM. */
+ } else if (!vdev_accessible(vd, zio)) {
zio->io_error = SET_ERROR(ENXIO);
} else {
unexpected_error = B_TRUE;
OpenPOWER on IntegriCloud