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);
+       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