All other failures are handled gracefully. Directory cycles can e.g. happen on BTRFS filesystems with subvolumes. Skip them and continue instead of exiting Signed-off-by: Johannes Segitz --- libselinux/src/selinux_restorecon.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libselinux/src/selinux_restorecon.c b/libselinux/src/selinux_restorecon.c index 7ef2d45d..33d315a2 100644 --- a/libselinux/src/selinux_restorecon.c +++ b/libselinux/src/selinux_restorecon.c @@ -883,13 +883,12 @@ loop_body: switch (ftsent->fts_info) { case FTS_DC: - selinux_log(SELINUX_ERROR, + selinux_log(SELINUX_WARNING, "Directory cycle on %s.\n", ftsent->fts_path); errno = ELOOP; - state->error = -1; - state->abort = true; - goto finish; + fts_set(fts, ftsent, FTS_SKIP); + continue; case FTS_DP: continue; case FTS_DNR: -- 2.55.0