tmpfiles: silently ignore any path that passes through autofs (#6506)
If a path passes though an autofs filesystem, then accessing the path might trigger and automount. As systemd-tmpfiles is run before the network is up, and as automounts are often used for networked filesystems, this can cause a deadlock. So chase_symlinks is enhance to accept a new flag which tells it to check for autofs, and return -EREMOTE if autofs is found. tmpfiles is changed to check just before acting on a path so that it can avoid autofs even if a symlink was created earlier by tmpfiles that would send this path through an autofs. This fixes a deadlock that happens when /home is listed in /etc/fstab as x-systemd.automount for an NFS directory.
This commit is contained in:
committed by
Lennart Poettering
parent
ee905de0d6
commit
655f2da079
@@ -1664,6 +1664,9 @@ static int process_item(Item *i) {
|
||||
}
|
||||
}
|
||||
|
||||
if (chase_symlinks(i->path, NULL, CHASE_NO_AUTOFS, NULL) == -EREMOTE)
|
||||
return t;
|
||||
|
||||
r = arg_create ? create_item(i) : 0;
|
||||
q = arg_remove ? remove_item(i) : 0;
|
||||
p = arg_clean ? clean_item(i) : 0;
|
||||
|
||||
Reference in New Issue
Block a user