RFC: Pass TRIM through GELI
Matthew D. Fuller
fullermd at over-yonder.net
Thu Mar 12 19:51:12 UTC 2015
> Little investigation attempt:
Looking a little further, it seems like that BIO_DELETE is never
getting into zvol_strategy().
Piling on debug, when newfs'ing directly on the zvol, we enter
zvol_geom_start() with the BIO_DELETE, it drops into the case in the
early switch, and passes the bp down to zvol_strategy(). No problem.
When newfs'ing on the .eli, it enters the if (!THREAD_CAN_SLEEP()),
which jumps ahead to some a bioq_insert_tail(), into an empty bioq,
falls into the if(first) block and calls wakeup_one(), and then
falls off the end and returns from zvol_geom_start(). And that's the
end of the line; nothing else ever happens.
So, either the zvol isn't actually firing off the event right, or we
need to do something more complicated with BIO_DELETE than we do with
_GETATTR and _FLUSH. I couldn't really say which...
--
Matthew Fuller (MF4839) | fullermd at over-yonder.net
Systems/Network Administrator | http://www.over-yonder.net/~fullermd/
On the Internet, nobody can hear you scream.
More information about the freebsd-geom
mailing list