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