On Tue, May 01, 2018 at 04:02:34PM +0200, David Sterba wrote: > On Fri, Apr 27, 2018 at 12:21:49PM +0300, Nikolay Borisov wrote: > > After investigating crashes on generic/176 it turned that the culprit in fact > > is the random failure induced by generic/019. As it happens, if on unmount the > > filesystem is in BTRFS_FS_STATE_ERROR then btrfs_error_commit_super is called. > > This unveiled 2 bugs: > > 1. btrfs_destroy_delalloc_inodes's implementation was completely bogus, since > > it only called btrfs_invalidate_inodes which only pruned dentries and didn't > > do anything to free any inodes with pending delalloc bytes. Once this is fixed > > with the use of invalide_inode_pages2 the second bug transpired. > > 2. The last call ot run_delayed_iputs is made before btrfs_cleanup_transaction > > is called. The latter in turn could queue up more delayed iputs resulting from > > invalidates_inode_pages2. > > > > This series fixes the problem by first fixing btrfs_destroy_delalloc_inode to > > properly cleanup delalloc inodes and as a result cleans up the code a bit. > > > > I've given it a good bashing through xfstest (4 full xfstest cycles + 100 > > iterations of generic/475 since it was hitting some early assertion failures, > > which are fixed in the final version) so am pretty confident in the change. > > Thanks. I'll add it as topic branch to next, this needs some testing > exposure. The plan is to push the core patches to some rc, possibly rc5. > > Review of patch 3 is required. The whole series is now in misc-next. I did not see another occurence of the crash, so that was probably unrelated to this patchset but still worth analyzing. As there are going to be more patches in post-rc5, this patch is in the pool. -- 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
