Allow zvol_geom_worker to process BIO_DELETE's

If zvol_geom_start is called with a BIO_DELETE from a thread which can
sleep it queues it for later processing by the zvol_geom_worker. The
zvol_geom_worker didn't have a delete case so would simply loose the bio
hence preventing the original caller from every completing. In addition
an other unknown types would suffer the same fate.

Allow zvol_geom_worker to process BIO_DELETE's via zvol_strategy and
return unsupported for all unknown bio types.

MFC after:	2 weeks
Sponsored by:	Multiplay
This commit is contained in:
Steven Hartland 2015-03-14 17:35:04 +00:00
parent 6be291e47a
commit 208264283d

View File

@ -2775,8 +2775,12 @@ zvol_geom_worker(void *arg)
break;
case BIO_READ:
case BIO_WRITE:
case BIO_DELETE:
zvol_strategy(bp);
break;
default:
g_io_deliver(bp, EOPNOTSUPP);
break;
}
}
}