On 01/21/13 23:51, Dave Chinner wrote:
On Tue, Jan 22, 2013 at 12:52:59AM +1100, Dave Chinner wrote:
Just a word of note about xfs_db. xfs_db does not use libxfs for
reading and writing stuff from disk, so currently has no
infrastructure for checking or calculating checksums. Hence anything
that you do with xfs_db to write to disk on a CRC enabled filesystem
will corrupt it as it will invalidate the on-disk CRC.
Hence there are various xfstests that use xfs_db to write different
values into structures (e.g. 045, which writes a UUID into the
superblock) will not work. Indeed, this specific operation needs to
be disallowed on version 5 superblocks - the UUID is stamped into
every single piece of metadata, so changing it is, well, a whol elot
more complex that reading and writing the superblocks....
As a result, right now my only focus for xfs_db is for it to be able
to parse the structures correctly. We'll have to decide what the
best approach to fixing these problems in xfs-db are - rewriting it
to use libxfs is a major undertaking, but then again so is
architecting in the verifiers for CRC checking and calculation. And
I don't really like the idea of have two different implementations
of the same thing in the one place at the best of times....
Thanks for the heads-up.