From 0fb832fdf0671837845cd957009424dc93bf806e Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Fri, 5 Apr 2013 13:11:28 +0000 Subject: Following r241022, replace iteration over the provider list on media events by taking first one and asserting that there is no others. MFC after: 1 week --- sys/geom/geom_disk.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'sys/geom/geom_disk.c') diff --git a/sys/geom/geom_disk.c b/sys/geom/geom_disk.c index af0316a4d0f8..c71e6eccd87f 100644 --- a/sys/geom/geom_disk.c +++ b/sys/geom/geom_disk.c @@ -658,8 +658,12 @@ disk_media_changed(struct disk *dp, int flag) gp = dp->d_geom; if (gp != NULL) { - LIST_FOREACH(pp, &gp->provider, provider) + pp = LIST_FIRST(&gp->provider); + if (pp != NULL) { + KASSERT(LIST_NEXT(pp, provider) == NULL, + ("geom %p has more than one provider", gp)); g_media_changed(pp, flag); + } } } @@ -671,8 +675,12 @@ disk_media_gone(struct disk *dp, int flag) gp = dp->d_geom; if (gp != NULL) { - LIST_FOREACH(pp, &gp->provider, provider) + pp = LIST_FIRST(&gp->provider); + if (pp != NULL) { + KASSERT(LIST_NEXT(pp, provider) == NULL, + ("geom %p has more than one provider", gp)); g_media_gone(pp, flag); + } } } -- cgit v1.2.3