Re: [PATCH 001 of 2] Fix read/truncate race.

Neil Brown
2007-06-12T00:16:43Z

On Thursday June 7, akpm@linux-foundation.org wrote:
> On Fri, 8 Jun 2007 12:48:48 +1000 Neil Brown <neilb@suse.de> wrote:
>
> > The following patch will remove the extra seqlock except when we
> > actually need it and remove the extra arithmetic - but I haven't
> > tested it or reviewed it properly. I can do that if you think it is
> > the right direction.
>
> Yes, the optimisation is valid and looks useful.
>
> > ./mm/filemap.c | 34 ++++++++++++++++++++++++++++------
>
> It didn't apply - your tree seems different from mine.

Odd. I had no other changes to that file in my tree. I'll wait until
the next -mm(?).
It's just as well really, the patch was buggy - didn't even compile
and (as I said) totally untested. I'll get you a tested patch after I
can rebase.

>
> > + *
> > + * NOTE: This access of inode->i_size is not protected
> > + * and if there is a concurrent update on a 32bit machine,
> > + * it could return the wrong value. This could only be a problem
> > + * if i_size has actually changed to a smaller value before the
> > + * page became uptodate, and at this point it still has a smaller
> > + * value, but due to a race while reading, it appears unchanged.
> > + * The chances of this happening are so small and the consequence
> > + * sufficiently minor, that the cost of the seqlock seems
> > + * not to be justified.
>
> please consider incorporating scripts/checkpatch.pl into your patch
> preparation toolchain.

Done... Any reason that it isn't executable (chmod +x)?

NeilBrown