aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rw-r--r--bin/ls/print.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/bin/ls/print.c b/bin/ls/print.c
index 2eb636e17080..3b80d93aefec 100644
--- a/bin/ls/print.c
+++ b/bin/ls/print.c
@@ -623,15 +623,19 @@ aclmode(char *buf, const FTSENT *p)
S_ISWHT(p->fts_statp->st_mode))
return;
+ if (previous_dev == p->fts_statp->st_dev && supports_acls == 0)
+ return;
+
+ if (p->fts_level == FTS_ROOTLEVEL)
+ snprintf(name, sizeof(name), "%s", p->fts_name);
+ else
+ snprintf(name, sizeof(name), "%s/%s",
+ p->fts_parent->fts_accpath, p->fts_name);
+
if (previous_dev != p->fts_statp->st_dev) {
previous_dev = p->fts_statp->st_dev;
supports_acls = 0;
- if (p->fts_level == FTS_ROOTLEVEL)
- snprintf(name, sizeof(name), "%s", p->fts_name);
- else
- snprintf(name, sizeof(name), "%s/%s",
- p->fts_parent->fts_accpath, p->fts_name);
ret = lpathconf(name, _PC_ACL_NFS4);
if (ret > 0) {
type = ACL_TYPE_NFS4;