--- sys/boot/zfs/zfs.c.orig 2011-10-20 18:15:29.966685430 +0000 +++ sys/boot/zfs/zfs.c 2011-10-20 18:18:22.291033636 +0000 @@ -45,6 +45,12 @@ #include "zfsimpl.c" +/* + * For GPT this should be 128 but leads to 50+ second delay in BTX loader so + * we use the original 4 pre r198420 by default for the boot process + */ +#define ZFS_MAX_SLICES 4 + static int zfs_open(const char *path, struct open_file *f); static int zfs_write(struct open_file *f, void *buf, size_t size, size_t *resid); static int zfs_close(struct open_file *f); @@ -415,7 +421,7 @@ if (vdev_probe(vdev_read, (void*) (uintptr_t) fd, 0)) close(fd); - for (slice = 1; slice <= 128; slice++) { + for (slice = 1; slice <= ZFS_MAX_SLICES; slice++) { sprintf(devname, "disk%dp%d:", unit, slice); fd = open(devname, O_RDONLY); if (fd == -1) {