> Date: Wed, 10 Sep 2014 13:48:40 -0700 > From: darrick.wong@xxxxxxxxxx > To: thomas_reardon@xxxxxxxxxxx > CC: linux-ext4@xxxxxxxxxxxxxxx > Subject: Re: tune2fs -O ^metadata_csum not checking bitmap failures > > On Wed, Sep 10, 2014 at 04:30:41PM -0400, TR Reardon wrote: >> When running tune2fs -O ^metadata_csum, disable_uninit_bg() is called to >> reset the gdt. However, return value is not checked, which allows a failure >> (say, a block bitmap failure somewhere, among other errors) to continue >> through to rewrite_metadata_checksums() >> >> This seems wrong; should not the rewrite occur only if >> disable/enable_uninit_bg() succeeds? > > The rewrite will fail if either of the error cases in disable_uninit_bg() fail, > since rewrite_metadata_checksums() also tries to load the bitmap and scan the > inodes. Actually, rewrite_metadata_checksums() loads the bitmap with checksums OFF, which in the test I just ran, will succeed. This leaves the fs in a weird half-checksummed state. I should have been clearer above: if the initial disable_uninit_bg() failure occurs because of a *checksum error*, then we get into this confused state. Given that people would possibly try to disable metadata_csum if there are checksum errors, this seems like a fairly common scenario. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html