tech-userlevel archive

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

Re: libquota proposal



On Sat, Mar 19, 2011 at 11:01:16PM +1100, matthew green wrote:
> 
> > On Sat, Mar 19, 2011 at 09:40:18AM +1100, matthew green wrote:
> > > 
> > > this seems reasonable to me.  why don't you stick it in libutil?
> > > 
> > > > As this is needed to get netatalk to build again on HEAD, I'd like
> > > > to commit this in the next few days.
> > > 
> > > this is what i'm talking about about using a different name for
> > > the new syscall that takes totally different arguments.
> > > 
> > > is there absolutely no chance for old code to work with the new
> > > kernel?
> > 
> > It won't work: old code looks at the filesystem type, and fstab
> > entries for userquota/groupquota options. So, even if we made it
> > compile again, it would only look for quota on ffs with quota1;
> > it would miss ffs with quota2, mfs, or anything else that will
> > have quota in the future.
> 
> i understand this -- you need to use the new API to access
> the new functionality.
> 
> my question was more: what's *broken* to let old code build
> and run against the old API?  clearly, apps need to have
> new patches to talk to the new API, but is there a reason to
> make it *impossible* to use the old API?

it's not impossible, it's there under COMPAT_50.
What's make it fail to build right now is not the syscall name
(old code don't include sys/quota.h) but ufs/ufs/quota.h which is now
split between quota.h and quota1.h (including quota1.h instead of quota.h
should fix it).
Still, I'd rather have old code not built by default so that we can
catch it. If someone really wants to, include quota1.h instead of quota.h

> i am not going to
> claim they exist, but what if someone is running an older
> netatalk for some reason, and they'd rather rebuild than
> port your patches.
> 
> breaking source compat like this is just nasty.

For this case, I think it's the right thing to do: it allows to detect
which applications uses it so they can be changed. Otherwise, you have an
application build fine (modulo the warning at link time, which can very
well go unoticed), and you then spend time trying to understand why
this binary doesn't notice your quotas ...

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index