Colin Walters
8642ef5ab3
lib/deploy: Use a FIFREEZE/FITHAW cycle for /boot
...
See: http://marc.info/?l=linux-fsdevel&m=149520244919284&w=2
XFS doesn't flush the journal on `syncfs()`. GRUB doesn't know how to follow the
XFS journal, so if the filesystem is in a dirty state (possible with xfs
`/boot`, extremely likely with `/`, if the journaled data includes content for
`/boot`, the system may be unbootable if a system crash occurs.
Fix this by doing a `FIFREEZE`+`FITHAW` cycle. Now, most people
probably would have replaced the `syncfs()` invocation with those two
ioctls. But this would have become (I believe) the *only* place in
libostree where we weren't safe against interruption. The failure
mode would be ugly; nothing else would be able to write to the filesystem
until manual intervention.
The real fix here I think is to land an atomic `FIFREEZETHAW` ioctl
in the kernel. I might try a patch.
In the meantime though, let's jump through some hoops and set up
a "watchdog" child process that acts as a fallback unfreezer.
Closes: https://github.com/ostreedev/ostree/issues/876
Closes : #1049
Approved by: jlebon
2017-08-08 16:09:04 +00:00
..
2017-03-30 19:19:54 +00:00
2015-03-19 12:43:04 -04:00
2016-03-03 08:50:19 -05:00
2017-07-18 18:58:06 +00:00
2017-06-26 15:56:07 +00:00
2017-08-08 16:09:04 +00:00
2017-03-24 22:16:43 +00:00
2017-07-19 15:01:19 +00:00
2016-04-04 14:19:35 +00:00
2017-03-30 19:19:54 +00:00
2017-01-19 13:54:59 +00:00
2016-07-28 10:10:17 +00:00
2015-05-28 14:21:30 -04:00
2017-05-12 21:02:16 +00:00
2016-06-07 15:58:37 +00:00
2017-08-02 17:55:50 +00:00
2017-06-29 15:34:57 +00:00
2016-04-04 14:19:35 +00:00
2016-06-09 21:10:35 +00:00
2016-02-26 08:19:01 -05:00
2016-02-26 08:19:01 -05:00
2017-08-07 16:10:08 +00:00
2017-05-11 18:17:26 +00:00
2016-03-03 08:50:19 -05:00
2016-11-22 02:32:33 +00:00
2016-03-03 08:50:19 -05:00
2016-03-03 08:50:19 -05:00
2017-08-08 16:09:04 +00:00
2016-11-01 18:00:37 +00:00
2016-03-03 08:50:19 -05:00
2017-08-08 16:09:04 +00:00
2017-08-08 16:09:04 +00:00
2016-11-01 18:00:37 +00:00
2016-03-31 14:22:06 +00:00
2016-03-03 08:50:19 -05:00
2017-02-27 20:57:23 +00:00
2017-05-22 20:18:07 +00:00
2016-03-03 08:50:19 -05:00
2016-03-03 08:50:19 -05:00
2017-03-24 22:16:43 +00:00
2016-06-27 20:20:21 +00:00
2017-06-20 21:52:22 +00:00
2017-04-25 13:52:35 +00:00
2017-06-13 12:02:12 +00:00
2017-06-30 21:23:48 +00:00
2016-03-03 08:50:19 -05:00
2017-06-26 15:56:07 +00:00
2017-08-02 15:34:16 +00:00
2016-09-09 19:06:11 +00:00
2017-03-24 22:16:43 +00:00
2017-07-21 15:45:27 +00:00
2017-05-09 14:05:46 +00:00
2017-07-19 14:45:57 +00:00
2017-03-24 22:16:43 +00:00
2016-04-19 12:28:06 +00:00
2017-08-08 13:59:58 +00:00
2017-06-26 15:56:07 +00:00
2016-08-31 16:52:12 +00:00
2017-05-05 15:10:51 +00:00
2016-01-27 11:44:10 -05:00
2017-06-26 15:56:07 +00:00
2016-12-06 14:50:08 +00:00
2017-08-02 16:55:38 +00:00
2017-02-22 18:57:18 +00:00
2017-03-24 22:16:43 +00:00
2017-06-27 19:19:32 +00:00
2017-08-02 15:34:16 +00:00
2017-06-26 15:56:07 +00:00
2017-06-26 15:56:07 +00:00
2017-08-02 15:34:16 +00:00
2017-03-24 22:16:43 +00:00
2016-12-05 15:20:56 +00:00
2016-12-05 15:20:56 +00:00
2016-12-05 15:20:56 +00:00
2017-03-24 22:16:43 +00:00
2017-06-26 15:56:07 +00:00
2017-03-24 22:16:43 +00:00
2017-07-10 14:18:18 +00:00
2017-07-10 14:18:18 +00:00
2017-06-29 16:00:13 +00:00
2017-07-06 19:08:14 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-06-30 19:37:23 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-03-24 22:16:43 +00:00
2017-06-26 15:56:07 +00:00
2017-08-02 17:33:10 +00:00
2017-06-26 15:56:07 +00:00
2016-03-03 08:50:19 -05:00
2017-03-24 22:16:43 +00:00
2017-04-04 15:54:46 +00:00
2017-05-18 01:14:15 +00:00
2017-06-26 15:56:07 +00:00
2017-06-26 15:56:07 +00:00
2017-06-26 15:56:07 +00:00
2016-01-27 11:44:10 -05:00
2017-03-06 20:58:04 +00:00
2017-03-30 19:19:54 +00:00
2017-05-11 18:17:26 +00:00
2017-07-21 15:45:27 +00:00
2017-06-26 15:56:07 +00:00
2017-06-27 19:19:32 +00:00
2017-06-07 16:55:35 +00:00
2017-06-27 21:45:34 +00:00
2017-07-26 21:04:08 +00:00
2016-03-03 21:56:23 -05:00
2017-07-21 15:45:27 +00:00
2016-12-05 15:20:56 +00:00
2017-03-24 22:16:43 +00:00