On 2019/1/9 7:46, Jaegeuk Kim wrote:
> On 12/10, Chao Yu wrote:
>> stat() can fail due to a lot of reasons, let f2fs_dev_is_umounted()
>> detect such error and handle it correctly.
>>
>> Signed-off-by: Chao Yu <yuch...@huawei.com>
>> ---
>>  lib/libf2fs.c | 9 ++++++++-
>>  1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/libf2fs.c b/lib/libf2fs.c
>> index c692bf2da635..6a1040feff32 100644
>> --- a/lib/libf2fs.c
>> +++ b/lib/libf2fs.c
>> @@ -713,7 +713,14 @@ int f2fs_dev_is_umounted(char *path)
>>      st_buf = malloc(sizeof(struct stat));
>>      ASSERT(st_buf);
>>  
>> -    if (stat(path, st_buf) == 0 && S_ISBLK(st_buf->st_mode)) {
>> +    ret = stat(path, st_buf);
> 
> We have to allow creating non-existing image file to build userdata.img. Can 
> we
> check its errno?

You mean sload flow? so how about?

if (ret) {
        if (errno == ENOENT && c.func == SLOAD)
                return 0;
        MSG(0, "\tError: stat %s failed!\n", path);
        free(st_buf);
        return -1;
}

Thanks,

> 
>> +    if (ret) {
>> +            MSG(0, "\tError: stat %s failed!\n", path);
>> +            free(st_buf);
>> +            return -1;
>> +    }
>> +
>> +    if (S_ISBLK(st_buf->st_mode)) {
>>              int fd = open(path, O_RDONLY | O_EXCL);
>>  
>>              if (fd >= 0) {
>> -- 
>> 2.18.0.rc1
> 
> .
> 



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to