diff options
Diffstat (limited to 'sysdeps/posix')
-rw-r--r-- | sysdeps/posix/fpathconf.c | 20 | ||||
-rw-r--r-- | sysdeps/posix/pathconf.c | 20 |
2 files changed, 18 insertions, 22 deletions
diff --git a/sysdeps/posix/fpathconf.c b/sysdeps/posix/fpathconf.c index 1a2c3742e9..31e1d4bbfa 100644 --- a/sysdeps/posix/fpathconf.c +++ b/sysdeps/posix/fpathconf.c @@ -45,7 +45,6 @@ __fpathconf (fd, name) #ifdef LINK_MAX return LINK_MAX; #else - __set_errno (ENOSYS); return -1; #endif @@ -53,7 +52,6 @@ __fpathconf (fd, name) #ifdef MAX_CANON return MAX_CANON; #else - __set_errno (ENOSYS); return -1; #endif @@ -61,7 +59,6 @@ __fpathconf (fd, name) #ifdef MAX_INPUT return MAX_INPUT; #else - __set_errno (ENOSYS); return -1; #endif @@ -69,14 +66,21 @@ __fpathconf (fd, name) #ifdef NAME_MAX { struct statfs buf; + int save_errno = errno; if (__fstatfs (fd, &buf) < 0) - return errno == ENOSYS ? NAME_MAX : -1; + { + if (errno == ENOSYS) + { + errno = save_errno; + return NAME_MAX; + } + return -1; + } else return buf.f_namelen; } #else - __set_errno (ENOSYS); return -1; #endif @@ -84,7 +88,6 @@ __fpathconf (fd, name) #ifdef PATH_MAX return PATH_MAX; #else - __set_errno (ENOSYS); return -1; #endif @@ -92,7 +95,6 @@ __fpathconf (fd, name) #ifdef PIPE_BUF return PIPE_BUF; #else - __set_errno (ENOSYS); return -1; #endif @@ -142,13 +144,9 @@ __fpathconf (fd, name) #ifdef SOCK_MAXBUF return SOCK_MAXBUF; #else - __set_errno (ENOSYS); return -1; #endif } - - __set_errno (ENOSYS); - return -1; } weak_alias (__fpathconf, fpathconf) diff --git a/sysdeps/posix/pathconf.c b/sysdeps/posix/pathconf.c index c06906679d..fe2ac8d905 100644 --- a/sysdeps/posix/pathconf.c +++ b/sysdeps/posix/pathconf.c @@ -43,7 +43,6 @@ __pathconf (const char *path, int name) #ifdef LINK_MAX return LINK_MAX; #else - __set_errno (ENOSYS); return -1; #endif @@ -51,7 +50,6 @@ __pathconf (const char *path, int name) #ifdef MAX_CANON return MAX_CANON; #else - __set_errno (ENOSYS); return -1; #endif @@ -59,7 +57,6 @@ __pathconf (const char *path, int name) #ifdef MAX_INPUT return MAX_INPUT; #else - __set_errno (ENOSYS); return -1; #endif @@ -67,14 +64,21 @@ __pathconf (const char *path, int name) #ifdef NAME_MAX { struct statfs buf; + int save_errno = errno; if (__statfs (path, &buf) < 0) - return errno == ENOSYS ? NAME_MAX : -1; + { + if (errno == ENOSYS) + { + errno = save_errno; + return NAME_MAX; + } + return -1; + } else return buf.f_namelen; } #else - __set_errno (ENOSYS); return -1; #endif @@ -82,7 +86,6 @@ __pathconf (const char *path, int name) #ifdef PATH_MAX return PATH_MAX; #else - __set_errno (ENOSYS); return -1; #endif @@ -90,7 +93,6 @@ __pathconf (const char *path, int name) #ifdef PIPE_BUF return PIPE_BUF; #else - __set_errno (ENOSYS); return -1; #endif @@ -140,13 +142,9 @@ __pathconf (const char *path, int name) #ifdef SOCK_MAXBUF return SOCK_MAXBUF; #else - __set_errno (ENOSYS); return -1; #endif } - - __set_errno (ENOSYS); - return -1; } weak_alias (__pathconf, pathconf) |