geli and BIO_FLUSH and/or BIO_ORDERED issue?

John-Mark Gurney jmg at funkthat.com
Wed Sep 19 04:04:31 UTC 2012


I was looking at geli and I'm not sure if it's implementing BIO_FLUSH
and/or BIO_ORDERED properly...

>From my understanding is the BIO_ORDERED is suppose to wait for the
previous _WRITES to complete before returning so that you can ensure
that data is on disk, i.e. _ORDERED is set on a BIO_FLUSH...

BIO_ORDERED is handled by diskq_* code such that when you add an _ORDERED
command, all commands are put after it, but there doesn't appear to
be any code to ensure that an _ORDERED command waits for prevoius
pending commands to complete..

This is extra obvious in eli in that a _FLUSH is immediately dispatched,
even when there may be _WRITEs that haven't been finished encrypting and
sent down to the disk to get _FLUSHed...

Any comments about this?

Thanks.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the freebsd-geom mailing list