Skip to contentSkip to conversation

Please pull NFS client fixes for 2.6.26...

GIT Trond Myklebust 1 participant 1 message Jun 23, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi Linus,

Please pull from the "hotfixes" branch of the repository at

git pull git://git.linux-nfs.org/projects/trondmy/nfs-2.6.git hotfixes

This will update the following files through the appended changesets.

Cheers,
Trond

----

 fs/nfs/mount_clnt.c |    5 ++-
 fs/nfs/super.c      |   76 +++++++++++++++++++++++++++++---------------------
 fs/nfs/write.c      |    7 +++--
 3 files changed, 51 insertions(+), 37 deletions(-)

commit 03fa9e84e5dc10aeacb0e4eb2f708cd9fc36a5b8

Author: Trond Myklebust <[email protected]>
Date:   Thu Jun 5 16:02:35 2008 -0400

NFS: nfs_updatepage(): don't mark page as dirty if an error occurred

commit b7e2445737ff69cef892b6fd9cd71cae2c9e9515

Author: Trond Myklebust <[email protected]>
Date:   Thu Jun 19 15:21:11 2008 -0400

NFS: Fix filehandle size comparisons in the mount code

Fix a sign issue in xdr_decode_fhstatus3() Fix incorrect comparison in nfs_validate_mount_data()

commit 33852a1f2bb014e4047a844556c0d76a2f790c37

Author: Trond Myklebust <[email protected]>
Date:   Thu Jun 19 14:20:11 2008 -0400

NFS: Reduce the NFS mount code stack usage.

This appears to fix the Oops reported in
http://bugzilla.kernel.org/show_bug.cgi?id=10826

fs/nfs/mount_clnt.c +3 -2
index 49c7cd0..779d2eb 100644
@@ -130,10 +130,11 @@ static int xdr_decode_fhstatus3(struct rpc_rqst *req, __be32 *p,
 				struct mnt_fhstatus *res)
 {
 	struct nfs_fh *fh = res->fh;
+	unsigned size;
 
 	if ((res->status = ntohl(*p++)) == 0) {
-		int size = ntohl(*p++);
-		if (size <= NFS3_FHSIZE) {
+		size = ntohl(*p++);
+		if (size <= NFS3_FHSIZE && size != 0) {
 			fh->size = size;
 			memcpy(fh->data, p, size);
 		} else
fs/nfs/super.c +44 -32

171 lines not on this page · raw message

fs/nfs/write.c +4 -3
index 6d8ace3..f333848 100644
@@ -739,12 +739,13 @@ int nfs_updatepage(struct file *file, struct page *page,
 	}
 
 	status = nfs_writepage_setup(ctx, page, offset, count);
-	__set_page_dirty_nobuffers(page);
+	if (status < 0)
+		nfs_set_pageerror(page);
+	else
+		__set_page_dirty_nobuffers(page);
 
         dprintk("NFS:      nfs_updatepage returns %d (isize %Ld)\n",
 			status, (long long)i_size_read(inode));
-	if (status < 0)
-		nfs_set_pageerror(page);
 	return status;
 }
 
Signature · 6 lines
Trond Myklebust
Linux NFS client maintainer

NetApp
[email protected]
www.netapp.com