rpms/kernel/devel linux-2.6-pnfs-compile.patch, NONE, 1.1.8.2 linux-2.6.35-inline.patch, NONE, 1.1.2.1 pnfs-all-2.6.35-rc3-2010-07-01.patch, NONE, 1.1.2.1 config-generic, 1.373, 1.373.2.1 kernel.spec, 1.2056, 1.2056.2.1

Steve Dickson steved at fedoraproject.org
Thu Jul 1 18:45:25 UTC 2010


Author: steved

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv6370

Modified Files:
      Tag: private-pnfs-all-2_6_35-rc3-2010-07-01
	config-generic kernel.spec 
Added Files:
      Tag: private-pnfs-all-2_6_35-rc3-2010-07-01
	linux-2.6-pnfs-compile.patch linux-2.6.35-inline.patch 
	pnfs-all-2.6.35-rc3-2010-07-01.patch 
Log Message:
Added in latest pNFS bits: pnfs-all-2.6.35-rc3-2010-07-01



linux-2.6-pnfs-compile.patch:
 inet_connection_sock.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE linux-2.6-pnfs-compile.patch ---
diff -up linux-2.6.32.x86_64/fs/nfs/objlayout/pnfs_osd_xdr.h.orig linux-2.6.32.x86_64/fs/nfs/objlayout/pnfs_osd_xdr.h
diff -up linux-2.6.32.x86_64/include/net/inet_connection_sock.h.orig linux-2.6.32.x86_64/include/net/inet_connection_sock.h
--- linux-2.6.32.x86_64/include/net/inet_connection_sock.h.orig	2009-12-02 22:51:21.000000000 -0500
+++ linux-2.6.32.x86_64/include/net/inet_connection_sock.h	2010-04-21 14:26:24.475659551 -0400
@@ -23,7 +23,7 @@
 #include <net/inet_sock.h>
 #include <net/request_sock.h>
 
-#define INET_CSK_DEBUG 1
+//#define INET_CSK_DEBUG 1
 
 /* Cancel timers, when they are not required. */
 #undef INET_CSK_CLEAR_TIMERS

linux-2.6.35-inline.patch:
 Makefile |    1 +
 1 file changed, 1 insertion(+)

--- NEW FILE linux-2.6.35-inline.patch ---
diff -up linux-2.6.34.noarch/arch/x86/Makefile.orig linux-2.6.34.noarch/arch/x86/Makefile
--- linux-2.6.34.noarch/arch/x86/Makefile.orig	2010-07-01 13:33:21.859627499 -0400
+++ linux-2.6.34.noarch/arch/x86/Makefile	2010-07-01 13:36:26.751576450 -0400
@@ -81,6 +81,7 @@ ifdef CONFIG_CC_STACKPROTECTOR
                 $(warning stack protector enabled but no compiler support)
         endif
 endif
+KBUILD_CFLAGS += -fno-inline-functions-called-once
 
 # Don't unroll struct assignments with kmemcheck enabled
 ifeq ($(CONFIG_KMEMCHECK),y)

pnfs-all-2.6.35-rc3-2010-07-01.patch:
 Documentation/filesystems/spnfs.txt |  211 +++
 arch/um/os-Linux/mem.c              |    1 
 block/genhd.c                       |    1 
 drivers/gpu/drm/i915/i915_dma.c     |    2 
 drivers/md/dm-ioctl.c               |   24 
 drivers/scsi/hosts.c                |    2 
 fs/Kconfig                          |   25 
 fs/exofs/Kbuild                     |    1 
 fs/exofs/Kconfig                    |    1 
 fs/exofs/exofs.h                    |   26 
 fs/exofs/export.c                   |  396 ++++++
 fs/exofs/inode.c                    |    3 
 fs/exofs/super.c                    |    1 
 fs/exportfs/Makefile                |    5 
 fs/exportfs/expfs.c                 |    7 
 fs/exportfs/nfs4blocklayoutxdr.c    |  158 ++
 fs/exportfs/nfs4filelayoutxdr.c     |  218 +++
 fs/exportfs/pnfs_osd_xdr_srv.c      |  289 ++++
 fs/gfs2/ops_fstype.c                |    4 
 fs/nfs/Kconfig                      |   40 
 fs/nfs/Makefile                     |    7 
 fs/nfs/blocklayout/Makefile         |    6 
 fs/nfs/blocklayout/blocklayout.c    | 1171 ++++++++++++++++++++
 fs/nfs/blocklayout/blocklayout.h    |  280 ++++
 fs/nfs/blocklayout/blocklayoutdev.c |  721 ++++++++++++
 fs/nfs/blocklayout/blocklayoutdm.c  |  337 +++++
 fs/nfs/blocklayout/extents.c        |  948 ++++++++++++++++
 fs/nfs/callback.h                   |   42 
 fs/nfs/callback_proc.c              |  408 ++++++-
 fs/nfs/callback_xdr.c               |  162 ++
 fs/nfs/client.c                     |  116 +
 fs/nfs/delegation.c                 |   25 
 fs/nfs/delegation.h                 |    4 
 fs/nfs/direct.c                     |  164 +-
 fs/nfs/file.c                       |   48 
 fs/nfs/inode.c                      |   76 +
 fs/nfs/internal.h                   |   33 
 fs/nfs/nfs3proc.c                   |    1 
 fs/nfs/nfs4_fs.h                    |   46 
 fs/nfs/nfs4filelayout.c             |  788 +++++++++++++
 fs/nfs/nfs4filelayout.h             |   93 +
 fs/nfs/nfs4filelayoutdev.c          |  634 ++++++++++
 fs/nfs/nfs4proc.c                   |  959 ++++++++++++----
 fs/nfs/nfs4renewd.c                 |    6 
 fs/nfs/nfs4state.c                  |   49 
 fs/nfs/nfs4xdr.c                    |  998 ++++++++++++++++-
 fs/nfs/objlayout/Kbuild             |   11 
 fs/nfs/objlayout/objio_osd.c        | 1087 ++++++++++++++++++
 fs/nfs/objlayout/objlayout.c        |  797 +++++++++++++
 fs/nfs/objlayout/objlayout.h        |  163 ++
 fs/nfs/objlayout/panfs_shim.c       |  734 ++++++++++++
 fs/nfs/objlayout/panfs_shim.h       |  482 ++++++++
 fs/nfs/objlayout/pnfs_osd_xdr_cli.c |  435 +++++++
 fs/nfs/pagelist.c                   |   28 
 fs/nfs/pnfs.c                       | 2097 ++++++++++++++++++++++++++++++++++++
 fs/nfs/pnfs.h                       |  371 ++++++
 fs/nfs/proc.c                       |    5 
 fs/nfs/read.c                       |  104 +
 fs/nfs/super.c                      |   41 
 fs/nfs/unlink.c                     |    2 
 fs/nfs/write.c                      |  342 ++++-
 fs/nfsd/Kconfig                     |   49 
 fs/nfsd/Makefile                    |    4 
 fs/nfsd/bl_com.c                    |  292 +++++
 fs/nfsd/bl_ops.c                    | 1672 ++++++++++++++++++++++++++++
 fs/nfsd/export.c                    |  106 +
 fs/nfsd/nfs4callback.c              |  419 ++++++-
 fs/nfsd/nfs4pnfsd.c                 | 1679 ++++++++++++++++++++++++++++
 fs/nfsd/nfs4pnfsdlm.c               |  461 +++++++
 fs/nfsd/nfs4pnfsds.c                |  620 ++++++++++
 fs/nfsd/nfs4proc.c                  |  410 ++++++-
 fs/nfsd/nfs4state.c                 |  220 ++-
 fs/nfsd/nfs4xdr.c                   |  538 +++++++++
 fs/nfsd/nfsctl.c                    |  107 +
 fs/nfsd/nfsd.h                      |    8 
 fs/nfsd/nfsfh.c                     |    7 
 fs/nfsd/nfsfh.h                     |   39 
 fs/nfsd/nfssvc.c                    |    2 
 fs/nfsd/pnfsd.h                     |  143 ++
 fs/nfsd/pnfsd_lexp.c                |  225 +++
 fs/nfsd/spnfs_com.c                 |  535 +++++++++
 fs/nfsd/spnfs_ops.c                 |  878 +++++++++++++++
 fs/nfsd/state.h                     |   76 +
 fs/nfsd/vfs.c                       |   74 +
 fs/nfsd/xdr4.h                      |   54 
 include/linux/exp_xdr.h             |  141 ++
 include/linux/exportfs.h            |   59 +
 include/linux/fs.h                  |    2 
 include/linux/nfs4.h                |   77 +
 include/linux/nfs4_pnfs.h           |  344 +++++
 include/linux/nfs_fs.h              |   37 
 include/linux/nfs_fs_sb.h           |   30 
 include/linux/nfs_iostat.h          |    3 
 include/linux/nfs_page.h            |   13 
 include/linux/nfs_xdr.h             |   49 
 include/linux/nfsd/const.h          |    1 
 include/linux/nfsd/debug.h          |    2 
 include/linux/nfsd/export.h         |    1 
 include/linux/nfsd/nfs4layoutxdr.h  |  132 ++
 include/linux/nfsd/nfs4pnfsdlm.h    |   54 
 include/linux/nfsd/nfsd4_pnfs.h     |  271 ++++
 include/linux/nfsd/syscall.h        |    8 
 include/linux/nfsd4_block.h         |  101 +
 include/linux/nfsd4_spnfs.h         |  345 +++++
 include/linux/panfs_shim_api.h      |   57 
 include/linux/pnfs_osd_xdr.h        |  440 +++++++
 include/linux/pnfs_xdr.h            |  138 ++
 include/linux/posix_acl.h           |    1 
 include/linux/sunrpc/msg_prot.h     |    2 
 include/linux/sunrpc/rpc_pipe_fs.h  |    1 
 include/linux/sunrpc/svc_xprt.h     |   37 
 include/linux/sunrpc/xdr.h          |    8 
 localversion-pnfs                   |    1 
 net/sunrpc/xdr.c                    |   35 
 114 files changed, 26596 insertions(+), 648 deletions(-)

--- NEW FILE pnfs-all-2.6.35-rc3-2010-07-01.patch ---
diff -up linux-2.6.34.noarch/arch/um/os-Linux/mem.c.orig linux-2.6.34.noarch/arch/um/os-Linux/mem.c
--- linux-2.6.34.noarch/arch/um/os-Linux/mem.c.orig	2010-05-16 17:17:36.000000000 -0400
+++ linux-2.6.34.noarch/arch/um/os-Linux/mem.c	2010-07-01 14:17:06.858544793 -0400
@@ -12,6 +12,7 @@
 #include <string.h>
 #include <sys/mman.h>
 #include <sys/param.h>
+#include <sys/stat.h>
 #include "init.h"
 #include "kern_constants.h"
 #include "os.h"
diff -up linux-2.6.34.noarch/block/genhd.c.orig linux-2.6.34.noarch/block/genhd.c
--- linux-2.6.34.noarch/block/genhd.c.orig	2010-07-01 13:33:23.666637304 -0400
+++ linux-2.6.34.noarch/block/genhd.c	2010-07-01 14:17:06.859566330 -0400
@@ -1009,6 +1009,7 @@ static void disk_release(struct device *
 struct class block_class = {
 	.name		= "block",
 };
+EXPORT_SYMBOL(block_class);
 
 static char *block_devnode(struct device *dev, mode_t *mode)
 {
diff -up linux-2.6.34.noarch/Documentation/filesystems/spnfs.txt.orig linux-2.6.34.noarch/Documentation/filesystems/spnfs.txt
--- linux-2.6.34.noarch/Documentation/filesystems/spnfs.txt.orig	2010-07-01 14:16:58.738575633 -0400
+++ linux-2.6.34.noarch/Documentation/filesystems/spnfs.txt	2010-07-01 14:16:58.738575633 -0400
@@ -0,0 +1,211 @@
+(c) 2007 Network Appliance Inc.
+
+spNFS
+-----
+
+An spNFS system consists of a Meta Data Server (MDS), a number of Client machines (C) and a number of Data Servers (DS).
+
+A file system is mounted by the clients from the MDS, and all file data
+is striped across the DSs.
+
+Identify the machines that will be filling each of these roles.
+
+The spnfs kernel will be installed on all machines: clients, the MDS and DSs.
+
+
+Building and installing the spNFS kernel
+----------------------------------------
+
+Get the spNFS kernel from:
+
+	git://linux-nfs.org/~bhalevy/linux-pnfs.git
+
+Use the pnfs-all-latest branch and add these options to your .config file
+
+	CONFIG_NETWORK_FILESYSTEMS=y
+	CONFIG_NFS_FS=m
+	CONFIG_NFS_V4=y
+	CONFIG_NFS_V4_1=y
+	CONFIG_PNFS=y
+	CONFIG_NFSD=m
+	CONFIG_PNFSD=y
+	# CONFIG_PNFSD_LOCAL_EXPORT is not set
+	CONFIG_SPNFS=y
+
+By default, spNFS uses whole-file layouts.  Layout segments can be enabled
+by adding:
+
+	CONFIG_SPNFS_LAYOUTSEGMENTS=y
+
+to your .config file.
+
+Building and installation of kernel+modules is as usual.
+This kernel should be installed and booted on the client, MDS and DSs.
+
+Note that CONFIG_PNFSD_LOCAL_EXPORT must be disabled for spnfs as it
+takes over the pnfs export interface.
+
+Building nfs-utils
+------------------
+
+Get the nfs-utils package containing spnfsd from:
+
+	git://linux-nfs.org/~bhalevy/pnfs-nfs-utils.git
+
+Follow the standard instructions for building nfs-utils.
+
+After building, the spnfsd daemon will be located in utils/spnfsd.  The spnfsd
+daemon will only be needed on the MDS.
+
+
+Installation
+------------
+
+The nfs-utils package contains a default spnfsd.conf file in
+utils/spnfsd/spnfsd.conf.  Copy this file to /etc/spnfsd.conf.
+
+By default, the DS-Mount-Directory is set to /spnfs (see spnfsd.conf).  Under
+this directory, mount points must be created for each DS to
+be used for pNFS data stripes.  These mount points are named by the ip address
+of the corresponding DS.  In the sample spnfsd.conf, there are two
+DSs defined (172.16.28.134 and 172.16.28.141).
+
+Following the sample spnfsd.conf,
+
+	mkdir /spnfs
+
+on the MDS (corresponding to DS-Mount-Directory).  Then
+
+	mkdir /spnfs/172.16.28.134
+	mkdir /spnfs/172.16.28.141
+
+to create the mount points for the DSs.
+
+On the DSs, chose a directory where data stripes will be created by the MDS.
+For the sample file, this directory is /pnfs, so on each DS execute:
+
+	mkdir /pnfs
+
+This directory is specified in the spnfsd.conf file by the DS*_ROOT option
+(where * is replaced by the DS number).  DS_ROOT is specified relative to
+the directory being exported by the DSs.  In our example, our DSs are exporting
+the root directory (/) and therefore our DS_ROOT is /pnfs.  On the DSs, we have
+the following entry in /etc/exports:
+
+	/ *(rw,fsid=0,insecure,no_root_squash,sync,no_subtree_check)
+
+N.B. If we had created a /exports directory and a /pnfs directory under
+/exports, and if we were exporting /exports, then DS_ROOT would still be /pnfs
+(not /exports/pnfs).
+
+It may be useful to add entries to /etc/fstab on the MDS to automatically
+mount the DS_ROOT file systems.  For this example, our MDS fstab would
+contain:
+
+	172.17.84.128:/pnfs /spnfs/172.17.84.128 nfs    defaults        1 2
+	172.17.84.122:/pnfs /spnfs/172.17.84.122 nfs    defaults        1 2
+
+The DS mounts must be performed manually or via fstab at this time (automatic
+mounting, directory creation, etc. are on the todo list).  To perform I/O
+through the MDS, the DS mounts MUST use NFSv3 at this time (this restriction
+will eventually be removed).
+
+
+On the MDS, choose a file system to use with spNFS and export it, e.g.:
+
+	/ *(rw,fsid=0,insecure,no_root_squash,sync,no_subtree_check,pnfs)
+
+Make sure nfsd and all supporting processes are running on the MDS and DSs.
+
+
+Running
+-------
+
+If rpc_pipefs is not already mounted (if you're running idmapd it probably is),
+you may want to add the following line to /etc/fstab:
+
+	rpc_pipefs    /var/lib/nfs/rpc_pipefs rpc_pipefs defaults     0 0
+
+to automatically mount rpc_pipefs.
+
+With spnfsd.conf configured for your environment and the mounts mounted as
+described above, spnfsd can now be started.
+
+On the MDS, execute spnfsd:
+
+	spnfsd
+
+The executable is located in the directory where it was built, and
+may also have been installed elsewhere depending on how you built nfs-utils.
+It will run in the foreground by default, and in fact will do so despite
+any options suggesting the contrary (it's still a debugging build).
+
+On the client, make sure the nfslayoutdriver module is loaded:
+
+	modprobe nfslayoutdriver
+
+Then mount the file system from the MDS:
+
+	mount -t nfs4 -o minorversion=1 mds:/ /mnt
+
+I/O through the MDS is now supported.  To use it, do not load the
+nfslayoutdriver on the client, and mount the MDS using NFSv4 or 4.1
+(NFSv2 and v3 are not yet supported).
+
+You may now use spNFS by performing file system activities in /mnt.
+If you create files in /mnt, you should see stripe files corresponding to
+new files being created on the DSs.  The current implementation names the
+stripe files based on the inode number of the file on the MDS.  For example,
+if you create a file foo in /mnt and do an 'ls -li /mnt/foo':
+
+	# ls -li foo
+	1233 -rw-r--r-- 1 root root 0 Nov 29 15:54 foo
+
+You should see stripe files on each under /pnfs (per the sample) named
+1233.  The file /pnfs/1233 on DS1 will contain the first <stripe size> bytes
+of data written to foo, DS2 will contain the next <stripe size> bytes, etc.
+Removing /mnt/foo will remove the corresponding stripe files on the DSs.
+Other file system operations should behave (mostly :-) as expected.
+
+
+Layout Segments
+---------------
+
[...30828 lines suppressed...]
+
+struct nfs4_pnfs_layoutreturn_res {
+	struct nfs4_sequence_res seq_res;
+	u32 lrs_present;
+	nfs4_stateid stateid;
+};
+
+struct nfs4_pnfs_layoutreturn {
+	struct pnfs_layout_type *lo;
+	struct nfs4_pnfs_layoutreturn_arg args;
+	struct nfs4_pnfs_layoutreturn_res res;
+	struct rpc_cred *cred;
+	int rpc_status;
+};
+
+struct nfs4_pnfs_getdevicelist_arg {
+	const struct nfs_fh *fh;
+	u32 layoutclass;
+	struct nfs4_sequence_args seq_args;
+};
+
+struct nfs4_pnfs_getdevicelist_res {
+	struct pnfs_devicelist *devlist;
+	struct nfs4_sequence_res seq_res;
+};
+
+struct nfs4_pnfs_getdeviceinfo_arg {
+	struct pnfs_device *pdev;
+	struct nfs4_sequence_args seq_args;
+};
+
+struct nfs4_pnfs_getdeviceinfo_res {
+	struct pnfs_device *pdev;
+	struct nfs4_sequence_res seq_res;
+};
+
+#endif /* LINUX_PNFS_XDR_H */
diff -up linux-2.6.34.noarch/include/linux/posix_acl.h.orig linux-2.6.34.noarch/include/linux/posix_acl.h
--- linux-2.6.34.noarch/include/linux/posix_acl.h.orig	2010-06-07 20:06:04.604573984 -0400
+++ linux-2.6.34.noarch/include/linux/posix_acl.h	2010-07-01 14:17:37.067564915 -0400
@@ -8,6 +8,7 @@
 #ifndef __LINUX_POSIX_ACL_H
 #define __LINUX_POSIX_ACL_H
 
+#include <linux/fs.h>
 #include <linux/slab.h>
 
 #define ACL_UNDEFINED_ID	(-1)
diff -up linux-2.6.34.noarch/include/linux/sunrpc/msg_prot.h.orig linux-2.6.34.noarch/include/linux/sunrpc/msg_prot.h
--- linux-2.6.34.noarch/include/linux/sunrpc/msg_prot.h.orig	2010-06-07 20:06:04.595573964 -0400
+++ linux-2.6.34.noarch/include/linux/sunrpc/msg_prot.h	2010-07-01 14:17:37.067564915 -0400
@@ -14,6 +14,8 @@
 /* size of an XDR encoding unit in bytes, i.e. 32bit */
 #define XDR_UNIT	(4)
 
+#include <linux/types.h>
+
 /* spec defines authentication flavor as an unsigned 32 bit integer */
 typedef u32	rpc_authflavor_t;
 
diff -up linux-2.6.34.noarch/include/linux/sunrpc/rpc_pipe_fs.h.orig linux-2.6.34.noarch/include/linux/sunrpc/rpc_pipe_fs.h
--- linux-2.6.34.noarch/include/linux/sunrpc/rpc_pipe_fs.h.orig	2010-06-07 20:06:04.597564344 -0400
+++ linux-2.6.34.noarch/include/linux/sunrpc/rpc_pipe_fs.h	2010-07-01 14:17:37.068601493 -0400
@@ -3,6 +3,7 @@
 
 #ifdef __KERNEL__
 
+#include <linux/fs.h>
 #include <linux/workqueue.h>
 
 struct rpc_pipe_msg {
diff -up linux-2.6.34.noarch/include/linux/sunrpc/svc_xprt.h.orig linux-2.6.34.noarch/include/linux/sunrpc/svc_xprt.h
--- linux-2.6.34.noarch/include/linux/sunrpc/svc_xprt.h.orig	2010-06-07 20:06:04.599563557 -0400
+++ linux-2.6.34.noarch/include/linux/sunrpc/svc_xprt.h	2010-07-01 14:17:37.068601493 -0400
@@ -166,4 +166,41 @@ static inline char *__svc_print_addr(con
 
 	return buf;
 }
+
+/*
+ * Print a network address in a universal format (see rfc1833 and nfsv4.1)
+ */
+static inline int __svc_print_netaddr(struct sockaddr *addr,
+				      struct xdr_netobj *na)
+{
+	u16 port;
+	ssize_t len;
+
+	switch (addr->sa_family) {
+	case AF_INET: {
+		struct sockaddr_in *sin = (struct sockaddr_in *)addr;
+		port = ntohs(sin->sin_port);
+
+		len = snprintf(na->data, na->len, "%pI4.%u.%u",
+				&sin->sin_addr,
+				port >> 8, port & 0xff);
+		break;
+	}
+	case AF_INET6: {
+		struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)addr;
+		port = ntohs(sin6->sin6_port);
+
+		len = snprintf(na->data, na->len, "%pI6.%u.%u",
+				&sin6->sin6_addr,
+				port >> 8, port & 0xff);
+		break;
+	}
+	default:
+		snprintf(na->data, na->len, "unknown address type: %d",
+			 addr->sa_family);
+		len = -EINVAL;
+		break;
+	}
+	return len;
+}
 #endif /* SUNRPC_SVC_XPRT_H */
diff -up linux-2.6.34.noarch/include/linux/sunrpc/xdr.h.orig linux-2.6.34.noarch/include/linux/sunrpc/xdr.h
--- linux-2.6.34.noarch/include/linux/sunrpc/xdr.h.orig	2010-07-01 13:34:07.305564841 -0400
+++ linux-2.6.34.noarch/include/linux/sunrpc/xdr.h	2010-07-01 14:17:37.069575207 -0400
@@ -131,6 +131,13 @@ xdr_decode_hyper(__be32 *p, __u64 *valp)
 	return p + 2;
 }
 
+static inline __be32 *
+xdr_decode_opaque_fixed(__be32 *p, void *ptr, unsigned int len)
+{
+	memcpy(ptr, p, len);
+	return p + XDR_QUADLEN(len);
+}
+
 /*
  * Adjust kvec to reflect end of xdr'ed data (RPC client XDR)
  */
@@ -197,6 +204,7 @@ struct xdr_stream {
 
 extern void xdr_init_encode(struct xdr_stream *xdr, struct xdr_buf *buf, __be32 *p);
 extern __be32 *xdr_reserve_space(struct xdr_stream *xdr, size_t nbytes);
+extern __be32 *xdr_rewind_stream(struct xdr_stream *xdr, __be32 *q);
 extern void xdr_write_pages(struct xdr_stream *xdr, struct page **pages,
 		unsigned int base, unsigned int len);
 extern void xdr_init_decode(struct xdr_stream *xdr, struct xdr_buf *buf, __be32 *p);
diff -up linux-2.6.34.noarch/localversion-pnfs.orig linux-2.6.34.noarch/localversion-pnfs
--- linux-2.6.34.noarch/localversion-pnfs.orig	2010-07-01 14:17:37.070585715 -0400
+++ linux-2.6.34.noarch/localversion-pnfs	2010-07-01 14:17:37.070585715 -0400
@@ -0,0 +1 @@
+-pnfs
diff -up linux-2.6.34.noarch/net/sunrpc/xdr.c.orig linux-2.6.34.noarch/net/sunrpc/xdr.c
--- linux-2.6.34.noarch/net/sunrpc/xdr.c.orig	2010-07-01 13:34:15.215657662 -0400
+++ linux-2.6.34.noarch/net/sunrpc/xdr.c	2010-07-01 14:17:55.578545085 -0400
@@ -403,16 +403,14 @@ xdr_shrink_pagelen(struct xdr_buf *buf, 
 
 	/* Shift the tail first */
 	if (tail->iov_len != 0) {
-		p = (char *)tail->iov_base + len;
-		if (tail->iov_len > len) {
-			copy = tail->iov_len - len;
-			memmove(p, tail->iov_base, copy);
-		} else
-			buf->buflen -= len;
-		/* Copy from the inlined pages into the tail */
 		copy = len;
-		if (copy > tail->iov_len)
+		if (tail->iov_len > len) {
+			p = (char *)tail->iov_base + len;
+			memmove(p, tail->iov_base, tail->iov_len - len);
+		} else {
 			copy = tail->iov_len;
+		}
+		/* Copy from the inlined pages into the tail */
 		_copy_from_pages((char *)tail->iov_base,
 				buf->pages, buf->page_base + pglen - len,
 				copy);
@@ -496,6 +494,27 @@ __be32 * xdr_reserve_space(struct xdr_st
 EXPORT_SYMBOL_GPL(xdr_reserve_space);
 
 /**
+ * xdr_rewind_stream - rewind a stream back to some checkpoint
+ * @xdr: pointer to xdr_stream
+ * @q: some checkpoint at historical place of @xdr
+ *
+ * Restors an xdr stream to some historical point. @q must be
+ * a logical xdr point in the past that was sampled by @q = @xdr->p.
+ */
+__be32 *xdr_rewind_stream(struct xdr_stream *xdr, __be32 *q)
+{
+	size_t nbytes = (xdr->p - q) << 2;
+
+	BUG_ON(xdr->p < q);
+	BUG_ON(nbytes > xdr->iov->iov_len || nbytes > xdr->buf->len);
+	xdr->p = q;
+	xdr->iov->iov_len -= nbytes;
+	xdr->buf->len -= nbytes;
+	return q;
+}
+EXPORT_SYMBOL_GPL(xdr_rewind_stream);
+
+/**
  * xdr_write_pages - Insert a list of pages into an XDR buffer for sending
  * @xdr: pointer to xdr_stream
  * @pages: list of pages


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.373
retrieving revision 1.373.2.1
diff -u -p -r1.373 -r1.373.2.1
--- config-generic	28 Jun 2010 03:49:25 -0000	1.373
+++ config-generic	1 Jul 2010 18:45:24 -0000	1.373.2.1
@@ -3409,6 +3409,18 @@ CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 CONFIG_NFS_V4_1=y
+# Enable pNFS
+CONFIG_PNFS=y
+CONFIG_PNFSD=y
+CONFIG_PNFSD_LOCAL_EXPORT=y
+CONFIG_SPNFS=y
+CONFIG_SPNFS_LAYOUTSEGMENTS=y
+CONFIG_SPNFS_BLOCK=y
+CONFIG_PNFS_OBJLAYOUT=m
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_PANLAYOUT=m
+CONFIG_PNFS_FILE_LAYOUT=y
+#
 CONFIG_NFSD=m
 CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.2056
retrieving revision 1.2056.2.1
diff -u -p -r1.2056 -r1.2056.2.1
--- kernel.spec	30 Jun 2010 11:04:57 -0000	1.2056
+++ kernel.spec	1 Jul 2010 18:45:24 -0000	1.2056.2.1
@@ -23,7 +23,7 @@ Summary: The Linux kernel
 #
 # (Uncomment the '#' and both spaces below to set the buildid.)
 #
-# % define buildid .local
+%define buildid .pnfs
 ###################################################################
 
 # The buildid can also be specified on the rpmbuild command line
@@ -696,6 +696,9 @@ Patch12018: neuter_intel_microcode_load.
 
 Patch12030: ssb_check_for_sprom.patch
 
+Patch30000: linux-2.6.35-inline.patch
+Patch40000: pnfs-all-2.6.35-rc3-2010-07-01.patch
+Patch40001: linux-2.6-pnfs-compile.patch
 %endif
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1259,6 +1262,9 @@ ApplyPatch neuter_intel_microcode_load.p
 #ApplyPatch ssb_check_for_sprom.patch
 
 # END OF PATCH APPLICATIONS
+ApplyPatch linux-2.6.35-inline.patch
+ApplyPatch pnfs-all-2.6.35-rc3-2010-07-01.patch
+ApplyPatch linux-2.6-pnfs-compile.patch
 
 %endif
 
@@ -1887,6 +1893,9 @@ fi
 #                 ||     ||
 
 %changelog
+* Thu Jul  1 2010 Steve Dickson <steved at redhat.com>
+- Added in latest pNFS bits: pnfs-all-2.6.35-rc3-2010-07-01
+
 * Wed Jun 30 2010 Kyle McMartin <kyle at redhat.com> 2.6.35-0.19.rc3.git4
 - 2.6.35-rc3-git4
 



More information about the scm-commits mailing list