diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/linkat.c | 14 |
2 files changed, 13 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog index d7817a0657..dfdfbb7586 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-02-27 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/linkat.c (linkat): Allow flags to be set + when syscall is used. + * io/fcntl.h (AT_SYMLINK_FOLLOW): Define. + 2006-02-26 Roland McGrath <roland@redhat.com> * sysdeps/unix/common/Makefile: File removed. diff --git a/sysdeps/unix/sysv/linux/linkat.c b/sysdeps/unix/sysv/linux/linkat.c index e1faf9db56..cfd0e18223 100644 --- a/sysdeps/unix/sysv/linux/linkat.c +++ b/sysdeps/unix/sysv/linux/linkat.c @@ -37,13 +37,6 @@ linkat (fromfd, from, tofd, to, flags) { int result; - // XXX Will be removed once the kernel support is in place. - if (flags != 0) - { - __set_errno (EINVAL); - return -1; - } - #ifdef __NR_linkat # ifndef __ASSUME_ATFCTS if (__have_atfcts >= 0) @@ -60,6 +53,13 @@ linkat (fromfd, from, tofd, to, flags) #endif #ifndef __ASSUME_ATFCTS + /* Without kernel support we cannot handle AT_SYMLINK_FOLLOW. */ + if (flags != 0) + { + __set_errno (EINVAL); + return -1; + } + static const char procfd[] = "/proc/self/fd/%d/%s"; char *buffrom = NULL; |