Date: Thu, 12 Mar 2015 14:51:09 -0500 From: "Matthew D. Fuller" <fullermd@over-yonder.net> To: freebsd-geom@freebsd.org Subject: Re: RFC: Pass TRIM through GELI Message-ID: <20150312195109.GG24274@over-yonder.net> In-Reply-To: <20150312182530.GF24274@over-yonder.net> References: <20150308000131.GP1742@over-yonder.net> <7e0bacf0.308742dc@fabiankeil.de> <20150312182530.GF24274@over-yonder.net>
next in thread | previous in thread | raw e-mail | index | archive | help
> 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@over-yonder.net Systems/Network Administrator | http://www.over-yonder.net/~fullermd/ On the Internet, nobody can hear you scream.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150312195109.GG24274>