On Wed, Sep 09, 2009 at 09:13:49AM -0400, Chris Mason wrote: > On Tue, Aug 18, 2009 at 07:26:41PM +0200, Nick Piggin wrote: > > Hi Chris, > > > > Don't know if this is a known issue, but I have btrfs (after my previous > > inode_tree fixup patch) failing fsx-linux in Linus's current git tree. > > > > This makes it a bit hard for me to test my btrfs truncate conversion patch > > unfortunately, though it does seem pretty stable so I will probably just > > send it out anyway. > > > > Anyway, just a head's up. Oh, the way I reproduce is to create btrfs > > on 1GB rd, run 4 instances of fsx-linux on different files in the root > > directory, and run `while true ; do sync ; echo 3 > > > /proc/sys/vm/drop_caches; > > done` at the same time. > > Just an update, I think I've tracked this down. Our fixup code for when > set_page_dirty was called without page_mkwrite wasn't catching every > case. I'm hitting other problems because I'm testing on my new > performance code, but hopefully this will all be nailed down soon.
Which cases do set_page_dirty happen without page_mkwrite? For fsx-linux I hope there shouldn't be any... but one issue with btrfs's page_mkwrite is that it still unlocks the page before page_mkwrite returns so if it is anything like other filesystems, the page might get written out between the page_mkwrite and the page fault's subsequent set_page_dirty. So if that race is hitting, it might appear like set_page_dirty is being called without a page_mkwrite. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html