On Thu, 02 Jun 2011 13:17:55 -0700
Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:
> Sergei Trofimovich <slyfox@xxxxxxxxxx> writes:
> >
> > Am I too paranoid about the issue?
>
> It sounds weird, because if the kernel would really checksum
> mutexes on disk you would have a lot of on disk
> format incompatibility between different kernel versions
> (e.g. between lockdep and normal kernels or kernels
> running on different architectures)
>
> If it would really happen (no opinion on that) it would
> be a serious bug.
Oh, I don't think things are so bad.
In order it to be a problem superblock loading would have to
be loaded exactly the same way as it's stored, but it isn't.
At least super copies (baked into btrfs_fs_info) are read
to separate data block (buffer_hear) and then copied properly
(in open_ctree) to super_copy/super_for_commit:
bh = btrfs_read_dev_super(fs_devices->latest_bdev);
if (!bh) {
err = -EINVAL;
goto fail_alloc;
}
memcpy(&fs_info->super_copy, bh->b_data, sizeof(fs_info->super_copy));
memcpy(&fs_info->super_for_commit, &fs_info->super_copy,
sizeof(fs_info->super_for_commit));
brelse(bh);
But the way superblocks are written look racy.
--
Sergei
Attachment:
signature.asc
Description: PGP signature
