On Wed, Sep 10, 2014 at 11:23 PM, Christoph Hellwig <hch@xxxxxx> wrote: > This speads up truncate-heavy workloads like fsx by multiple orders of > magnitude. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > fs/nfs/blocklayout/blocklayout.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c > index a7524c4..d5a2b87 100644 > --- a/fs/nfs/blocklayout/blocklayout.c > +++ b/fs/nfs/blocklayout/blocklayout.c > @@ -799,7 +799,8 @@ static struct pnfs_layoutdriver_type blocklayout_type = { > .id = LAYOUT_BLOCK_VOLUME, > .name = "LAYOUT_BLOCK_VOLUME", > .owner = THIS_MODULE, > - .flags = PNFS_READ_WHOLE_PAGE, > + .flags = PNFS_LAYOUTRET_ON_SETATTR | > + PNFS_READ_WHOLE_PAGE, The reason I didn't add it was because PNFS_LAYOUTRET_ON_SETATTR is too much for blocks layout. What we really want is to return layouts on truncate and chown, instead of _all_ setattr requests. Boaz, does object layout require return on setattr for other reasons? If not, I'd suggest we change PNFS_LAYOUTRET_ON_SETATTR to return only on chown/truncate events. Thanks, Tao -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html