chiark / gitweb /
automount: try to modprobe autofs4 if its lacking
authorLennart Poettering <lennart@poettering.net>
Wed, 19 May 2010 20:30:28 +0000 (22:30 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 19 May 2010 20:30:28 +0000 (22:30 +0200)
src/automount.c

index 32680461c24612d61ebe15c71a0d6a2169050d66..730b1572c2ddfff4102e6b9c0e7ee61d0b32de2c 100644 (file)
@@ -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(&param);