When copying over (FreeBSD client) the multipatch from a Linux (2.2.11)
box before the patch I got this garbage in the file, -current as of 4am
this morning. gzip'ed version has bad crc's. Went the other way and it
worked fine (Linux client), this is v2 via amd.
/etc/amd.conf:
**************
/defaults fs:=${autodir}/${rhost}/root/${rfs};opts:=nosuid,nodev
* rhost:=${key};type:=host;rfs:=/
Update: after reboot with new kernel I get the same thing. It's
reproducible. It doesn't happen between linux boxen and doesn't happen
on loopback mounts.
-Rob
Index: nfs/nfs_serv.c
===================================================================
RCS file: /home/ncvs/src/sys/nfs/nfs_serv.c,v
retrieving revision 1.83
diff -u -r1.83 nfs_serv.c
--- nfs_serv.c 1999/07/29 21:42:57 1.83
+++ nfs_serv.c 1999/08/21 07:17:06
@@ -96,6 +96,7 @@
#include <sys/stat.h>
#include <sys/kernel.h>
#include <sys/sysctl.h>
+#include <sys/buf.h>
#include <vm/vm.h>
#include <vm/vm_extern.h>
@@ -115,6 +116,8 @@
#define nfsdbprintf(info)
#endif
+#define MAX_COMMIT_COUNT (1024 * 1024)
+
nfstype nfsv3_type[9] = { NFNON, NFREG, NFDIR, NFBLK, NFCHR, NFLNK,
NFSOCK,
NFFIFO, NFNON };
#ifndef NFS_NOSERVER
@@ -133,6 +136,10 @@
static int nfs_async;
SYSCTL_INT(_vfs_nfs, OID_AUTO, async, CTLFLAG_RW, &nfs_async, 0, "");
+static int nfs_commit_blks;
+static int nfs_commit_miss;
+SYSCTL_INT(_vfs_nfs, OID_AUTO, commit_blks, CTLFLAG_RW,
&nfs_commit_blks, 0, ""
);
+SYSCTL_INT(_vfs_nfs, OID_AUTO, commit_miss, CTLFLAG_RW,
&nfs_commit_miss, 0, ""
);
static int nfsrv_access __P((struct vnode *,int,struct ucred *,int,
struct proc *, int));
@@ -3624,11 +3631,73 @@
goto nfsmout;
}
for_ret = VOP_GETATTR(vp, &bfor, cred, procp);
- if (vp->v_object &&
- (vp->v_object->flags & OBJ_MIGHTBEDIRTY)) {
+
+ if (cnt > MAX_COMMIT_COUNT) {
+ /*
+ * Give up and do the whole thing
+ */
+ if (vp->v_object &&
+ (vp->v_object->flags & OBJ_MIGHTBEDIRTY)) {
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@requested range. Note: we are assuming that
Matthew Dillon wrote:
>
> Ok, I have put up the current patch set -- for patching against CURRENT
> only - on my web site.
>
> http://www.backplane.com/FreeBSD4/
>
> They contain a bit more then the NFS stuff, but it's all related to
> performance. It would take me too long to try to separate them out
> (this is what happens when things back-up, sorry!).
>
> The patches have been tested only somewhat and the one that fixes
> nfssrv_commit() is not 100% complete - it doesn't sync-out the file
> metadata yet, only the specific data blocks being requested by the
> commit rpc.
>
> -Matt
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message