gpt-auto-generator: check fstab for /boot entries
We need to prevent the creation of the gpt automount unit, which will not get overridden by the fstab mount unit. https://github.com/systemd/systemd/issues/1378
This commit is contained in:
parent
a19c7a4a4b
commit
0b6b6787e3
|
@ -38,6 +38,7 @@
|
|||
#include "gpt.h"
|
||||
#include "fileio.h"
|
||||
#include "efivars.h"
|
||||
#include "fstab-util.h"
|
||||
#include "blkid-util.h"
|
||||
#include "btrfs-util.h"
|
||||
|
||||
|
@ -465,6 +466,12 @@ static int add_boot(const char *what) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* We create an .automount which is not overridden by the .mount from the fstab generator. */
|
||||
if (fstab_is_mount_point("/boot")) {
|
||||
log_debug("/boot specified in fstab, ignoring.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (path_is_busy("/boot")) {
|
||||
log_debug("/boot already populated, ignoring.");
|
||||
return 0;
|
||||
|
|
|
@ -20,9 +20,26 @@
|
|||
***/
|
||||
|
||||
#include "fstab-util.h"
|
||||
#include "path-util.h"
|
||||
#include "strv.h"
|
||||
#include "util.h"
|
||||
|
||||
bool fstab_is_mount_point(const char *mount) {
|
||||
_cleanup_free_ char *device = NULL;
|
||||
_cleanup_endmntent_ FILE *f = NULL;
|
||||
struct mntent *m;
|
||||
|
||||
f = setmntent("/etc/fstab", "r");
|
||||
if (!f)
|
||||
return false;
|
||||
|
||||
while ((m = getmntent(f)))
|
||||
if (path_equal(m->mnt_dir, mount))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int fstab_filter_options(const char *opts, const char *names,
|
||||
const char **namefound, char **value, char **filtered) {
|
||||
const char *name, *n = NULL, *x;
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <stddef.h>
|
||||
#include "macro.h"
|
||||
|
||||
bool fstab_is_mount_point(const char *mount);
|
||||
int fstab_filter_options(const char *opts, const char *names,
|
||||
const char **namefound, char **value, char **filtered);
|
||||
|
||||
|
|
Loading…
Reference in a new issue