File util-linux-libmount-is-mounted-loopdev.patch of Package util-linux.4136

commit d58b9706ed8a10cc484835119ed10385d141eb6c
Author: Karel Zak <kzak@redhat.com>
Date:   Fri Feb 12 11:03:32 2016 +0100

    libmount: fix mnt_table_is_fs_mounted() for loopdev
    
    Reported-by: Stanislav Brabec <sbrabec@suse.cz>
    Signed-off-by: Karel Zak <kzak@redhat.com>

Index: util-linux-2.25/libmount/src/tab.c
===================================================================
--- util-linux-2.25.orig/libmount/src/tab.c
+++ util-linux-2.25/libmount/src/tab.c
@@ -1543,8 +1543,9 @@ int mnt_table_is_fs_mounted(struct libmn
 	assert(tb);
 	assert(fstab_fs);
 
-	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)"));
@@ -1616,8 +1617,13 @@ int mnt_table_is_fs_mounted(struct libmn
 			} else
 				flags = LOOPDEV_FL_OFFSET;
 
-			if (loopdev_is_used(mnt_fs_get_srcpath(fs), src, offset, flags))
-				break;
+ 			DBG(FS, ul_debugobj(fs, "checking for loop: src=%s", mnt_fs_get_srcpath(fs)));
+
+			if (!loopdev_is_used(mnt_fs_get_srcpath(fs), src, offset, flags))
+				continue;
+
+			DBG(FS, ul_debugobj(fs, "used loop"));
+
 		}
 
 		if (root) {
openSUSE Build Service is sponsored by