On Tue, Dec 10, 2013 at 04:51:41PM +0800, Liu Bo wrote: > On Mon, Dec 09, 2013 at 09:20:05AM -0500, Chris Mason wrote: > > Quoting Liu Bo (2013-12-09 04:34:31) > > > Inode cache is similar to free space cache and in fact shares the same > > > code, however, we don't load inode cache unless we're about to allocate > > > inode id, then there is a case where we only commit the transaction during > > > other operations, such as snapshot creation, we now update fs roots' generation > > > to the new transaction id, after that when we want to load the inode cache, > > > we'll find that it's not valid thanks to the mismatch of generation, and we > > > have to push btrfs-ino-cache thread to build inode cache from disk, and > > > this operation is sometimes time-costing. > > > > > > So to fix the above, we load inode cache into memory during reading fs root. > > > > Thanks Liu. Have you tested this with orphan replay? I'd like to make > > sure the new ordering of starting caching isn't causing problems with > > finding and processing the orphan items. > > I hacked the code with the following change in order to test orphan > replay with inode cache enabled, it's ok on my side on mounting and > using, I'll make some tests to make sure xfstests is ok, too. Oops, xfstests/btrfs/012 complains with a 'general protection", I need to look into that. -liubo -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html