rpms/kernel/F-12 kernel.spec, 1.1840, 1.1841 linux-2.6-nfsd4-proots.patch, 1.3, 1.4

Steve Dickson steved at fedoraproject.org
Tue Sep 29 17:16:22 UTC 2009


Author: steved

Update of /cvs/pkgs/rpms/kernel/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5773

Modified Files:
	kernel.spec linux-2.6-nfsd4-proots.patch 
Log Message:
Updated the NFS4 pseudo root code with a fix from upstream



Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/kernel.spec,v
retrieving revision 1.1840
retrieving revision 1.1841
diff -u -p -r1.1840 -r1.1841
--- kernel.spec	29 Sep 2009 08:26:12 -0000	1.1840
+++ kernel.spec	29 Sep 2009 17:16:21 -0000	1.1841
@@ -2074,6 +2074,9 @@ fi
 # and build.
 
 %changelog
+* Tue Sep 29 2009 Steve Dickson <steved at redhat.com>  2.6.31.1-55
+- Updated the NFS4 pseudo root code with a fix from upstream
+
 * Tue Sep 29 2009 Dave Airlie <airlied at redhat.com> 2.6.31.1-54
 - Fix broken capabilties that stopped dbus working due to copy from user
   fixups.

linux-2.6-nfsd4-proots.patch:
 fs/nfsd/export.c            |   12 +++++-
 fs/nfsd/nfs4xdr.c           |   83 ++++++++++++++++++++++++++++++++++++--------
 fs/nfsd/nfsfh.c             |   32 ++++++++++++++++
 fs/nfsd/vfs.c               |   77 ++++++++++++++++++++++++++++++++++++++--
 include/linux/nfsd/export.h |    3 +
 include/linux/nfsd/nfsd.h   |    2 +
 6 files changed, 189 insertions(+), 20 deletions(-)

Index: linux-2.6-nfsd4-proots.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/linux-2.6-nfsd4-proots.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- linux-2.6-nfsd4-proots.patch	9 Sep 2009 22:43:52 -0000	1.3
+++ linux-2.6-nfsd4-proots.patch	29 Sep 2009 17:16:22 -0000	1.4
@@ -1,6 +1,6 @@
-diff -up linux-2.6.30.noarch/fs/nfsd/export.c.save linux-2.6.30.noarch/fs/nfsd/export.c
---- linux-2.6.30.noarch/fs/nfsd/export.c.save	2009-09-09 15:11:54.702436000 -0400
-+++ linux-2.6.30.noarch/fs/nfsd/export.c	2009-09-09 15:12:44.520167000 -0400
+diff -up linux-2.6.31.noarch/fs/nfsd/export.c.orig linux-2.6.31.noarch/fs/nfsd/export.c
+--- linux-2.6.31.noarch/fs/nfsd/export.c.orig	2009-09-09 18:13:59.000000000 -0400
++++ linux-2.6.31.noarch/fs/nfsd/export.c	2009-09-29 11:29:40.000000000 -0400
 @@ -104,6 +104,7 @@ static int expkey_parse(struct cache_det
  	if (mesg[mlen-1] != '\n')
  		return -EINVAL;
@@ -63,9 +63,9 @@ diff -up linux-2.6.30.noarch/fs/nfsd/exp
  		seq_puts(m, "# Path Client(Flags) # IPs\n");
  		return 0;
  	}
-diff -up linux-2.6.30.noarch/fs/nfsd/nfs4xdr.c.save linux-2.6.30.noarch/fs/nfsd/nfs4xdr.c
---- linux-2.6.30.noarch/fs/nfsd/nfs4xdr.c.save	2009-09-09 15:11:54.707433000 -0400
-+++ linux-2.6.30.noarch/fs/nfsd/nfs4xdr.c	2009-09-09 15:12:36.408695000 -0400
+diff -up linux-2.6.31.noarch/fs/nfsd/nfs4xdr.c.orig linux-2.6.31.noarch/fs/nfsd/nfs4xdr.c
+--- linux-2.6.31.noarch/fs/nfsd/nfs4xdr.c.orig	2009-09-09 18:13:59.000000000 -0400
++++ linux-2.6.31.noarch/fs/nfsd/nfs4xdr.c	2009-09-29 11:29:40.000000000 -0400
 @@ -2176,28 +2176,61 @@ static inline int attributes_need_mount(
  	return 0;
  }
@@ -191,9 +191,9 @@ diff -up linux-2.6.30.noarch/fs/nfsd/nfs
  	switch (nfserr) {
  	case nfs_ok:
  		p += buflen;
-diff -up linux-2.6.30.noarch/fs/nfsd/nfsfh.c.save linux-2.6.30.noarch/fs/nfsd/nfsfh.c
---- linux-2.6.30.noarch/fs/nfsd/nfsfh.c.save	2009-09-09 15:11:54.711427000 -0400
-+++ linux-2.6.30.noarch/fs/nfsd/nfsfh.c	2009-09-09 15:12:48.357903000 -0400
+diff -up linux-2.6.31.noarch/fs/nfsd/nfsfh.c.orig linux-2.6.31.noarch/fs/nfsd/nfsfh.c
+--- linux-2.6.31.noarch/fs/nfsd/nfsfh.c.orig	2009-09-09 18:13:59.000000000 -0400
++++ linux-2.6.31.noarch/fs/nfsd/nfsfh.c	2009-09-29 11:29:40.000000000 -0400
 @@ -109,6 +109,30 @@ static __be32 nfsd_setuser_and_check_por
  	return nfserrno(nfsd_setuser(rqstp, exp));
  }
@@ -240,9 +240,9 @@ diff -up linux-2.6.30.noarch/fs/nfsd/nfs
  	}
  
  	error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type);
-diff -up linux-2.6.30.noarch/fs/nfsd/vfs.c.save linux-2.6.30.noarch/fs/nfsd/vfs.c
---- linux-2.6.30.noarch/fs/nfsd/vfs.c.save	2009-09-09 15:11:54.715423000 -0400
-+++ linux-2.6.30.noarch/fs/nfsd/vfs.c	2009-09-09 15:12:39.978431000 -0400
+diff -up linux-2.6.31.noarch/fs/nfsd/vfs.c.orig linux-2.6.31.noarch/fs/nfsd/vfs.c
+--- linux-2.6.31.noarch/fs/nfsd/vfs.c.orig	2009-09-09 18:13:59.000000000 -0400
++++ linux-2.6.31.noarch/fs/nfsd/vfs.c	2009-09-29 11:31:06.000000000 -0400
 @@ -89,6 +89,12 @@ struct raparm_hbucket {
  #define RAPARM_HASH_MASK	(RAPARM_HASH_SIZE-1)
  static struct raparm_hbucket	raparm_hash[RAPARM_HASH_SIZE];
@@ -339,6 +339,15 @@ diff -up linux-2.6.30.noarch/fs/nfsd/vfs
  
  	/* Lookup the name, but don't follow links */
  	if (isdotent(name, len)) {
+@@ -162,7 +219,7 @@ nfsd_lookup_dentry(struct svc_rqst *rqst
+ 			dentry = dget(dparent);
+ 		else if (dparent != exp->ex_path.dentry)
+ 			dentry = dget_parent(dparent);
+-		else if (!EX_NOHIDE(exp))
++		else if (!EX_NOHIDE(exp) && !nfsd_v4client(rqstp))
+ 			dentry = dget(dparent); /* .. == . just like at / */
+ 		else {
+ 			/* checking mountpoint crossing is very different when stepping up */
 @@ -199,9 +256,21 @@ nfsd_lookup_dentry(struct svc_rqst *rqst
  		if (IS_ERR(dentry))
  			goto out_nfserr;
@@ -362,9 +371,9 @@ diff -up linux-2.6.30.noarch/fs/nfsd/vfs
  			if ((host_err = nfsd_cross_mnt(rqstp, &dentry, &exp))) {
  				dput(dentry);
  				goto out_nfserr;
-diff -up linux-2.6.30.noarch/include/linux/nfsd/export.h.save linux-2.6.30.noarch/include/linux/nfsd/export.h
---- linux-2.6.30.noarch/include/linux/nfsd/export.h.save	2009-09-09 15:11:54.719419000 -0400
-+++ linux-2.6.30.noarch/include/linux/nfsd/export.h	2009-09-09 15:12:29.064157000 -0400
+diff -up linux-2.6.31.noarch/include/linux/nfsd/export.h.orig linux-2.6.31.noarch/include/linux/nfsd/export.h
+--- linux-2.6.31.noarch/include/linux/nfsd/export.h.orig	2009-09-09 18:13:59.000000000 -0400
++++ linux-2.6.31.noarch/include/linux/nfsd/export.h	2009-09-29 11:29:40.000000000 -0400
 @@ -39,7 +39,8 @@
  #define NFSEXP_FSID		0x2000
  #define	NFSEXP_CROSSMOUNT	0x4000
@@ -375,9 +384,9 @@ diff -up linux-2.6.30.noarch/include/lin
  
  /* The flags that may vary depending on security flavor: */
  #define NFSEXP_SECINFO_FLAGS	(NFSEXP_READONLY | NFSEXP_ROOTSQUASH \
-diff -up linux-2.6.30.noarch/include/linux/nfsd/nfsd.h.save linux-2.6.30.noarch/include/linux/nfsd/nfsd.h
---- linux-2.6.30.noarch/include/linux/nfsd/nfsd.h.save	2009-09-09 15:11:54.723415000 -0400
-+++ linux-2.6.30.noarch/include/linux/nfsd/nfsd.h	2009-09-09 15:12:33.025896000 -0400
+diff -up linux-2.6.31.noarch/include/linux/nfsd/nfsd.h.orig linux-2.6.31.noarch/include/linux/nfsd/nfsd.h
+--- linux-2.6.31.noarch/include/linux/nfsd/nfsd.h.orig	2009-09-09 18:13:59.000000000 -0400
++++ linux-2.6.31.noarch/include/linux/nfsd/nfsd.h	2009-09-29 11:29:40.000000000 -0400
 @@ -76,6 +76,8 @@ int		nfsd_racache_init(int);
  void		nfsd_racache_shutdown(void);
  int		nfsd_cross_mnt(struct svc_rqst *rqstp, struct dentry **dpp,




More information about the scm-commits mailing list