From: Karel Zak Date: Wed, 3 Jan 2018 12:59:59 +0000 (+0100) Subject: libmount: fix mnt_table_is_fs_mounted() for rbind X-Git-Tag: v2.32-rc1~107 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b5cc232362a60b2a7738ee250609202bd6195e49;p=thirdparty%2Futil-linux.git 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 --- diff --git a/libmount/src/tab.c b/libmount/src/tab.c index 760b95b5fb..968057e429 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);