summaryrefslogtreecommitdiffstats
path: root/libmount/src/tab.c
diff options
context:
space:
mode:
authorKarel Zak2018-01-03 13:59:59 +0100
committerKarel Zak2018-01-03 14:02:27 +0100
commitb5cc232362a60b2a7738ee250609202bd6195e49 (patch)
treec429435f01048dc3018a7dd5734fe40c58dc90a5 /libmount/src/tab.c
parentlibfdisk: (dos) fix max heads (diff)
downloadkernel-qcow2-util-linux-b5cc232362a60b2a7738ee250609202bd6195e49.tar.gz
kernel-qcow2-util-linux-b5cc232362a60b2a7738ee250609202bd6195e49.tar.xz
kernel-qcow2-util-linux-b5cc232362a60b2a7738ee250609202bd6195e49.zip
libmount: fix mnt_table_is_fs_mounted() for rbind
There is no difference between "bind" and "rbind" if we want to FS root to search for the FS in mountinfo file. fstab: /dev/sdc1 /mnt/foo xfs defaults 0 0 /mnt/foo /mnt/test none rw,rbind 0 0 use -a more than once: mount -a mount -a /proc/mounts (the current result): /dev/sdc1 /mnt/foo xfs rw,relatime,attr2,inode64,noquota 0 0 /dev/sdc1 /mnt/test xfs rw,relatime,attr2,inode64,noquota 0 0 /dev/sdc1 /mnt/test xfs rw,relatime,attr2,inode64,noquota 0 0 /dev/sdc1 /mnt/foo xfs rw,relatime,attr2,inode64,noquota 0 0 expected (fixed version) result: /dev/sdc1 /mnt/foo xfs rw,relatime,attr2,inode64,noquota 0 0 /dev/sdc1 /mnt/test xfs rw,relatime,attr2,inode64,noquota 0 0 Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1528959 Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libmount/src/tab.c')
-rw-r--r--libmount/src/tab.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libmount/src/tab.c b/libmount/src/tab.c
index 760b95b5f..968057e42 100644
--- a/libmount/src/tab.c
+++ b/libmount/src/tab.c
@@ -1561,7 +1561,8 @@ int mnt_table_is_fs_mounted(struct libmnt_table *tb, struct libmnt_fs *fstab_fs)
struct libmnt_fs *rootfs;
int flags = 0;
- if (mnt_fs_get_option(fstab_fs, "bind", NULL, NULL) == 0)
+ if (mnt_fs_get_option(fstab_fs, "bind", NULL, NULL) == 0 ||
+ mnt_fs_get_option(fstab_fs, "rbind", NULL, NULL) == 0)
flags = MS_BIND;
rootfs = mnt_table_get_fs_root(tb, fstab_fs, flags, &root);