summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nfs/ChangeLog12
-rw-r--r--nfs/mount.c1
-rw-r--r--nfs/nfs.h3
-rw-r--r--nfs/ops.c12
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>
diff --git a/nfs/nfs.h b/nfs/nfs.h
index 758ba9e9..45a20022 100644
--- a/nfs/nfs.h
+++ b/nfs/nfs.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>
diff --git a/nfs/ops.c b/nfs/ops.c
index 5251d423..4e4f2930 100644
--- a/nfs/ops.c
+++ b/nfs/ops.c
@@ -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),