diff options
author | Karel Zak | 2016-02-12 11:03:32 +0100 |
---|---|---|
committer | Karel Zak | 2016-02-12 11:03:32 +0100 |
commit | d58b9706ed8a10cc484835119ed10385d141eb6c (patch) | |
tree | 135112bb4bab2903b3b3f26257b606fb04bc0fd1 /libmount/src/tab.c | |
parent | tests: fix redirection (diff) | |
download | kernel-qcow2-util-linux-d58b9706ed8a10cc484835119ed10385d141eb6c.tar.gz kernel-qcow2-util-linux-d58b9706ed8a10cc484835119ed10385d141eb6c.tar.xz kernel-qcow2-util-linux-d58b9706ed8a10cc484835119ed10385d141eb6c.zip |
libmount: fix mnt_table_is_fs_mounted() for loopdev
Reported-by: Stanislav Brabec <sbrabec@suse.cz>
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libmount/src/tab.c')
-rw-r--r-- | libmount/src/tab.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libmount/src/tab.c b/libmount/src/tab.c index cb31de927..729a99fc0 100644 --- a/libmount/src/tab.c +++ b/libmount/src/tab.c @@ -1485,8 +1485,9 @@ int mnt_table_is_fs_mounted(struct libmnt_table *tb, struct libmnt_fs *fstab_fs) int rc = 0; dev_t devno = 0; - DBG(FS, ul_debugobj(fstab_fs, "is FS mounted? [target=%s]", - mnt_fs_get_target(fstab_fs))); + DBG(FS, ul_debugobj(fstab_fs, "is FS mounted? [target=%s, source=%s]", + mnt_fs_get_target(fstab_fs), + mnt_fs_get_source(fstab_fs))); if (mnt_fs_is_swaparea(fstab_fs) || mnt_table_is_empty(tb)) { DBG(FS, ul_debugobj(fstab_fs, "- ignore (swap or no data)")); @@ -1558,9 +1559,12 @@ int mnt_table_is_fs_mounted(struct libmnt_table *tb, struct libmnt_fs *fstab_fs) } else flags = LOOPDEV_FL_OFFSET; + DBG(FS, ul_debugobj(fs, "checking for loop: src=%s", mnt_fs_get_srcpath(fs))); #if __linux__ - if (loopdev_is_used(mnt_fs_get_srcpath(fs), src, offset, flags)) - break; + if (!loopdev_is_used(mnt_fs_get_srcpath(fs), src, offset, flags)) + continue; + + DBG(FS, ul_debugobj(fs, "used loop")); #endif } |