On Mon, Oct 01, 2018 at 12:50:30AM +0200, Christoph Hellwig wrote: > On Thu, Sep 27, 2018 at 11:07:31AM -0400, Brian Foster wrote: > > On Thu, Sep 20, 2018 at 04:42:16PM +0200, Christoph Hellwig wrote: > > > We need to make sure we have no outstanding COW blocks before we swap > > > extents, as there is nothing preventing us from having COW preallocations > > > on an inode that swapext is called on. That case can easily be > > > reproduced by the upcoming always_cow mode. > > > > > > > Why? Is the current code to swap the cow forks not sufficient or > > problematic in some way? > > The code didn't seem happy with non-delalloc COW fork extents sticking > around over swapext, but I'd have to go back and look up why. > It would be nice to have at least a high level note in the commit log for historical purposes, so we have a reference on what needs fixing if we revisit it in the future. > It seemed easiest to just cancel them as there is no reason to keep > these alive over a swapext. Seems reasonable to me. I'd just perhaps replace the cowblocks flag swap code with asserts or something to be consistent, because it seems that should never be set on either inode with this change in place. Brian