On Tue, Sep 03, 2013 at 12:02:10PM -0700, Christoph Hellwig wrote:
> On Tue, Sep 03, 2013 at 09:47:36PM +1000, Dave Chinner wrote:
> > Hi folks,
> > More fixes as a result of forced shutdown testing. The first is
> > fixing yet another hole in the buf log item freein logic when a
> > transaction is aborted, and the other removes the asserts from the
> > inode buffer checking so that verifiers return errors rather than
> > crashing the system.
> Btw, I've been wondering for a while if we need a major change to how
> the buf item refcounting works. All these little special cases in there
> are utterly non-intuitive. I've not looked very deep yet, but a normal
> scheme where every reference to it increments the refcount, and we
> simply free it when that hits zero should work here as well. We'd
> still need flags for the abort and clean conditions, but it would still
> be way simpler than what we have now.
Yes, it makes sense to do, but I haven't considered it yet as I have
other things to worry about right now. We'd still need the AIL
removal on abort, though, as that is still the last place we'll see
it on a shutdown...