Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Mar 2015 11:00:31 +0100
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        "Matthew D. Fuller" <fullermd@over-yonder.net>
Cc:        freebsd-geom@freebsd.org
Subject:   Re: RFC: Pass TRIM through GELI
Message-ID:  <20150316100030.GB1515@garage.freebsd.pl>
In-Reply-To: <20150316092126.GC52331@over-yonder.net>
References:  <20150308000131.GP1742@over-yonder.net> <20150314151453.GJ24274@over-yonder.net> <501bca86.508d8e26@fabiankeil.de> <20150315145324.GA52331@over-yonder.net> <20150315182444.GB52331@over-yonder.net> <20150316010845.GA1515@garage.freebsd.pl> <20150316092126.GC52331@over-yonder.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Mar 16, 2015 at 04:21:26AM -0500, Matthew D. Fuller wrote:
> On Mon, Mar 16, 2015 at 02:08:45AM +0100 I heard the voice of
> Pawel Jakub Dawidek, and lo! it spake thus:
> > 
> > Overall the patch looks good. The main concern I have is that we do
> > nothing if the underlying provider returns EOPNOTSUPP on BIO_DELETE,
> > we will just keep sending those requests.
> 
> Well, they're all coming from the layer above us, and it'll get back
> the EOPNOTSUPP's, so if it keeps sending them anyway that seems more
> like its problem than ours.  It seems like intercepting the response
> (that would mean making our own new request, getting the response,
> then making that response ourselves to the original?) wouldn't really
> save much of anything, and adds a lot of extra bug-havens...

You are right. I read your reasoning you've sent earlier after sending
my e-mail.

> > This whole comment needs to be rewritten.
> 
> How about:
> 
> 		/*
> 		 * If the user has set the DELETE flag, we just pass it
> 		 * down the stack and let the layers beneath us do (or
> 		 * not) whatever they do with it.  Else we currently just
> 		 * reject it.  A possible extension would be to take it
> 		 * as a hint to shred the data with [multiple?]
> 		 * overwrites.
> 		 */

Looks good, thanks.

> > +		if (sc->sc_flags & G_ELI_FLAG_ONETIME) {
> > +			gctl_error(req, "Cannot change configuration of "
> > +			    "onetime provider %s.", prov);
> > +			continue;
> > +		}
> > 
> > Actually, nothing stops us from allowing to change trim/notrim for
> > one-time providers.
> 
> Well, what stops us right now is the bit where it somehow finds
> metadata version 2468898832 when it tries, and then panics  :(.  It
> happened with both my changes and the existing code, so I figured it
> was just an artifact of something onetime did, and nobody ever cared
> (or tried) configure'ing one.
> 
> In a quick re-test, I actually can't trigger it on a bare device, but
> on top of gnop it happens every time (with both original and my code).
> Nothing special, just an arg-less nop, and an arg-less onetime we
> 'configure -b' afterward.  That makes it a little more concerning...
> I guess it needs more looking into; 0'd out the conditional in the
> .4.patch pending more investigation.

Rejecting -b/-B for one-time providers is of course fine. Accepting
-t/-T for one-time providers would be nice to have, but of course
nothing critical. Still would be good to know the root cause of what you
are seeing.

-- 
Pawel Jakub Dawidek                       http://www.wheelsystems.com
FreeBSD committer                         http://www.FreeBSD.org
Am I Evil? Yes, I Am!                     http://mobter.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150316100030.GB1515>