From 49177b6ab705890c6f8ad95396ba79cbea3e7de8 Mon Sep 17 00:00:00 2001 From: Ned Bass Date: Thu, 12 Aug 2010 14:41:08 -0700 Subject: [PATCH 1/2] Use inline version of __zio_execute Explicitly call to inline version to minimize stack usage. Signed-off-by: Brian Behlendorf --- module/zfs/zio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/zfs/zio.c b/module/zfs/zio.c index dc3400d3a6..6cf8ba1b39 100644 --- a/module/zfs/zio.c +++ b/module/zfs/zio.c @@ -1074,7 +1074,7 @@ zio_taskq_dispatch(zio_t *zio, enum zio_taskq_type q, boolean_t cutinline) ASSERT3U(q, <, ZIO_TASKQ_TYPES); while (taskq_dispatch(spa->spa_zio_taskq[t][q], - (task_func_t *)zio_execute, zio, flags) == 0); /* do nothing */ + (task_func_t *)__zio_execute, zio, flags) == 0); /* do nothing */ } static boolean_t From 260f8400e8db1ec8853735994b612ad902d8d3bf Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Thu, 12 Aug 2010 14:36:49 -0700 Subject: [PATCH 2/2] Skip floppy device when probing /dev/ When probing /dev/ for validing ZFS devices to import skip floppy block devices. There's no reason to waste time checking these devices even though they are valid block devices. Plus, we had one system get stuck on I/O errors probing the device. end_request: I/O error, dev fd0, sector 0 Buffer I/O error on device fd0p120, logical block 0 end_request: I/O error, dev fd0, sector 8 Buffer I/O error on device fd0p120, logical block 1 --- lib/libzfs/libzfs_import.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/libzfs/libzfs_import.c b/lib/libzfs/libzfs_import.c index f528dba27b..7e31fba90e 100644 --- a/lib/libzfs/libzfs_import.c +++ b/lib/libzfs/libzfs_import.c @@ -1078,6 +1078,7 @@ zpool_find_import_impl(libzfs_handle_t *hdl, importargs_t *iarg) * vcs* - Virtual console memory. * parport* - Parallel port interface. * lp* - Printer interface. + * fd* - Floppy interface. */ if ((strncmp(name, "watchdog", 8) == 0) || (strncmp(name, "fuse", 4) == 0) || @@ -1085,7 +1086,8 @@ zpool_find_import_impl(libzfs_handle_t *hdl, importargs_t *iarg) (strncmp(name, "tty", 3) == 0) || (strncmp(name, "vcs", 3) == 0) || (strncmp(name, "parport", 7) == 0) || - (strncmp(name, "lp", 2) == 0)) + (strncmp(name, "lp", 2) == 0) || + (strncmp(name, "fd", 2) == 0)) continue; if ((fd = openat64(dfd, name, O_RDONLY)) < 0)