diff --git a/src/switchroot/ostree-remount.c b/src/switchroot/ostree-remount.c index e19de183..a6d14d08 100644 --- a/src/switchroot/ostree-remount.c +++ b/src/switchroot/ostree-remount.c @@ -64,6 +64,14 @@ main(int argc, char *argv[]) */ if (S_ISLNK (stbuf.st_mode)) continue; + /* If not a mountpoint, skip it */ + struct statvfs stvfsbuf; + if (statvfs (target, &stvfsbuf) == -1) + continue; + /* If no read-only flag, skip it */ + if ((stvfsbuf.f_flag & ST_RDONLY) == 0) + continue; + /* It's a mounted, read-only fs; remount it */ if (mount (target, target, NULL, MS_REMOUNT | MS_SILENT, NULL) < 0) { /* Also ignore ENINVAL - if the target isn't a mountpoint @@ -72,6 +80,8 @@ main(int argc, char *argv[]) if (errno != EINVAL) err (EXIT_FAILURE, "failed to remount %s", target); } + else + printf ("Remounted: %s\n", target); } exit (EXIT_SUCCESS);