- if (mount(NULL, prefix, NULL, MS_BIND|MS_REMOUNT|(ro ? MS_RDONLY : 0), NULL) < 0)
+ r = get_mount_flags(prefix, &orig_flags);
+ if (r < 0)
+ return r;
+ orig_flags &= ~MS_RDONLY;
+ if (mount(NULL, prefix, NULL, orig_flags|MS_BIND|MS_REMOUNT|(ro ? MS_RDONLY : 0), NULL) < 0)