diff options
-rw-r--r-- | nfs/ChangeLog | 12 | ||||
-rw-r--r-- | nfs/mount.c | 1 | ||||
-rw-r--r-- | nfs/nfs.h | 3 | ||||
-rw-r--r-- | nfs/ops.c | 12 |
4 files changed, 26 insertions, 2 deletions
diff --git a/nfs/ChangeLog b/nfs/ChangeLog index 6bc6fad2..dcb10cc8 100644 --- a/nfs/ChangeLog +++ b/nfs/ChangeLog @@ -1,9 +1,21 @@ +Thu Oct 3 12:04:36 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> + + * ops.c (netfs_attempt_write): If we get EINTR after having + already written something, return a short count. + + * ops.c (netfs_attempt_create_file): If verify_nonexistent returns + an error, bother to properly unlock NP before returning. + Mon Sep 30 15:45:31 1996 Miles Bader <miles@gnu.ai.mit.edu> * main.c (OPT_RSIZE): Changed to 'R'. (OPT_WSIZE): Changed to 'W'. (doc): Add general description. +Thu Sep 26 14:03:07 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> + + * nfs.h (enum_t): New decl. + Wed Sep 18 13:03:22 1996 Miles Bader <miles@gnu.ai.mit.edu> * main.c (netfs_append_args): Renamed from netfs_get_options. diff --git a/nfs/mount.c b/nfs/mount.c index ce1329e2..b4115324 100644 --- a/nfs/mount.c +++ b/nfs/mount.c @@ -20,6 +20,7 @@ #include "nfs.h" +#include <rpc/types.h> #include <rpc/pmap_prot.h> #include <errno.h> #include <sys/socket.h> @@ -16,8 +16,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* Needed for the rpcsvc include files to work. */ +/* Needed for the rpc include files to work. */ typedef int bool_t; /* Ick. */ +typedef int enum_t; /* Ick. */ #include <sys/stat.h> #include <sys/types.h> @@ -505,6 +505,13 @@ netfs_attempt_write (struct netcred *cred, struct node *np, } } + if (err == EINTR && amt != *len) + { + *len -= amt; + free (rpcbuf); + return 0; + } + if (err) { *len = 0; @@ -945,7 +952,10 @@ netfs_attempt_create_file (struct netcred *cred, struct node *np, { err = verify_nonexistent (cred, np, name); if (err) - return err; + { + mutex_unlock (&np->lock); + return err; + } } p = nfs_initialize_rpc (NFSPROC_CREATE (protocol_version), |