David Sterba wrote on 2016/05/06 16:35 +0200:
On Thu, May 05, 2016 at 09:08:54AM +0800, Qu Wenruo wrote:
An early check can compare against some reasonable value, but the
total_bytes value must be equal to the sum of all device sizes
(disk_total_bytes). I'm not sure if we have enough information to verify
that at this point though.
That's what I had in mind, the problem is that only the first device information is recorded in superblock.
At this moment We have device_num but we don't know the size of other devices.
Thanks,
-liubo
What about error out if we found sb->total_bytes <
sb->dev_item->total_bytes?
As we are just doing early check, no need to be comprehensive, but spot
obvious problem.
Ok.
For exact device_num and sb->total_bytes, we may do post check when
device tree are loaded?
Splitting early_check() and post_check() seems valid for me.
(Also I prefer post_check() just warning, not forced exit)
Why just warning? Superblock total_bytes and device sizes must be
correct, otherwise all sorts of operations can fail randomly.
Because if we exit, we can't even do fsck.
Maybe we need a new flag to control whether exit or warn at post_check().
Thanks,
Qu
--
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