On Thu, Jun 25, 2009 at 01:47:55PM -0400, Christoph Hellwig wrote: > On Thu, Jun 25, 2009 at 06:17:53PM +0200, Nick Piggin wrote: > > Basically the problems is that i_op->truncate a) cannot return an error > > (which is causing problems missing -EIO today anyway), and b) is called > > after i_size update which makes it not possible to error-out without > > races anyway, and c) does not get the old i_size so you can't unmap the > > last partial page with it. > > > > My patch is basically moving ->truncate call into setattr, and have > > the filesystem call vmtruncate. I've jt to clean up loose ends. > > We absolutely need to get rid of ->truncate. Due to the above issues > XFS already does the majority of the truncate work from setattr, and it > works pretty well. Yes well we could get rid of ->truncate and have filesystems do it themselves in setattr, but I figure that moving truncate into generic setattr is helpful (makes conversions a bit easier too). Did you see my patch? What do you think of that basic approach? > The only problem is the generic aops calling > vmtruncate directly. What should be done is require that filesystems trim blocks past i_size in case of any errors. I actually need to fix up a few existing bugs in this area too, so I'll look at this.. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html