On Sat, Dec 21, 2013 at 05:49:19PM +0100, Tom Gundersen wrote: > On Sat, Dec 21, 2013 at 5:42 PM, Kay Sievers <[email protected]> wrote: > > On Sat, Dec 21, 2013 at 5:33 PM, Dave Reisner <[email protected]> wrote: > >> On Sat, Dec 21, 2013 at 12:49:07PM +0100, Tom Gundersen wrote: > >>> On Sat, Dec 21, 2013 at 11:22 AM, Thomas Bächler <[email protected]> > >>> wrote: > >>> > This fixes a regression introduced in 64e70e4 where the mount fails > >>> > when fstab is misconfigured with fs_passno > 0 on a virtual file > >>> > system like tmpfs. > >>> > --- > >>> > src/fstab-generator/fstab-generator.c | 8 +++++--- > >>> > 1 file changed, 5 insertions(+), 3 deletions(-) > >>> > > >>> > diff --git a/src/fstab-generator/fstab-generator.c > >>> > b/src/fstab-generator/fstab-generator.c > >>> > index 1227f08..709a1c3 100644 > >>> > --- a/src/fstab-generator/fstab-generator.c > >>> > +++ b/src/fstab-generator/fstab-generator.c > >>> > @@ -255,9 +255,11 @@ static int add_mount( > >>> > "Before=%s\n", > >>> > post); > >>> > > >>> > - r = add_fsck(f, what, where, type, passno); > >>> > - if (r < 0) > >>> > - return r; > >>> > + if(is_device_path(what)) { > >>> > + r = add_fsck(f, what, where, type, passno); > >>> > + if (r < 0) > >>> > + return r; > >>> > + } Hi, patch is applied, but I moved the chck into add_fsck, because the check for passno is there. And I added a warning, since this is a configuration error that should be corrected.
Also, I don't see how the mount could fail for tmpfs: tmpfs must always be specified as the type, and if the type is specified, add_fsck looks for /sbin/fsck.<type> and only emits a warning. But in case of a non-device fs which can be given with "auto" as the type, e.g. nfs, there indeed was a problem. > >>> How does "fsck -A" deal with these cases? > >> > >> tmpfs falls into the category of pseudofs, which fsck -A will > >> intentionally ignore, regardless of the passno. > >> > >>> Also, how does your patch deal with LABEL= and UUDI=? > >> > >> At this point, "what" has been filtered through fstab_node_to_udev_node, > >> so LABEL=foo will be /dev/disk/by-label/foo. > > > > Generally, not sure if that it always correct here, kernel "nodev" > > superblocks have a dev_t with major == 0 and are very simple to detect > > that way. There's no superblock yet at this point, because the device might not be there yet. But I think that the is_device_path test is OK. > Hm, so why doesn't fsck just deal gracefully with this? We call /sbin/fsck.<type> directly, which in this case doesn't exist. Also systemd waits for the device to appear before calling fsck. Zbyszek _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
