On 01/09, Chao Yu wrote: > On 2019/1/9 12:42, Jaegeuk Kim wrote: > > On 01/09, Chao Yu wrote: > >> 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? > > > > mkfs.f2fs on non-existing image file? > > That's not allowed as e2fsprogs does?
I'm not sure it's spec tho, this patch breaks android build which looks like regression. Do we have any issue to fix with this patch? > > mkfs.ext4 /home/image/img > mke2fs 1.44.4 (18-Aug-2018) > The file /home/image/img does not exist and no size was specified. > > > > >> > >> 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