diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-12-11 21:02:21 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2025-12-11 21:02:21 +0000 |
| commit | 9053318610be49236855f54f932a5a99a2b691bb (patch) | |
| tree | b1377dadc73cc15af6d2592aca3be2e0300ed142 | |
| parent | a163eb60bbcedcf0c668064c3bfa1ac9cdee3a3c (diff) | |
| download | s6-linux-utils-9053318610be49236855f54f932a5a99a2b691bb.tar.gz | |
fstab2s6rc: warn on UUID=/LABEL= when -U
| -rw-r--r-- | src/s6-linux-utils/fstab2s6rc.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/s6-linux-utils/fstab2s6rc.c b/src/s6-linux-utils/fstab2s6rc.c index 14d817a..bd115cd 100644 --- a/src/s6-linux-utils/fstab2s6rc.c +++ b/src/s6-linux-utils/fstab2s6rc.c @@ -76,19 +76,27 @@ struct swapent_s uint32_t flags ; } ; -static int process_device (stralloc *sa, char const *dev, uint32_t *flags) +static int process_device (stralloc *sa, char const *dev, uint32_t *flags, uint64_t options) { if (!strncmp(dev, "UUID=", 5)) { - if (!string_quotes(sa, dev + 5) || !stralloc_0(sa)) dienomem() ; - *flags |= FSTAB_FLAG_ISUUID ; + if (options & FSTAB_GOLB_UUID) + { + dev += 5 ; + *flags |= FSTAB_FLAG_ISUUID ; + } + else strerr_warnw3x("weird device found: ", dev, " - you may want to run fstab2s6rc -u instead") ; } else if (!strncmp(dev, "LABEL=", 6)) { - if (!string_quotes(sa, dev + 6) || !stralloc_0(sa)) dienomem() ; - *flags |= FSTAB_FLAG_ISLABEL ; + if (options & FSTAB_GOLB_UUID) + { + dev += 6 ; + *flags |= FSTAB_FLAG_ISLABEL ; + } + else strerr_warnw3x("weird device found: ", dev, " - you may want to run fstab2s6rc -u instead") ; } - else if (!string_quotes(sa, dev) || !stralloc_0(sa)) dienomem() ; + if (!string_quotes(sa, dev) || !stralloc_0(sa)) dienomem() ; return 0 ; } @@ -189,13 +197,8 @@ static inline int add_fs (struct mntent *mnt, genalloc *root, stralloc *sa, uint return 1 ; } f.device = sa->len ; - if (options & FSTAB_GOLB_UUID) - { - e = process_device(sa, mnt->mnt_fsname, &f.flags) ; - if (e) return e ; - } - else - if (!string_quotes(sa, mnt->mnt_fsname) || !stralloc_0(sa)) dienomem() ; + e = process_device(sa, mnt->mnt_fsname, &f.flags, options) ; + if (e) return e ; f.mountpoint = sa->len ; if (!stralloc_cats(sa, mnt->mnt_dir + 1) || !stralloc_0(sa)) dienomem() ; f.qmountpoint = sa->len ; @@ -221,13 +224,8 @@ static inline int add_swap (struct mntent *mnt, genalloc *ga, stralloc *sa, uint swapent f = { .flags = 0 } ; int e ; f.device = sa->len ; - if (options & FSTAB_GOLB_UUID) - { - e = process_device(sa, mnt->mnt_fsname, &f.flags) ; - if (e) return e ; - } - else - if (!string_quotes(sa, mnt->mnt_fsname) || !stralloc_0(sa)) dienomem() ; + e = process_device(sa, mnt->mnt_fsname, &f.flags, options) ; + if (e) return e ; e = process_opts(sa, mnt->mnt_opts, &f.flags, &f.opts) ; if (e) return e ; f.servicename = sa->len ; |
