No real need to restore errno.
authordrepper <drepper>
Sat, 20 Jul 2002 01:09:37 +0000 (01:09 +0000)
committerdrepper <drepper>
Sat, 20 Jul 2002 01:09:37 +0000 (01:09 +0000)
sysdeps/unix/sysv/linux/getcwd.c
sysdeps/unix/sysv/linux/grantpt.c
sysdeps/unix/sysv/linux/internal_statvfs.c
sysdeps/unix/sysv/linux/msgctl.c
sysdeps/unix/sysv/linux/readv.c
sysdeps/unix/sysv/linux/writev.c

index fd8c634..7c27426 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine current working directory.  Linux version.
-   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -64,7 +64,6 @@ static int have_new_dcache = 1;
 char *
 __getcwd (char *buf, size_t size)
 {
-  int save_errno;
   char *path;
   int n;
   char *result;
@@ -93,8 +92,6 @@ __getcwd (char *buf, size_t size)
        return NULL;
     }
 
-  save_errno = errno;
-
 #if defined __NR_getcwd || __LINUX_GETCWD_SYSCALL > 0
   if (!no_syscall_getcwd)
     {
@@ -137,8 +134,6 @@ __getcwd (char *buf, size_t size)
            free (path);
          return NULL;
        }
-
-      __set_errno (save_errno);
 # endif
     }
 #endif
@@ -179,10 +174,6 @@ __getcwd (char *buf, size_t size)
     have_new_dcache = 0;
 #endif
 
-  /* Something went wrong.  Restore the error number and use the generic
-     version.  */
-  __set_errno (save_errno);
-
   /* Don't put restrictions on the length of the path unless the user does.  */
   if (size == 0)
     {
index 1680817..b894b8b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -56,12 +56,13 @@ grantpt (int fd)
       if (__libc_fcntl (fd, F_GETFD) == -1 && errno == EBADF)
        return -1;
 
-      __set_errno (save_errno);
-
        /* If the filedescriptor is no TTY, grantpt has to set errno
           to EINVAL.  */
-       if (errno == ENOTTY)
+       if (save_errno == ENOTTY)
          __set_errno (EINVAL);
+       else
+        __set_errno (save_errno);
+
        return -1;
     }
 
index f78642b..ed9dbaa 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -53,7 +53,6 @@
   buf->f_flag = 0;
   if (STAT (&st) >= 0)
     {
-      int save_errno = errno;
       struct mntent mntbuf;
       FILE *mtab;
 
          /* Close the file.  */
          __endmntent (mtab);
        }
-
-      __set_errno (save_errno);
     }
index 6a1be82..24c87d3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
 
@@ -80,7 +80,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
   }
 
   {
-    int save_errno = errno, result;
+    int result;
     struct __old_msqid_ds old;
 
     /* Unfortunately there is no way how to find out for sure whether
@@ -90,7 +90,6 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
     if (result != -1 || errno != EINVAL)
       return result;
 
-    __set_errno(save_errno);
     if (cmd == IPC_SET)
       {
        old.msg_perm.uid = buf->msg_perm.uid;
index 7a8fc54..601afc0 100644 (file)
@@ -1,5 +1,5 @@
 /* readv supports all Linux kernels >= 2.0.
-   Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -45,7 +45,6 @@ __readv (fd, vector, count)
      const struct iovec *vector;
      int count;
 {
-  int errno_saved = errno;
   ssize_t bytes_read;
 
   bytes_read = INLINE_SYSCALL (readv, 3, fd, CHECK_N (vector, count), count);
@@ -53,9 +52,6 @@ __readv (fd, vector, count)
   if (bytes_read >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
     return bytes_read;
 
-  /* Restore the old error value as if nothing happened.  */
-  __set_errno (errno_saved);
-
   return __atomic_readv_replacement (fd, vector, count);
 }
 weak_alias (__readv, readv)
index f006454..729fd9a 100644 (file)
@@ -1,5 +1,5 @@
 /* writev supports all Linux kernels >= 2.0.
-   Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -45,7 +45,6 @@ __writev (fd, vector, count)
      const struct iovec *vector;
      int count;
 {
-  int errno_saved = errno;
   ssize_t bytes_written;
 
   bytes_written = INLINE_SYSCALL (writev, 3, fd, CHECK_N (vector, count), count);
@@ -53,9 +52,6 @@ __writev (fd, vector, count)
   if (bytes_written >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
     return bytes_written;
 
-  /* Restore the old error value as if nothing happened.  */
-  __set_errno (errno_saved);
-
   return __atomic_writev_replacement (fd, vector, count);
 }
 weak_alias (__writev, writev)