On Thu, May 01, 2014 at 10:00:53PM -0700, Christoph Hellwig wrote: > On Thu, May 01, 2014 at 09:54:43PM -0700, Christoph Hellwig wrote: > > On Fri, May 02, 2014 at 08:39:39AM +1000, Dave Chinner wrote: > > > This issue with xfs_setattr_size() was introduced back in 2010 by > > > commit fa9b227 ("xfs: new truncate sequence") which moved the page > > > cache truncate from outside the transaction context (what was > > > xfs_itruncate_data()) to inside the transaction context as a call to > > > truncate_setsize(). > > > > And it was moved because we should only call truncate_setsize once > > the truncate can't fail any more. So to move it out of transaction > > context it needs to move after the commit of the transaction(s). > > Actually that's only true for the i_size update. So I guess > we need to call truncate_pagecache were you put the truncate_setsize > now, and then update i_size later, together with the updates of the > XFS di_size. OK, that seems reasonable. I'll add a comment to ensure that we don't break it in future ;) Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs