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?

> 
> 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