X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fautomount.c;h=730b1572c2ddfff4102e6b9c0e7ee61d0b32de2c;hp=32680461c24612d61ebe15c71a0d6a2169050d66;hb=ca9a0317a45f8a4ab702e9b8ce4542d8452a47ad;hpb=dfca381db341205b7a68f40ef2b7550ac6972cab;ds=sidebyside diff --git a/src/automount.c b/src/automount.c index 32680461c..730b1572c 100644 --- a/src/automount.c +++ b/src/automount.c @@ -276,8 +276,18 @@ static int open_dev_autofs(Manager *m) { return m->dev_autofs_fd; if ((m->dev_autofs_fd = open("/dev/autofs", O_CLOEXEC|O_RDONLY)) < 0) { - log_error("Failed to open /dev/autofs: %s", strerror(errno)); - return -errno; + + if (errno == ENOENT || errno == ENODEV) { + log_error("Your kernel apparently lacks built-in autofs4 support. Please fix that. " + "We'll now try to work around this by calling 'modprobe autofs4'..."); + system("/sbin/modprobe -q -- autofs4"); + m->dev_autofs_fd = open("/dev/autofs", O_CLOEXEC|O_RDONLY); + } + + if (m->dev_autofs_fd < 0) { + log_error("Failed to open /dev/autofs: %s", strerror(errno)); + return -errno; + } } init_autofs_dev_ioctl(¶m);