return 1;
}
+ // The Linux kernel seems to be quite funny when trying to bind-mount something
+ // as read-only and requires us to mount the source first, and then remount it
+ // again using MS_RDONLY.
+ if (flags & MS_RDONLY) {
+ r = pakfire_mount(pakfire, src, mountpoint, NULL, MS_BIND|MS_REC, NULL);
+ if (r)
+ return r;
+
+ // Add the remount flag
+ flags |= MS_REMOUNT;
+ }
+
// Perform mount
- return pakfire_mount(pakfire, src, mountpoint, NULL, flags|MS_REC|MS_BIND, NULL);
+ return pakfire_mount(pakfire, src, mountpoint, NULL, flags|MS_BIND|MS_REC, NULL);
}