Index: geom_subr.c =================================================================== RCS file: /private/FreeBSD/src/sys/geom/geom_subr.c,v retrieving revision 1.69 diff -u -p -r1.69 geom_subr.c --- geom_subr.c 2 Feb 2004 19:49:41 -0000 1.69 +++ geom_subr.c 5 Feb 2004 22:05:30 -0000 @@ -644,7 +644,16 @@ g_access_rel(struct g_consumer *cp, int /* Ok then... */ - error = pp->geom->access(pp, dcr, dcw, dce); + if ((pp->geom->flags & G_GEOM_WITHER) != 0 && + dcr <= 0 && dcw <= 0 && dce <= 0) { + /* + * Silently accept decreasing access count for providers + * on WITHERing geom. + */ + error = 0; + } else { + error = pp->geom->access(pp, dcr, dcw, dce); + } if (!error) { /* * If we open first write, spoil any partner consumers.