aboutsummaryrefslogtreecommitdiff
path: root/lib/libf2fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libf2fs.c')
-rw-r--r--lib/libf2fs.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/libf2fs.c b/lib/libf2fs.c
index d51e485..1cfbf31 100644
--- a/lib/libf2fs.c
+++ b/lib/libf2fs.c
@@ -854,9 +854,15 @@ int f2fs_dev_is_umounted(char *path)
loop_fd = open(mnt->mnt_fsname, O_RDONLY);
if (loop_fd < 0) {
+ /* non-root users have no permission */
+ if (errno == EPERM || errno == EACCES) {
+ MSG(0, "Info: open %s failed errno:%d - be careful to overwrite a mounted loopback file.\n",
+ mnt->mnt_fsname, errno);
+ return 0;
+ }
MSG(0, "Info: open %s failed errno:%d\n",
- mnt->mnt_fsname, errno);
- return -1;
+ mnt->mnt_fsname, errno);
+ return -errno;
}
err = ioctl(loop_fd, LOOP_GET_STATUS64, &loopinfo);
@@ -864,7 +870,7 @@ int f2fs_dev_is_umounted(char *path)
if (err < 0) {
MSG(0, "\tError: ioctl LOOP_GET_STATUS64 failed errno:%d!\n",
errno);
- return -1;
+ return -errno;
}
if (st_buf.st_dev == loopinfo.lo_device &&