aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INSTALL6
-rw-r--r--NEWS6
-rw-r--r--doc/index.html10
-rw-r--r--doc/s6-linux-init-umountall.html4
-rw-r--r--doc/upgrade.html11
-rw-r--r--package/deps-build6
-rw-r--r--package/info2
-rw-r--r--src/misc/s6-linux-init-umountall.c15
8 files changed, 45 insertions, 15 deletions
diff --git a/INSTALL b/INSTALL
index ed26e58..05b0e5d 100644
--- a/INSTALL
+++ b/INSTALL
@@ -6,11 +6,11 @@ Build Instructions
- A Linux-based system with a standard C development environment
- GNU make version 3.81 or later
- - skalibs version 2.15.0.0 or later: https://skarnet.org/software/skalibs/
+ - skalibs version 2.15.0.1 or later: https://skarnet.org/software/skalibs/
- Optional: nsss version 0.2.1.2 or later: https://skarnet.org/software/nsss/
- Optional: utmps version 0.1.3.3 or later: https://skarnet.org/software/utmps/
- - execline version 2.9.8.2 or later: https://skarnet.org/software/execline/
- - s6 version 2.15.0.0 or later: https://skarnet.org/software/s6/
+ - execline version 2.9.9.2 or later: https://skarnet.org/software/execline/
+ - s6 version 2.15.0.1 or later: https://skarnet.org/software/s6/
This software is Linux-specific. It will run on a Linux kernel,
version 2.6.32 or later. However, it should not be too hard to port to
diff --git a/NEWS b/NEWS
index bac348b..e83e582 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,11 @@
Changelog for s6-linux-init.
+In 1.2.0.2
+----------
+
+ - Remount fses read-only if they cannot be unmounted
+
+
In 1.2.0.1
----------
diff --git a/doc/index.html b/doc/index.html
index 85beffd..6df4ddd 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -74,16 +74,16 @@ kernel command line </li>
<li> A Linux-based system with a standard C development environment </li>
<li> GNU make, version 3.81 or later </li>
<li> <a href="//skarnet.org/software/skalibs/">skalibs</a> version
-2.15.0.0 or later. It's a build-time requirement. It's also a run-time
+2.15.0.1 or later. It's a build-time requirement. It's also a run-time
requirement (for <a href="s6-linux-init-maker.html">s6-linux-init-maker</a>)
as well as a boot-time requirement (i.e. a run-time requirement for the
programs used when you boot a system created with
<a href="s6-linux-init-maker.html">s6-linux-init-maker</a>) if you link
against the shared version of the skalibs library. </li>
<li> <a href="//skarnet.org/software/execline/">execline</a> version
-2.9.9.0 or later. It is a build-time and boot-time requirement. </li>
+2.9.9.2 or later. It is a build-time and boot-time requirement. </li>
<li> <a href="//skarnet.org/software/s6/">s6</a> version
-2.15.0.0 or later. It is a build-time and boot-time requirement. </li>
+2.15.0.1 or later. It is a build-time and boot-time requirement. </li>
</ul>
<p>
@@ -111,8 +111,8 @@ want nsswitch-like functionality:
<ul>
<li> The current released version of s6-linux-init is
-<a href="s6-linux-init-1.2.0.1.tar.gz">1.2.0.1</a>.
-You can access its checksum <a href="s6-linux-init-1.2.0.1.tar.gz.sha256">here</a>. </li>
+<a href="s6-linux-init-1.2.0.2.tar.gz">1.2.0.2</a>.
+You can access its checksum <a href="s6-linux-init-1.2.0.2.tar.gz.sha256">here</a>. </li>
<li> Alternatively, you can checkout a copy of the
<a href="//git.skarnet.org/cgi-bin/cgit.cgi/s6-linux-init/">s6-linux-init
git repository</a>:
diff --git a/doc/s6-linux-init-umountall.html b/doc/s6-linux-init-umountall.html
index 152cfb5..b922a44 100644
--- a/doc/s6-linux-init-umountall.html
+++ b/doc/s6-linux-init-umountall.html
@@ -57,7 +57,9 @@ when attempting to unmount the filesystems listed in <tt>/proc/mounts</tt>.
in "stage 4", i.e. after a SIGKILL has been sent to all the processes on the system, and
right before the system reboots (or halts, or is powered off). By that point, there is
no possible process that could prevent real file systems from being unmounted. </li>
- <li> It is likely that some filesystems will still fail to unmount, typically
+ <li> If a filesystem cannot be unmounted because it is busy, <tt>s6-linux-init-umountall</tt>
+attempts to remount it read-only instead. </li>
+ <li> It is likely that some filesystems will still fail, typically
cgroups or tmpfses. That's okay: those are pseudo-filesystems, and
will not cause data loss or a fsck if the system shuts down while they are still mounted. </li>
<li> Distributions usually provide a <tt>umount</tt> command with a <tt>-a</tt> option
diff --git a/doc/upgrade.html b/doc/upgrade.html
index 89a5b76..0d2bd3d 100644
--- a/doc/upgrade.html
+++ b/doc/upgrade.html
@@ -19,6 +19,17 @@
<h1> What has changed in s6-linux-init </h1>
+<h2> in 1.2.0.2 </h2>
+
+<ul>
+ <li> <a href="//skarnet.org/software/skalibs/">skalibs</a>
+dependency bumped to 2.15.0.1. </li>
+ <li> <a href="//skarnet.org/software/execline/">execline</a>
+dependency bumped to 2.9.9.2. </li>
+ <li> <a href="//skarnet.org/software/s6/">s6</a>
+dependency bumped to 2.15.0.1. </li>
+</ul>
+
<h2> in 1.2.0.1 </h2>
<ul>
diff --git a/package/deps-build b/package/deps-build
index c178fe3..b9c53da 100644
--- a/package/deps-build
+++ b/package/deps-build
@@ -1,5 +1,5 @@
-true true /package/prog/skalibs 2.15.0.0 libskarnet
+true true /package/prog/skalibs 2.15.0.1 libskarnet
$usensss false /package/admin/nsss 0.2.1.2 libnsss
$utmps false /package/admin/utmps 0.1.3.3 libutmps
-true false /package/admin/execline 2.9.9.0 libexecline
-true false /package/admin/s6 2.15.0.0 libs6
+true false /package/admin/execline 2.9.9.2 libexecline
+true false /package/admin/s6 2.15.0.1 libs6
diff --git a/package/info b/package/info
index 273d78e..16814a6 100644
--- a/package/info
+++ b/package/info
@@ -1,4 +1,4 @@
package=s6-linux-init
-version=1.2.0.1
+version=1.2.0.2
category=admin
package_macro_name=S6_LINUX_INIT
diff --git a/src/misc/s6-linux-init-umountall.c b/src/misc/s6-linux-init-umountall.c
index d4320ad..e7a2f53 100644
--- a/src/misc/s6-linux-init-umountall.c
+++ b/src/misc/s6-linux-init-umountall.c
@@ -55,8 +55,19 @@ int main (int argc, char const *const *argv)
while (line--)
if (umount(sa.s + mountpoints[line]) == -1)
{
- e++ ;
- strerr_warnwu2sys("umount ", sa.s + mountpoints[line]) ;
+ if (errno == EBUSY)
+ {
+ if (mount(0, sa.s + mountpoints[line], 0, MS_REMOUNT | MS_RDONLY, 0) == -1)
+ {
+ e++ ;
+ strerr_warnwusys("read-only remount ", sa.s + mountpoints[line]) ;
+ }
+ }
+ else
+ {
+ e++ ;
+ strerr_warnwu2sys("umount ", sa.s + mountpoints[line]) ;
+ }
}
stralloc_free(&sa) ;
return e ;