Re: [PATCH] mm for fs: add truncate_pagecache_range

From: Andrew Morton
Date: Fri Mar 23 2012 - 18:59:51 EST


On Fri, 23 Mar 2012 14:14:54 -0700 (PDT)
Hugh Dickins <hughd@xxxxxxxxxx> wrote:

> On Fri, 23 Mar 2012, Andrew Morton wrote:
> >
> > --- a/mm/truncate.c~mm-for-fs-add-truncate_pagecache_range-fix
> > +++ a/mm/truncate.c
> > @@ -639,6 +639,9 @@ int vmtruncate_range(struct inode *inode
> > * with on-disk format, and the filesystem would not have to deal with
> > * situations such as writepage being called for a page that has already
> > * had its underlying blocks deallocated.
> > + *
> > + * Must be called with inode->i_mapping->i_mutex held.
>
> You catch me offguard: I forget whether that's an absolute requirement or
> just commonly the case. What do the other interfaces in truncate.c say ?-)

i_mutex is generally required, to stabilise i_size.

> > + * Takes inode->i_mapping->i_mmap_mutex.
>
> Yes, and inode->i_mapping->tree_lock.

I don't think it's necessary to get into the spinning locks for a
high-level function which clearly does sleeping things.


--
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/