summaryrefslogtreecommitdiffstats
path: root/sys/geom/raid/md_intel.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2012-10-29 18:04:38 +0000
committermav <mav@FreeBSD.org>2012-10-29 18:04:38 +0000
commita43d540d9efdfd22157e434662f6be55d1437f32 (patch)
tree3057436f0446cd34f89a0161970b65aabfad7947 /sys/geom/raid/md_intel.c
parent76f8fadfa80a4732a2670b0032c3ac3fc89da8c7 (diff)
downloadFreeBSD-src-a43d540d9efdfd22157e434662f6be55d1437f32.zip
FreeBSD-src-a43d540d9efdfd22157e434662f6be55d1437f32.tar.gz
Add basic BIO_DELETE support to GEOM RAID class for all RAID levels.
If at least one subdisk in the volume supports it, BIO_DELETE requests will be propagated down. Unfortunatelly, for RAID levels with redundancy unmapped blocks will be mapped back during first rebuild/resync process. Sponsored by: iXsystems, Inc. MFC after: 1 month
Diffstat (limited to 'sys/geom/raid/md_intel.c')
-rw-r--r--sys/geom/raid/md_intel.c29
1 files changed, 3 insertions, 26 deletions
diff --git a/sys/geom/raid/md_intel.c b/sys/geom/raid/md_intel.c
index 8a4ef00..12122b0 100644
--- a/sys/geom/raid/md_intel.c
+++ b/sys/geom/raid/md_intel.c
@@ -1369,14 +1369,7 @@ search:
disk->d_consumer = rcp;
rcp->private = disk;
- /* Read kernel dumping information. */
- disk->d_kd.offset = 0;
- disk->d_kd.length = OFF_MAX;
- len = sizeof(disk->d_kd);
- error = g_io_getattr("GEOM::kerneldump", rcp, &len, &disk->d_kd);
- if (disk->d_kd.di.dumper == NULL)
- G_RAID_DEBUG1(2, sc, "Dumping not supported by %s: %d.",
- rcp->provider->name, error);
+ g_raid_get_disk_info(disk);
g_raid_md_intel_new_disk(disk);
@@ -1556,15 +1549,7 @@ g_raid_md_ctl_intel(struct g_raid_md_object *md,
break;
}
- /* Read kernel dumping information. */
- disk->d_kd.offset = 0;
- disk->d_kd.length = OFF_MAX;
- len = sizeof(disk->d_kd);
- g_io_getattr("GEOM::kerneldump", cp, &len, &disk->d_kd);
- if (disk->d_kd.di.dumper == NULL)
- G_RAID_DEBUG1(2, sc,
- "Dumping not supported by %s.",
- cp->provider->name);
+ g_raid_get_disk_info(disk);
intel_set_disk_sectors(&pd->pd_disk_meta,
pp->mediasize / pp->sectorsize);
@@ -2080,15 +2065,7 @@ g_raid_md_ctl_intel(struct g_raid_md_object *md,
disk->d_md_data = (void *)pd;
cp->private = disk;
- /* Read kernel dumping information. */
- disk->d_kd.offset = 0;
- disk->d_kd.length = OFF_MAX;
- len = sizeof(disk->d_kd);
- g_io_getattr("GEOM::kerneldump", cp, &len, &disk->d_kd);
- if (disk->d_kd.di.dumper == NULL)
- G_RAID_DEBUG1(2, sc,
- "Dumping not supported by %s.",
- cp->provider->name);
+ g_raid_get_disk_info(disk);
memcpy(&pd->pd_disk_meta.serial[0], &serial[0],
INTEL_SERIAL_LEN);
OpenPOWER on IntegriCloud