[PATCH] erofs-utils: fix `--blobdev=X`

Hongbo Li lihongbo22 at huawei.com
Sun Apr 27 17:04:33 AEST 2025



On 2025/4/27 10:56, Gao Xiang wrote:
> Hi Hongbo,
> 
> On 2025/4/27 10:49, Hongbo Li wrote:
>>
>>
>> On 2025/4/27 10:15, Gao Xiang wrote:
>>> Create one if the file doesn't exist.
>>>
>>> Fixes: b6b741d8daaf ("erofs-utils: lib: get rid of tmpfile()")
>>
>> I think the real fixes should be Fixes: bbeec3c93076 ("erofs-utils: 
>> mkfs: add extra blob device support").
> 
> Prior to b6b741d8daaf, the functionality is ok since
> fopen(..,"wb") will create the file too.

Sorry, you're right, I misread that.

> 
>>> Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
>>> ---
>>>   lib/blobchunk.c | 3 ++-
>>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/lib/blobchunk.c b/lib/blobchunk.c
>>> index e6386d6..301f46a 100644
>>> --- a/lib/blobchunk.c
>>> +++ b/lib/blobchunk.c
>>> @@ -627,7 +627,8 @@ int erofs_blob_init(const char *blobfile_path, 
>>> erofs_off_t chunksize)
>>>           blobfile = erofs_tmpfile();
>>>           multidev = false;
>>>       } else {
>>> -        blobfile = open(blobfile_path, O_WRONLY | O_BINARY);
>>> +        blobfile = open(blobfile_path, O_WRONLY | O_CREAT |
>>> +                        O_TRUNC | O_BINARY, 0666);
>> To maintain consistency, is it better to set the default permission to 
>> 0644?
> 
> I tend to switch all modes to 0666 around the codebase
> in the future, since umask(022) will mask them into 0644.
> 
but 0644 can clearly show which permissions are set (the default umask 
022 won't change anything). Or if we need to enforce a specific mode, 
can we umask to 0 at the beginning instead of relying on the default umask?

By the way, I have another doubt (just occurred to me when seeing 
O_TRUNC, though it might be unrelated to this change): the chunk-based 
format can't be used together with the "--increase" option. Should we 
add a warning for that?

Thanks,
Hongbo

> Thanks,
> Gao Xiang


More information about the Linux-erofs mailing list