(__pathconf): For _PC_ASYNC_IO test whether named file is a regular file or a block device.

This commit is contained in:
Ulrich Drepper 2001-04-23 09:04:59 +00:00
parent 77e4dc62b0
commit 92c2e46b96

View file

@ -21,6 +21,7 @@
#include <unistd.h>
#include <limits.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/statfs.h>
#include <sys/statvfs.h>
@ -138,7 +139,16 @@ __pathconf (const char *path, int name)
case _PC_ASYNC_IO:
#ifdef _POSIX_ASYNC_IO
return _POSIX_ASYNC_IO;
{
/* AIO is only allowed on regular files and block devices. */
struct stat64 st;
if (__xstat64 (_STAT_VER, path, &st) < 0
|| (! S_ISREG (st.st_mode) && ! S_ISBLK (st.st_mode)))
return -1;
else
return 1;
}
#else
return -1;
#endif