[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[COREUTILS 2/2] ls: Don't treat lack of acl support as an error
From: |
Andreas Gruenbacher |
Subject: |
[COREUTILS 2/2] ls: Don't treat lack of acl support as an error |
Date: |
Sun, 12 Apr 2015 16:37:27 +0200 |
* src/ls.c (file_has_acl_cache): When a file system doesn't support
acls, fail with errno set to ENOTSUP.
(gobble_file): Don't treat lack of acl support as an error.
---
src/ls.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/src/ls.c b/src/ls.c
index b308dd3..884e042 100644
--- a/src/ls.c
+++ b/src/ls.c
@@ -2866,7 +2866,7 @@ getfilecon_cache (char const *file, struct fileinfo *f,
bool deref)
/* Cache file_has_acl failure, when it's trivial to do.
Like file_has_acl, but when F's st_dev says it's on a file
- system lacking ACL support, return 0 with ENOTSUP immediately. */
+ system lacking ACL support, fail with ENOTSUP immediately. */
static int
file_has_acl_cache (char const *file, struct fileinfo *f)
{
@@ -2877,14 +2877,11 @@ file_has_acl_cache (char const *file, struct fileinfo
*f)
if (f->stat.st_dev == unsupported_device)
{
errno = ENOTSUP;
- return 0;
+ return -1;
}
- /* Zero errno so that we can distinguish between two 0-returning cases:
- "has-ACL-support, but only a default ACL" and "no ACL support". */
- errno = 0;
int n = file_has_acl (file, &f->stat);
- if (n <= 0 && errno_unsupported (errno))
+ if (n < 0 && errno_unsupported (errno))
unsupported_device = f->stat.st_dev;
return n;
}
@@ -3076,7 +3073,7 @@ gobble_file (char const *name, enum filetype type, ino_t
inode,
if (err == 0 && format == long_format)
{
int n = file_has_acl_cache (absolute_name, f);
- err = (n < 0);
+ err = (n < 0 && ! errno_unsupported (errno));
have_acl = (0 < n);
}
--
2.1.0