On Thu, Sep 11, 2014 at 11:20 PM, Christoph Hellwig <hch@xxxxxx> wrote: > On Thu, Sep 11, 2014 at 09:54:42PM +0800, Peng Tao wrote: >> It looks better to put return_range inside >> pnfs_mark_matching_lsegs_invalid() to have it called every time a >> range of layout segments all get freed. So that ld is sure to free >> things up. > > Actually we specificly want to avoid that for cases like the internal > new stateid handling in pnfs_layout_process, where we might allocate > a new layout that overlaps an existing one, and where we need to keep > the extents around. > It looks dangerous to have extents lurking around without matching layout segments. One example is NFS4ERR_EXPIRED and NFS4ERR_BAD_STATEID in nfs4_layoutget_done(), client needs to drop all layout segments but may keep the layout header, in which case blocks layout would still hold all extents at hand. -- 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