Re: [PATCH] ovl: create UUIDs for file systems that do not set the superblock UUID

From: Colin Ian King
Date: Thu Nov 07 2019 - 03:45:59 EST


On 07/11/2019 07:08, Amir Goldstein wrote:
> On Thu, Nov 7, 2019 at 1:43 AM Colin King <colin.king@xxxxxxxxxxxxx> wrote:
>>
>> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>>
>> Some file systems such as squashfs do not set the UUID in the
>> superblock resulting in a zero'd UUID. In cases were two or more
>> of these file systems are overlayed on the lower layer we can hit
>> overlay corruption issues because identical zero'd overlayfs UUIDs
>> are impossible to differentiate between. This can be fixed by
>> creating an overlayfs UUID based on the file system from the
>> superblock s_magic and s_dev fields. (This currently seems like
>> enough information to be able create a UUID, but the could be
>> scope to use other super block fields such as the pointer s_fs_info
>> but may need some obfuscation).
>>
>
> The fix is incorrent. uuid stored in xattr needs to have persistent properties.
> In the use case that you describe, the origin file handle should simply be
> ignored.
>
> Please test attached patch.

Thanks for the patch. Tested, and the error still occurs:

[ 163.959633] overlayfs: invalid origin (etc/.pwd.lock, ftype=8000,
origin ftype=4000).

Colin

>
> Thanks,
> Amir.
>