This is just a few reflink fixes associated with cowblocks tagging that I came across when playing around with and/or reviewing some code. The issue associated with patch 3 is easily reproducible with something like the following: echo 30 > /proc/sys/fs/xfs/speculative_cow_prealloc_lifetime xfs_io -fc "cowextsize 64k" $src xfs_io -c "pwrite 0 128k" $src cp --reflink $src $tgt xfs_io -c "pwrite 64k 32k" $tgt xfs_io -c "pwrite 96k 32k" $tgt echo sleep sleep 25 echo delalloc xfs_io -c "pwrite 0 4k" $tgt ... which basically just sets the cowblocks tag, uses up all of the resulting cow blocks, waits until just before the cowblocks scanner is going to run and creates a delalloc reservation in the cow fork. The cow fork fiemap thingy I sent the other day shows that the resulting cow fork blocks remain indefinitely. Thoughts, reviews, flames appreciated. Brian Brian Foster (3): xfs: fix up inode cowblocks tracking tracepoints xfs: clear cowblocks tag when cow fork is emptied xfs: don't skip cow forks w/ delalloc blocks in cowblocks scan fs/xfs/xfs_icache.c | 10 +++++----- fs/xfs/xfs_reflink.c | 29 +++++++++-------------------- fs/xfs/xfs_reflink.h | 2 +- 3 files changed, 15 insertions(+), 26 deletions(-) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html