Only sort requests of types that have concept of offset.

Other types, such as BIO_FLUSH or BIO_ZONE, or especially new/unknown ones,
may imply some degree of ordering even if strict ordering is not requested
explicitly.

MFC after:	2 weeks
Sponsored by:	iXsystems, Inc.
This commit is contained in:
Alexander Motin 2019-01-30 17:24:50 +00:00
parent 9de921ee59
commit 6afd921090
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=343585

View file

@ -259,6 +259,17 @@ bioq_disksort(struct bio_queue_head *head, struct bio *bp)
return;
}
/*
* We should only sort requests of types that have concept of offset.
* Other types, such as BIO_FLUSH or BIO_ZONE, may imply some degree
* of ordering even if strict ordering is not requested explicitly.
*/
if (bp->bio_cmd != BIO_READ && bp->bio_cmd != BIO_WRITE &&
bp->bio_cmd != BIO_DELETE) {
bioq_insert_tail(head, bp);
return;
}
if (bioq_batchsize > 0 && head->batched > bioq_batchsize) {
bioq_insert_tail(head, bp);
return;