svn commit: r342890 - in stable/12/sys/geom: concat mirror raid
Mark Johnston
markj at FreeBSD.org
Wed Jan 9 17:38:49 UTC 2019
Author: markj
Date: Wed Jan 9 17:38:47 2019
New Revision: 342890
URL: https://svnweb.freebsd.org/changeset/base/342890
Log:
MFC r342687:
Use g_handleattr() to reply to GEOM::candelete queries.
Modified:
stable/12/sys/geom/concat/g_concat.c
stable/12/sys/geom/mirror/g_mirror.c
stable/12/sys/geom/raid/g_raid.c
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/sys/geom/concat/g_concat.c
==============================================================================
--- stable/12/sys/geom/concat/g_concat.c Wed Jan 9 17:23:59 2019 (r342889)
+++ stable/12/sys/geom/concat/g_concat.c Wed Jan 9 17:38:47 2019 (r342890)
@@ -210,20 +210,16 @@ g_concat_candelete(struct bio *bp)
{
struct g_concat_softc *sc;
struct g_concat_disk *disk;
- int i, *val;
+ int i, val;
- val = (int *)bp->bio_data;
- *val = 0;
-
sc = bp->bio_to->geom->softc;
for (i = 0; i < sc->sc_ndisks; i++) {
disk = &sc->sc_disks[i];
- if (!disk->d_removed && disk->d_candelete) {
- *val = 1;
+ if (!disk->d_removed && disk->d_candelete)
break;
- }
}
- g_io_deliver(bp, 0);
+ val = i < sc->sc_ndisks;
+ g_handleattr(bp, "GEOM::candelete", &val, sizeof(val));
}
static void
Modified: stable/12/sys/geom/mirror/g_mirror.c
==============================================================================
--- stable/12/sys/geom/mirror/g_mirror.c Wed Jan 9 17:23:59 2019 (r342889)
+++ stable/12/sys/geom/mirror/g_mirror.c Wed Jan 9 17:38:47 2019 (r342890)
@@ -1075,16 +1075,15 @@ g_mirror_candelete(struct bio *bp)
{
struct g_mirror_softc *sc;
struct g_mirror_disk *disk;
- int *val;
+ int val;
sc = bp->bio_to->private;
LIST_FOREACH(disk, &sc->sc_disks, d_next) {
if (disk->d_flags & G_MIRROR_DISK_FLAG_CANDELETE)
break;
}
- val = (int *)bp->bio_data;
- *val = (disk != NULL);
- g_io_deliver(bp, 0);
+ val = disk != NULL;
+ g_handleattr(bp, "GEOM::candelete", &val, sizeof(val));
}
static void
Modified: stable/12/sys/geom/raid/g_raid.c
==============================================================================
--- stable/12/sys/geom/raid/g_raid.c Wed Jan 9 17:23:59 2019 (r342889)
+++ stable/12/sys/geom/raid/g_raid.c Wed Jan 9 17:38:47 2019 (r342890)
@@ -1075,23 +1075,19 @@ g_raid_candelete(struct g_raid_softc *sc, struct bio *
struct g_provider *pp;
struct g_raid_volume *vol;
struct g_raid_subdisk *sd;
- int *val;
- int i;
+ int i, val;
- val = (int *)bp->bio_data;
pp = bp->bio_to;
vol = pp->private;
- *val = 0;
for (i = 0; i < vol->v_disks_count; i++) {
sd = &vol->v_subdisks[i];
if (sd->sd_state == G_RAID_SUBDISK_S_NONE)
continue;
- if (sd->sd_disk->d_candelete) {
- *val = 1;
+ if (sd->sd_disk->d_candelete)
break;
- }
}
- g_io_deliver(bp, 0);
+ val = i < vol->v_disks_count;
+ g_handleattr(bp, "GEOM::candelete", &val, sizeof(val));
}
static void
More information about the svn-src-stable
mailing list