Re: [RFC-PATCH] xfs: do not update sunit/swidth in the superblock to match those provided during mount

Eric Sandeen
2019-11-24T17:38:57Z

On 11/24/19 10:40 AM, Darrick J. Wong wrote:
> On Sun, Nov 24, 2019 at 11:13:09AM +0200, Alex Lyakas wrote:

...

>>>> With the suggested patch, xfs repair is working properly also when mount-provided sunit/swidth are different.
>>>>
>>>> However, I am not sure whether this is the proper approach.
>>>> Otherwise, should we not allow specifying different sunit/swidth
>>>> during mount?
>
> I propose a (somewhat) different solution to this problem:
>
> Port to libxfs the code that determines where mkfs/repair expect the
> root inode. Whenever we want to update the geometry information in the
> superblock from mount options, we can test the new ones to see if that
> would cause sb_rootino to change. If there's no change, we update
> everything like we do now. If it would change, either we run with those
> parameters incore only (which I think is possible for su/sw?) or refuse
> them (because corruption is bad).
>
> This way we don't lose the su/sw updating behavior we have now, and we
> also gain the ability to shut down an entire class of accidental sb
> geometry corruptions.

I also wonder if we should be putting so much weight on the root inode
location in repair, or if we could get away with other consistency checks
to be sure it's legit, since we've always been able to move the
"expected" Location.