Re: [PATCH 2/2] fix file counting

From: Andrew Morton
Date: Sat Feb 18 2006 - 05:09:50 EST


Dipankar Sarma <dipankar@xxxxxxxxxx> wrote:
>
> On Sat, Feb 18, 2006 at 01:45:29AM -0800, Andrew Morton wrote:
> > Dipankar Sarma <dipankar@xxxxxxxxxx> wrote:
> > >
> > >
> > > Slight optimization -
> > >
> > > if (get_nr_files() >= files_stat.max_files) {
> > > if (capable(CAP_SYS_ADMIN)) {
> > > /*
> > > * percpu_counters are inaccurate. Do an expensive check before
> > > * we go and fail.
> > > */
> > > if (percpu_counter_sum(&nr_files) >=
> > > files_stat.max_files)
> > > goto over;
> > > } else
> > > goto over;
> > > }
> >
> > That changes the behaviour for root. Maybe you meant !capable(), but that
> > still changes the behaviour. I'm all confused.
>
> Hmm.. on second thoughts, there is no harm doing the expensive check
> for both priviledged and non-priviledged user. It will correctly
> allow non-priviledged users to create the new file provided
> the fast-path percpu counter value returned was greater than the
> slow path per-cpu counter value.

Look closer ;)

if (get_nr_files() >= files_stat.max_files && !capable(CAP_SYS_ADMIN)) {
/*
* percpu_counters are inaccurate. Do an expensive check before
* we go and fail.
*/
if (percpu_counter_sum(&nr_files) >= files_stat.max_files)
goto over;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/