Hi folks, Here is the userspace side of the first batch of kernel patches for metadata CRC support. It needs to be applied on top of the kernel sync patch I sent here: http://oss.sgi.com/archives/xfs/2013-01/msg00188.html This batch of patches covers the porting of the kernel crc32c code, syncing the kernel log recovery code to libxlog, and metadata CRC support for inodes, freespace, quota, superblock and symlinks. It does not cover directory or attribute metadata - that will be sent as a separate patch. This code is functional, but not pretty and probably pretty much unreviewable. There are outstanding issues like how to report verifier errors in a sane way that is source compatible with the kernel code, how to factor all the repeated copy-n-paste template code so taht kernel and userspace share code sanely, and so on. The xfs_db code is not fully converted - xfs_check does not work at all on metadata CRC enabled filesystems, so if you want to run xfstests, you need to set XFS_CHECK_PROG="/bin/true" in common.config. I haven't touched xfs_copy, metadata, quota, io, etc, and I know that xfs_io sees metadata CRC enabled filesystems as foreign because it doesn't believe that version 5 superblocks are valid.... xfs_reapir mostly works - it's got some interesting extra output to do with verifier failure so that I can debug problems. I added these filters to _filter_repair() in common.repair: # crc enabled filesystems /XFS_CORRUPTION_ERROR/ && next; /^bad uuid/ && next; so that most of the noise is filtered out and so most xfstests pass just fine. Quite a few tests have mkfs output in their golden image, and hence they fail because of the new crc information line in the output. The userspace verifier support is pretty cool - if xfs_repair fixes something incorrectly, the verifier will pick it up as being bad and it doesn't get written to disk. Error handling of these situations is currently non-existent, which is why there is error output in these cases. This has found several problems and lots of redundant checks and fixes in xfs_repair - having to fix the same problem in 3 different phases which have 3 different implementations of the same corruption detection gets old in a hurry.... The overall diffstat for this series currently stands at: 93 files changed, 4126 insertions(+), 961 deletions(-) and that is on top of the initial kernel sync patch. Once again, I don't expect this patch set to be reviewed - I'm providing it so that the kernel code that needs review can be exercised and tested ..... ObWarning to non-developers: This code eats babies for fun and profit. Unless you are going to be testing, reviewing and reporting problems with the code as part of the development process, do not apply this patch set. Yeah, I know, all the cool kids are doing CRCs these days - it'll be ready to go soon, and then you can get your fix... Cheers, Dave. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs