shared/dropin: ignore ENAMETOOLONG when checking drop-in directories (#7525)

This usually happens for device units with long
path in /sys. But users can't even create such drop-ins,
so lets just ignore the error here.

Fixes #6867
This commit is contained in:
Lukáš Nykrýn 2017-12-01 20:34:49 +01:00 committed by Zbigniew Jędrzejewski-Szmek
parent 1a2d4d7084
commit dfeec916b5

View file

@ -128,7 +128,11 @@ static int unit_file_find_dir(
assert(path);
r = chase_symlinks(path, original_root, 0, &chased);
if (r == -ENOENT) /* Ignore -ENOENT, after all most units won't have a drop-in dir */
/* Ignore -ENOENT, after all most units won't have a drop-in dir.
* Also ignore -ENAMETOOLONG, users are not even able to create
* the drop-in dir in such case. This mostly happens for device units with long /sys path.
* */
if (IN_SET(r, -ENOENT, -ENAMETOOLONG))
return 0;
if (r < 0)
return log_full_errno(LOG_WARNING, r, "Failed to canonicalize path %s: %m", path);