tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: refuse: fuse_setup 26 incompatibility



On Fri, Jul 04, 2008 at 08:59:45PM +0200, Dieter Baron wrote:
> On Fri, Jul 04, 2008 at 06:22:44PM +0100, Alistair Crooks wrote:
> > On Fri, Jul 04, 2008 at 05:55:29PM +0200, Dieter Baron wrote:
> > > On Fri, Jul 04, 2008 at 04:48:50PM +0100, Alistair Crooks wrote:
> > > > On Fri, Jul 04, 2008 at 11:18:51AM +0200, Dieter Baron wrote:
> > > > > fuse_setup changed between API version 2.5 and 2.6.  Our librefuse
> > > > > always presents the 2.5 interface, even when the application requests
> > > > > 2.6.  The attached diff implements the 2.6 version and interface
> > > > > selection based on FUSE_USE_VERSION.
> > > > 
> > > > The diffs look good - thanks for that.
> > > > Please go ahead and commit them.
> > > 
> > >   I just noticed that the patch removes a symbol (fuse_setup) from
> > > librefuse, so a program that used the pre-2.6 API's fuse_setup linked
> > > against the old version would no longer run.  Is this considered a
> > > problem, or is librefuse considered too experimental to worry about
> > > such corner cases?
> > 
> > No, there are a number of pre-2.6 FUSE file systems out there
> > (probably the majority of them), so it needs to be fixed for them (if
> > I'm understanding you correctly).
> 
>   It only breaks the ones using fuse_setup, but I agree that not
> breaking them is the better way.
> 
>   Should I leave fuse_setup as is, add a fuse_setup26 and use a 
>       #define fuse_setup      fuse_setup26
> when the 26 API is requested?

Yes, I thought that was what you had done with the fuse_setup_real
bits, but I must have misread your change.
 
>   BTW, refuse defaults to API version 26, fuse defaults to 25.  Should
> e fix this also, so programs that use the old fuse_setup version and
> don't define FUSE_USE_VERSION still compile?

Until you mentioned it, I wasn't aware of any significant difference
between 2.5 and 2.6 - the reference interface used when creating
ReFUSE was the 2.6 one, so I'd prefer to keep ReFUSE at 2.6, to save
us being bitten in the backside by anything else that's been missed.
It also saves us from unnecessary churn. ReFUSE has been in-tree for
17 months now, so we should have noticed any anomalies by now - yours
being the obvious exception. What FUSE file system did you find this
with?

If there are any third-party packages that rely on 2.5 behaviour
that we haven't yet found, we can review the situation then.

Regards,
Alistair


Home | Main Index | Thread Index | Old Index