remount: Still remount /sysroot writable if not configured ro
authorColin Walters <walters@verbum.org>
Sat, 1 Aug 2020 17:24:28 +0000 (17:24 +0000)
committerColin Walters <walters@verbum.org>
Sat, 1 Aug 2020 17:27:18 +0000 (17:27 +0000)
Regression from https://github.com/ostreedev/ostree/pull/2113/commits/35642259175973617da937f3cab6ce5f13c95077
BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1862568

We still need to remount writable if it's not configured on;
because it may need OS adjustments it needs to be opt-in.

src/switchroot/ostree-remount.c

index 5c313c870d56aca31e16036c24262cf6c3916976..cfd270bba95f6250bdf7a2b5d563016a9d62f803 100644 (file)
@@ -106,11 +106,11 @@ main(int argc, char *argv[])
       exit (EXIT_SUCCESS);
     }
 
-  /* Handle remounting /sysroot read-only now */
-  if (unlink (_OSTREE_SYSROOT_READONLY_STAMP) == 0)
-    {
-      do_remount ("/sysroot", false);
-    }
+  /* Handle remounting /sysroot; if it's explicitly marked as read-only (opt in)
+   * then ensure it's readonly, otherwise mount writable, the same as /
+   */
+  bool sysroot_configured_readonly = unlink (_OSTREE_SYSROOT_READONLY_STAMP) == 0;
+  do_remount ("/sysroot", !sysroot_configured_readonly);
 
   /* If /var was created as as an OSTree default bind mount (instead of being a separate filesystem)
     * then remounting the root mount read-only also remounted it.