Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c =================================================================== --- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c (wersja 200158) +++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c (kopia robocza) @@ -124,10 +124,17 @@ cp = g_new_consumer(gp); if (g_attach(cp, pp) != 0) { g_wither_geom(gp, ENXIO); + ZFS_LOG(1, "g_attach() failed"); return (NULL); } if (g_access(cp, 1, write, 1) != 0) { g_wither_geom(gp, ENXIO); + ZFS_LOG(1, "g_access() failed"); + LIST_FOREACH(cp, &pp->consumers, consumers) { + ZFS_LOG(1, "cp=%p r%dw%de%d geom=%s class=%s", + cp, cp->acr, cp->acw, cp->ace, + cp->geom->name, cp->geom->class->name); + } return (NULL); } ZFS_LOG(1, "Created geom and consumer for %s.", pp->name); @@ -143,17 +150,31 @@ cp = g_new_consumer(gp); if (g_attach(cp, pp) != 0) { g_destroy_consumer(cp); + ZFS_LOG(1, "g_attach() failed"); return (NULL); } if (g_access(cp, 1, write, 1) != 0) { g_detach(cp); g_destroy_consumer(cp); + ZFS_LOG(1, "g_access() failed"); + LIST_FOREACH(cp, &pp->consumers, consumers) { + ZFS_LOG(1, "cp=%p r%dw%de%d geom=%s class=%s", + cp, cp->acr, cp->acw, cp->ace, + cp->geom->name, cp->geom->class->name); + } return (NULL); } ZFS_LOG(1, "Created consumer for %s.", pp->name); } else { - if (g_access(cp, 1, cp->acw > 0 ? 0 : write, 1) != 0) + if (g_access(cp, 1, cp->acw > 0 ? 0 : write, 1) != 0) { + ZFS_LOG(1, "g_access() failed"); + LIST_FOREACH(cp, &pp->consumers, consumers) { + ZFS_LOG(1, "cp=%p r%dw%de%d geom=%s class=%s", + cp, cp->acr, cp->acw, cp->ace, + cp->geom->name, cp->geom->class->name); + } return (NULL); + } ZFS_LOG(1, "Used existing consumer for %s.", pp->name); } }