Deleted Added
full compact
37c37
< __FBSDID("$FreeBSD: head/sys/geom/geom_slice.c 131408 2004-07-01 12:42:13Z pjd $");
---
> __FBSDID("$FreeBSD: head/sys/geom/geom_slice.c 131568 2004-07-04 13:44:48Z phk $");
102,118c102,120
< gsl = &gsp->slices[pp->index];
< for (u = 0; u < gsp->nslice; u++) {
< gsl2 = &gsp->slices[u];
< if (gsl2->length == 0)
< continue;
< if (u == pp->index)
< continue;
< if (gsl->offset + gsl->length <= gsl2->offset)
< continue;
< if (gsl2->offset + gsl2->length <= gsl->offset)
< continue;
< /* overlap */
< pp2 = gsl2->provider;
< if ((pp->acw + dw) > 0 && pp2->ace > 0)
< return (EPERM);
< if ((pp->ace + de) > 0 && pp2->acw > 0)
< return (EPERM);
---
> if (dr > 0 || dw > 0 || de > 0) {
> gsl = &gsp->slices[pp->index];
> for (u = 0; u < gsp->nslice; u++) {
> gsl2 = &gsp->slices[u];
> if (gsl2->length == 0)
> continue;
> if (u == pp->index)
> continue;
> if (gsl->offset + gsl->length <= gsl2->offset)
> continue;
> if (gsl2->offset + gsl2->length <= gsl->offset)
> continue;
> /* overlap */
> pp2 = gsl2->provider;
> if ((pp->acw + dw) > 0 && pp2->ace > 0)
> return (EPERM);
> if ((pp->ace + de) > 0 && pp2->acw > 0)
> return (EPERM);
> }