Deleted Added
full compact
vdev_geom.c (216256) vdev_geom.c (218278)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 379 unchanged lines hidden (view full) ---

388 uint64_t guid;
389
390 cp = NULL;
391 g_topology_lock();
392 pp = g_provider_by_name(vd->vdev_path + sizeof("/dev/") - 1);
393 if (pp != NULL) {
394 ZFS_LOG(1, "Found provider by name %s.", vd->vdev_path);
395 cp = vdev_geom_attach(pp);
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE

--- 379 unchanged lines hidden (view full) ---

388 uint64_t guid;
389
390 cp = NULL;
391 g_topology_lock();
392 pp = g_provider_by_name(vd->vdev_path + sizeof("/dev/") - 1);
393 if (pp != NULL) {
394 ZFS_LOG(1, "Found provider by name %s.", vd->vdev_path);
395 cp = vdev_geom_attach(pp);
396 if (cp != NULL && check_guid) {
396 if (cp != NULL && check_guid && ISP2(pp->sectorsize) &&
397 pp->sectorsize <= VDEV_PAD_SIZE) {
397 g_topology_unlock();
398 guid = vdev_geom_read_guid(cp);
399 g_topology_lock();
400 if (guid != vd->vdev_guid) {
401 vdev_geom_detach(cp, 0);
402 cp = NULL;
403 ZFS_LOG(1, "guid mismatch for provider %s: "
404 "%ju != %ju.", vd->vdev_path,

--- 47 unchanged lines hidden (view full) ---

452 */
453 cp = vdev_geom_open_by_guid(vd);
454 }
455 }
456
457 if (cp == NULL) {
458 ZFS_LOG(1, "Provider %s not found.", vd->vdev_path);
459 error = ENOENT;
398 g_topology_unlock();
399 guid = vdev_geom_read_guid(cp);
400 g_topology_lock();
401 if (guid != vd->vdev_guid) {
402 vdev_geom_detach(cp, 0);
403 cp = NULL;
404 ZFS_LOG(1, "guid mismatch for provider %s: "
405 "%ju != %ju.", vd->vdev_path,

--- 47 unchanged lines hidden (view full) ---

453 */
454 cp = vdev_geom_open_by_guid(vd);
455 }
456 }
457
458 if (cp == NULL) {
459 ZFS_LOG(1, "Provider %s not found.", vd->vdev_path);
460 error = ENOENT;
461 } else if (cp->provider->sectorsize > VDEV_PAD_SIZE ||
462 !ISP2(cp->provider->sectorsize)) {
463 ZFS_LOG(1, "Provider %s has unsupported sectorsize.",
464 vd->vdev_path);
465
466 g_topology_lock();
467 vdev_geom_detach(cp, 0);
468 g_topology_unlock();
469
470 error = EINVAL;
471 cp = NULL;
460 } else if (cp->acw == 0 && (spa_mode(vd->vdev_spa) & FWRITE) != 0) {
461 int i;
462
463 g_topology_lock();
464 for (i = 0; i < 5; i++) {
465 error = g_access(cp, 0, 1, 0);
466 if (error == 0)
467 break;

--- 161 unchanged lines hidden ---
472 } else if (cp->acw == 0 && (spa_mode(vd->vdev_spa) & FWRITE) != 0) {
473 int i;
474
475 g_topology_lock();
476 for (i = 0; i < 5; i++) {
477 error = g_access(cp, 0, 1, 0);
478 if (error == 0)
479 break;

--- 161 unchanged lines hidden ---