Date: Sat, 25 Oct 2014 22:20:04 +0800 From: Julian Elischer <julian@freebsd.org> To: "K. Macy" <kmacy@freebsd.org> Cc: "freebsd-fs@FreeBSD.org" <fs@freebsd.org> Subject: Re: change in VFS layer API? Message-ID: <544BB194.3010705@freebsd.org> In-Reply-To: <544B0F24.4060500@freebsd.org> References: <544A823A.1080304@freebsd.org> <CAHM0Q_P9ZfdbBCPtzbmmOPTt9CNtD9yfpFwkgwABjJXqb1=p1A@mail.gmail.com> <544B0F24.4060500@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 10/25/14, 10:47 AM, Julian Elischer wrote: > On 10/25/14, 1:18 AM, K. Macy wrote: >> On Fri, Oct 24, 2014 at 9:45 AM, Julian Elischer >> <julian@freebsd.org> wrote: >>> Can anyone point me at a VFS API contract change that occurred >>> over the last >>> 5 years where a filesystem written to teh old contract would end >>> up with >>> extra references to all its vnodes/objects? Specifically a >>> proprietary >>> filesystem that ran on 8.0 now can be compiled but ends up with extra >>> references on its vnodes and can not free them. >>> >> I think the contract for some functions has become unclear. I've found >> that the opensolaris' compatibility layer traverse' vput of the >> initial vnode passed in triggers negative reference count panics. It >> is clear that some callers of lookup expect the reference to be >> maintained on error so the unconditional vput was (well is - this >> patch isn't in base) wrong, but in the case of success it isn't clear. >> Doing the vput on success will still eventually (as in a few seconds >> of this torture test script) cause a negative reference count panic. I >> think there needs to be an audit of VFS function contract compliance. >> Preferably by someone who knows what they are. I can only infer from >> cumulative context. > > I have evidence that the API has actually changed somehow. > > The old API would have extra calls to remove references to nodes. > We don't seem to be seeing those extra calls any more. > I'll have more info later. My colleague who works on the filesystem in question suspects a change in the interplay between _inactive and _reclaim of a znode/vnode, resulting in extra references on the nodes. Doesn't ring any bells with anyone? >> Thanks. >> >> -K >> >> > > _______________________________________________ > freebsd-fs@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-fs > To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org" > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?544BB194.3010705>