[Pkg-lustre-svn-commit] updated: [451621f] Updated to apply on 1.6.6

Patrick Winnertz winnie at debian.org
Tue Dec 23 08:46:32 UTC 2008


The following commit has been merged in the master branch:
commit 451621f51c9879915eb47c6db7ec2acb429cc66d
Author: Patrick Winnertz <winnie at debian.org>
Date:   Mon Dec 22 10:03:01 2008 +0100

    Updated to apply on 1.6.6

diff --git a/debian/patches/00list b/debian/patches/00list
index c34d41d..d9f5cdc 100644
--- a/debian/patches/00list
+++ b/debian/patches/00list
@@ -10,21 +10,22 @@ no-darwin.dpatch
 remove-set_tunables.dpatch
 libsysio.dpatch
 bug12769-ql-fix.dpatch
-patchless_support/configure_for_HEAD.dpatch
-patchless_support/fix_configure_RO_cache.dpatch
-patchless_support/fix_nfs_fid_type.dpatch
-patchless_support/fix_request_module_calls.dpatch
-patchless_support/lustre_loop_devices_adaption.dpatch
-patchless_support/nfs_changes_new_API.dpatch
-patchless_support/sysctl_update.dpatch
-patchless_support/configure_tests_2.6.27.dpatch
-patchless_support/fix_mmap.dpatch
-patchless_support/fix_path_API_changes.dpatch
-patchless_support/lprocfs_changes.dpatch
-patchless_support/new_page_fault_method.dpatch
-patchless_support/splice_read_support.dpatch
+#patchless_support/configure_for_HEAD.dpatch
+#patchless_support/fix_configure_RO_cache.dpatch
+#patchless_support/fix_nfs_fid_type.dpatch
+#patchless_support/fix_request_module_calls.dpatch
+#patchless_support/lustre_loop_devices_adaption.dpatch
+#patchless_support/nfs_changes_new_API.dpatch
+#patchless_support/sysctl_update.dpatch
+#patchless_support/configure_tests_2.6.27.dpatch
+#patchless_support/fix_mmap.dpatch
+#patchless_support/fix_path_API_changes.dpatch
+#patchless_support/lprocfs_changes.dpatch
+#patchless_support/new_page_fault_method.dpatch
+#patchless_support/splice_read_support.dpatch
 #patchless_support_2.6.24_lnet_part.dpatch
 #patchless_support_2.6.24_configure_part.dpatch
+patchless_support_2.6.24.dpatch
 #server_support_2.6.27.dpatch
 # Debian patches
 bash_completion.dpatch
diff --git a/debian/patches/patchless_support/configure_for_HEAD.dpatch b/debian/patches/patchless_support/configure_for_HEAD.dpatch
index f67204b..d4eae95 100755
--- a/debian/patches/patchless_support/configure_for_HEAD.dpatch
+++ b/debian/patches/patchless_support/configure_for_HEAD.dpatch
@@ -5,29 +5,27 @@
 ## DP: Patch which will enable 2.6.24 patchless support for lustre, taken from #14250
 
 @DPATCH@
-Index: HEAD/lustre/autoconf/lustre-core.m4
-===================================================================
---- HEAD.orig/lustre/autoconf/lustre-core.m4	2008-12-03 06:46:48.000000000 +0300
-+++ HEAD/lustre/autoconf/lustre-core.m4	2008-12-05 20:38:37.000000000 +0300
-@@ -1211,15 +1211,20 @@
+diff -urNad lustre~/lustre/autoconf/lustre-core.m4 lustre/lustre/autoconf/lustre-core.m4
+--- lustre~/lustre/autoconf/lustre-core.m4	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/autoconf/lustre-core.m4	2008-12-22 10:00:57.000000000 +0100
+@@ -1109,15 +1109,20 @@
  AC_DEFUN([LC_PAGE_CHECKED],
  [AC_MSG_CHECKING([kernel has PageChecked and SetPageChecked])
  LB_LINUX_TRY_COMPILE([
 -        #include <linux/mm.h>
 -        #include <linux/page-flags.h>
--],[
++        #include <linux/autoconf.h>
++#ifdef HAVE_LINUX_MMTYPES_H
++        #include <linux/mm_types.h>
++#endif
++	#include <linux/page-flags.h>
+ ],[
 -        #ifndef PageChecked
 -        #error PageChecked not defined in kernel
 -        #endif
 -        #ifndef SetPageChecked
 -        #error SetPageChecked not defined in kernel
 -        #endif
-+        #include <linux/autoconf.h>
-+#ifdef HAVE_LINUX_MMTYPES_H
-+        #include <linux/mm_types.h>
-+#endif
-+	#include <linux/page-flags.h>
-+],[
 + 	struct page *p;
 +
 +        /* before 2.6.26 this define*/
@@ -39,7 +37,7 @@ Index: HEAD/lustre/autoconf/lustre-core.m4
  ],[
          AC_MSG_RESULT(yes)
          AC_DEFINE(HAVE_PAGE_CHECKED, 1,
-@@ -1380,11 +1385,149 @@
+@@ -1271,11 +1276,149 @@
  
  # 2.6.23 extract nfs export related data into exportfs.h
  AC_DEFUN([LC_HAVE_EXPORTFS_H],
@@ -194,38 +192,47 @@ Index: HEAD/lustre/autoconf/lustre-core.m4
  ])
  
  #
-@@ -1661,6 +1804,19 @@
-          LC_UNREGISTER_BLKDEV_RETURN_INT
-          LC_KERNEL_SPLICE_READ
-          LC_HAVE_EXPORTFS_H
-+         LC_VM_OP_FAULT
-+         LC_REGISTER_SHRINKER
+@@ -1370,13 +1513,27 @@
+           # raid5-zerocopy patch
+           LC_PAGE_CONSTANT
+ 	  
+-	  # 2.6.22
++	   # 2.6.22
+           LC_INVALIDATE_BDEV_2ARG
+           LC_FS_RENAME_DOES_D_MOVE
+-          # 2.6.23
++     # 2.6.23
+           LC_UNREGISTER_BLKDEV_RETURN_INT
+           LC_KERNEL_SPLICE_READ
+           LC_HAVE_EXPORTFS_H
++          LC_VM_OP_FAULT
++          LC_REGISTER_SHRINKER
 +  
 +  	 # 2.6.24
-+  	 LC_HAVE_MMTYPES_H
++      	 LC_HAVE_MMTYPES_H
 +         LC_BIO_ENDIO_2ARG
 +         LC_FH_TO_DENTRY
 +         LC_PROCFS_DELETED
 +  
-+         # 2.6.26
++     # 2.6.26
 +         LC_FS_STRUCT_USE_PATH
 +         LC_RCU_LIST_SAFE
 +         LC_PATH_RELEASE
++
  ])
  
  #
-@@ -1898,6 +2054,7 @@
+@@ -1609,6 +1766,7 @@
          ],[
-                 AC_MSG_RESULT([no])
+                 AC_MSG_RESULT([no]) 
          ])
 +
  ],[
          AC_MSG_RESULT([no])
  ])
-Index: HEAD/lustre/include/linux/lustre_compat25.h
-===================================================================
---- HEAD.orig/lustre/include/linux/lustre_compat25.h	2008-11-17 12:36:18.000000000 +0300
-+++ HEAD/lustre/include/linux/lustre_compat25.h	2008-12-05 20:36:56.000000000 +0300
+diff -urNad lustre~/lustre/include/linux/lustre_compat25.h lustre/lustre/include/linux/lustre_compat25.h
+--- lustre~/lustre/include/linux/lustre_compat25.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/include/linux/lustre_compat25.h	2008-12-22 10:02:32.000000000 +0100
 @@ -57,6 +57,28 @@
  #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14) */
  
@@ -263,8 +270,8 @@ Index: HEAD/lustre/include/linux/lustre_compat25.h
  #else
  #define ll_set_fs_pwd set_fs_pwd
  #endif /* HAVE_SET_FS_PWD */
-@@ -634,6 +657,57 @@
- #define cpu_to_node(cpu)         0
+@@ -590,5 +613,56 @@
+                 vfs_rename(old,old_dir,new,new_dir)
  #endif
  
 +#ifdef HAVE_REGISTER_SHRINKER
@@ -318,6 +325,5 @@ Index: HEAD/lustre/include/linux/lustre_compat25.h
 +#define list_for_each_safe_rcu(a,b,c) list_for_each_rcu(b, c)
 +#endif
 +
- #ifndef abs
- static inline int abs(int x)
- {
+ #endif /* __KERNEL__ */
+ #endif /* _COMPAT25_H */
diff --git a/debian/patches/patchless_support/fix_configure_RO_cache.dpatch b/debian/patches/patchless_support/fix_configure_RO_cache.dpatch
index 8e79f46..0c5664b 100755
--- a/debian/patches/patchless_support/fix_configure_RO_cache.dpatch
+++ b/debian/patches/patchless_support/fix_configure_RO_cache.dpatch
@@ -5,11 +5,10 @@
 ## DP: Patch which will enable 2.6.24 patchless support for lustre, taken from #14250
 
 @DPATCH@
-Index: HEAD/lustre/autoconf/lustre-core.m4
-===================================================================
---- HEAD.orig/lustre/autoconf/lustre-core.m4	2008-12-05 20:38:37.000000000 +0300
-+++ HEAD/lustre/autoconf/lustre-core.m4	2008-12-05 21:22:40.000000000 +0300
-@@ -1349,6 +1349,9 @@
+diff -urNad lustre~/lustre/autoconf/lustre-core.m4 lustre/lustre/autoconf/lustre-core.m4
+--- lustre~/lustre/autoconf/lustre-core.m4	2008-12-22 10:08:29.000000000 +0100
++++ lustre/lustre/autoconf/lustre-core.m4	2008-12-22 10:08:29.000000000 +0100
+@@ -1240,6 +1240,9 @@
  ])
  ])
  
@@ -19,7 +18,7 @@ Index: HEAD/lustre/autoconf/lustre-core.m4
  # 2.6.23 have return type 'void' for unregister_blkdev
  AC_DEFUN([LC_UNREGISTER_BLKDEV_RETURN_INT],
  [AC_MSG_CHECKING([if unregister_blkdev return int])
-@@ -1493,6 +1496,26 @@
+@@ -1384,6 +1387,26 @@
  ])
  ])
  
@@ -46,7 +45,7 @@ Index: HEAD/lustre/autoconf/lustre-core.m4
  # 2.6.26 isn't export set_fs_pwd and change paramter in fs struct
  AC_DEFUN([LC_FS_STRUCT_USE_PATH],
  [AC_MSG_CHECKING([fs_struct use path structure])
-@@ -1812,6 +1835,9 @@
+@@ -1528,6 +1551,9 @@
           LC_BIO_ENDIO_2ARG
           LC_FH_TO_DENTRY
           LC_PROCFS_DELETED
@@ -54,18 +53,5 @@ Index: HEAD/lustre/autoconf/lustre-core.m4
 +         #2.6.25
 +         LC_MAPPING_CAP_WRITEBACK_DIRTY
    
-          # 2.6.26
+      # 2.6.26
           LC_FS_STRUCT_USE_PATH
-Index: HEAD/lustre/include/linux/lustre_compat25.h
-===================================================================
---- HEAD.orig/lustre/include/linux/lustre_compat25.h	2008-12-05 20:36:56.000000000 +0300
-+++ HEAD/lustre/include/linux/lustre_compat25.h	2008-12-05 21:19:27.000000000 +0300
-@@ -342,7 +342,7 @@
-         wbc.end = end;
- #endif
- 
--#ifdef mapping_cap_writeback_dirty
-+#ifdef HAVE_MAPPING_CAP_WRITEBACK_DIRTY
-         if (!mapping_cap_writeback_dirty(mapping))
- 		rc = 0;
- #else
diff --git a/debian/patches/patchless_support/fix_nfs_fid_type.dpatch b/debian/patches/patchless_support/fix_nfs_fid_type.dpatch
index ab5f1f9..222d358 100755
--- a/debian/patches/patchless_support/fix_nfs_fid_type.dpatch
+++ b/debian/patches/patchless_support/fix_nfs_fid_type.dpatch
@@ -5,11 +5,10 @@
 ## DP: Patch which will enable 2.6.24 patchless support for lustre, taken from #14250
 
 @DPATCH@
-Index: b1_8_gate/lustre/llite/llite_internal.h
-===================================================================
---- b1_8_gate.orig/lustre/llite/llite_internal.h	2008-11-20 12:05:35.000000000 +0300
-+++ b1_8_gate/lustre/llite/llite_internal.h	2008-11-27 15:38:16.000000000 +0300
-@@ -861,9 +861,6 @@
+diff -urNad lustre~/lustre/llite/llite_internal.h lustre/lustre/llite/llite_internal.h
+--- lustre~/lustre/llite/llite_internal.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/llite_internal.h	2008-12-22 10:13:32.000000000 +0100
+@@ -748,9 +748,6 @@
  /* llite/llite_nfs.c */
  extern struct export_operations lustre_export_operations;
  __u32 get_uuid2int(const char *name, int len);
@@ -19,11 +18,22 @@ Index: b1_8_gate/lustre/llite/llite_internal.h
  
  /* llite/special.c */
  extern struct inode_operations ll_special_inode_operations;
-Index: b1_8_gate/lustre/llite/llite_nfs.c
-===================================================================
---- b1_8_gate.orig/lustre/llite/llite_nfs.c	2008-11-24 13:50:31.000000000 +0300
-+++ b1_8_gate/lustre/llite/llite_nfs.c	2008-11-27 15:39:24.000000000 +0300
-@@ -68,36 +68,30 @@
+diff -urNad lustre~/lustre/llite/llite_nfs.c lustre/lustre/llite/llite_nfs.c
+--- lustre~/lustre/llite/llite_nfs.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/llite_nfs.c	2008-12-22 10:23:59.000000000 +0100
+@@ -57,11 +57,7 @@
+         return (key0 << 1);
+ }
+ 
+-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+-static int ll_nfs_test_inode(struct inode *inode, unsigned long ino, void *opaque)
+-#else
+ static int ll_nfs_test_inode(struct inode *inode, void *opaque)
+-#endif
+ {
+         struct ll_fid *iid = opaque;
+ 
+@@ -72,36 +68,30 @@
  }
  
  static struct inode * search_inode_for_lustre(struct super_block *sb,
@@ -71,7 +81,7 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
                  RETURN(ERR_PTR(rc));
          }
  
-@@ -111,27 +105,27 @@
+@@ -115,67 +105,35 @@
          RETURN(inode);
  }
  
@@ -82,6 +92,9 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
  {
          struct inode *inode;
          struct dentry *result;
+-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+-        struct list_head *lp;
+-#endif
          ENTRY;
  
 -        if (ino == 0)
@@ -91,10 +104,9 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
 -        inode = search_inode_for_lustre(sb, ino, generation, mode);
 -        if (IS_ERR(inode)) {
 +        inode = search_inode_for_lustre(sb, iid);
-+        if (IS_ERR(inode))
++        if (IS_ERR(inode)) 
                  RETURN(ERR_PTR(PTR_ERR(inode)));
 -        }
-+
          if (is_bad_inode(inode) ||
 -            (generation && inode->i_generation != generation)){
 +            (iid->generation && inode->i_generation != iid->generation)) {
@@ -107,7 +119,44 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
                  iput(inode);
                  RETURN(ERR_PTR(-ESTALE));
          }
-@@ -146,57 +140,102 @@
+ 
+-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+         result = d_alloc_anon(inode);
+         if (!result) {
+                 iput(inode);
+                 RETURN(ERR_PTR(-ENOMEM));
+         }
+-#else
+-        /* now to find a dentry.
+-         * If possible, get a well-connected one
+-         */
+-        spin_lock(&dcache_lock);
+-        for (lp = inode->i_dentry.next; lp != &inode->i_dentry ; lp=lp->next) {
+-                result = list_entry(lp,struct dentry, d_alias);
+-                lock_dentry(result);
+-                if (!(result->d_flags & DCACHE_DISCONNECTED)) {
+-                        dget_locked(result);
+-                        ll_set_dflags(result, DCACHE_REFERENCED);
+-                        unlock_dentry(result);
+-                        spin_unlock(&dcache_lock);
+-                        iput(inode);
+-                        RETURN(result);
+-                }
+-                unlock_dentry(result);
+-        }
+-        spin_unlock(&dcache_lock);
+-        result = d_alloc_root(inode);
+-        if (result == NULL) {
+-                iput(inode);
+-                RETURN(ERR_PTR(-ENOMEM));
+-        }
+-        result->d_flags |= DCACHE_DISCONNECTED;
+-
+-#endif
+         ll_set_dd(result);
+ 
+         lock_dentry(result);
+@@ -192,57 +150,98 @@
          RETURN(result);
  }
  
@@ -128,7 +177,22 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
 + */
 +static int ll_encode_fh(struct dentry *de, __u32 *fh, int *plen,
 +                        int connectable)
-+{
+ {
+-        switch (fhtype) {
+-                case 2:
+-                        if (len < 5)
+-                                break;
+-                        if (parent)
+-                                return ll_iget_for_nfs(sb, data[3], 0, data[4]);
+-                case 1:
+-                        if (len < 3)
+-                                break;
+-                        if (parent)
+-                                break;
+-                        return ll_iget_for_nfs(sb, data[0], data[1], data[2]);
+-                default: break;
+-        }
+-        return ERR_PTR(-EINVAL);
 +        struct inode *inode = de->d_inode;
 +        struct inode *parent = de->d_parent->d_inode;
 +        struct lustre_nfs_fid *nfs_fid = (void *)fh;
@@ -148,46 +212,50 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
 +        *plen = sizeof(struct lustre_nfs_fid);
 +
 +        RETURN(LUSTRE_NFS_FID);
-+}
-+
+ }
+ 
+-int ll_dentry_to_fh(struct dentry *dentry, __u32 *datap, int *lenp,
+-                    int need_parent)
 +#ifdef HAVE_FH_TO_DENTRY
 +static struct dentry *ll_fh_to_dentry(struct super_block *sb, struct fid *fid,
 +                                      int fh_len, int fh_type)
  {
--        switch (fhtype) {
--                case 2:
--                        if (len < 5)
--                                break;
--                        if (parent)
--                                return ll_iget_for_nfs(sb, data[3], 0, data[4]);
--                case 1:
--                        if (len < 3)
--                                break;
--                        if (parent)
--                                break;
--                        return ll_iget_for_nfs(sb, data[0], data[1], data[2]);
--                default: break;
--        }
--        return ERR_PTR(-EINVAL);
+-        if (*lenp < 3)
+-                return 255;
+-        *datap++ = dentry->d_inode->i_ino;
+-        *datap++ = dentry->d_inode->i_generation;
+-        *datap++ = (__u32)(S_IFMT & dentry->d_inode->i_mode);
 +        struct lustre_nfs_fid *nfs_fid = (struct lustre_nfs_fid *)fid;
-+
+ 
+-        if (*lenp == 3 || S_ISDIR(dentry->d_inode->i_mode)) {
+-                *lenp = 3;
+-                return 1;
+-        }
+-        if (dentry->d_parent) {
+-                *datap++ = dentry->d_parent->d_inode->i_ino;
+-                *datap++ = (__u32)(S_IFMT & dentry->d_parent->d_inode->i_mode);
 +        if (fh_type != LUSTRE_NFS_FID)
 +                RETURN(ERR_PTR(-EINVAL));
-+
+ 
+-                *lenp = 5;
+-                return 2;
+-        }
+-        *lenp = 3;
+-        return 1;
 +        RETURN(ll_iget_for_nfs(sb, &nfs_fid->child));
-+}
+ }
 +static struct dentry *ll_fh_to_parent(struct super_block *sb, struct fid *fid,
 +                                      int fh_len, int fh_type)
 +{
 +        struct lustre_nfs_fid *nfs_fid = (struct lustre_nfs_fid *)fid;
-+
+ 
+-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+-struct dentry *ll_get_dentry(struct super_block *sb, void *data)
 +        if (fh_type != LUSTRE_NFS_FID)
 +                RETURN(ERR_PTR(-EINVAL));
 +        RETURN(ll_iget_for_nfs(sb, &nfs_fid->parent));
- }
- 
--int ll_dentry_to_fh(struct dentry *dentry, __u32 *datap, int *lenp,
--                    int need_parent)
++}
++
 +#else
 +/*
 + * This length is counted as amount of __u32,
@@ -198,30 +266,15 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
 +                                     int (*acceptable)(void *, struct dentry *),
 +                                     void *context)
  {
--        if (*lenp < 3)
--                return 255;
--        *datap++ = dentry->d_inode->i_ino;
--        *datap++ = dentry->d_inode->i_generation;
--        *datap++ = (__u32)(S_IFMT & dentry->d_inode->i_mode);
+-        __u32 *inump = (__u32*)data;
+-        return ll_iget_for_nfs(sb, inump[0], inump[1], S_IFREG);
 +        struct lustre_nfs_fid *nfs_fid = (void *)fh;
 +        struct dentry *entry;
 +        ENTRY;
- 
--        if (*lenp == 3 || S_ISDIR(dentry->d_inode->i_mode)) {
--                *lenp = 3;
--                return 1;
--        }
--        if (dentry->d_parent) {
--                *datap++ = dentry->d_parent->d_inode->i_ino;
--                *datap++ = (__u32)(S_IFMT & dentry->d_parent->d_inode->i_mode);
++
 +        CDEBUG(D_INFO, "decoding for "LPU64" fh_len=%d fh_type=%x\n",
 +                nfs_fid->child.id, fh_len, fh_type);
- 
--                *lenp = 5;
--                return 2;
--        }
--        *lenp = 3;
--        return 1;
++
 +        if (fh_type != LUSTRE_NFS_FID)
 +                  RETURN(ERR_PTR(-ESTALE));
 +
@@ -231,25 +284,18 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
 +        RETURN(entry);
  }
  
--#if THREAD_SIZE >= 8192
-+
- struct dentry *ll_get_dentry(struct super_block *sb, void *data)
- {
--        __u32 *inump = (__u32*)data;
--        return ll_iget_for_nfs(sb, inump[0], inump[1], S_IFREG);
++struct dentry *ll_get_dentry(struct super_block *sb, void *data)
++{
 +        struct lustre_nfs_fid *fid = data;
 +        ENTRY;
 +
 +        RETURN(ll_iget_for_nfs(sb, &fid->child));
-+
- }
- 
++}
 +#endif
-+
  struct dentry *ll_get_parent(struct dentry *dchild)
  {
          struct ptlrpc_request *req = NULL;
-@@ -208,11 +247,11 @@
+@@ -254,11 +253,11 @@
          char dotdot[] = "..";
          int  rc = 0;
          ENTRY;
@@ -265,7 +311,7 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
          fid.id = (__u64)dir->i_ino;
          fid.generation = dir->i_generation;
          fid.f_type = S_IFDIR;
-@@ -223,11 +262,12 @@
+@@ -269,11 +268,12 @@
                  CERROR("failure %d inode %lu get parent\n", rc, dir->i_ino);
                  return ERR_PTR(rc);
          }
@@ -282,14 +328,14 @@ Index: b1_8_gate/lustre/llite/llite_nfs.c
  
          if (IS_ERR(result))
                  rc = PTR_ERR(result);
-@@ -236,10 +276,18 @@
+@@ -282,10 +282,18 @@
          if (rc)
                  return ERR_PTR(rc);
          RETURN(result);
 -} 
 +}
-+
  
++
 +#if THREAD_SIZE >= 8192
  struct export_operations lustre_export_operations = {
 -       .get_parent = ll_get_parent,
diff --git a/debian/patches/patchless_support_2.6.24.dpatch b/debian/patches/patchless_support_2.6.24.dpatch
index db522c9..88c756a 100755
--- a/debian/patches/patchless_support_2.6.24.dpatch
+++ b/debian/patches/patchless_support_2.6.24.dpatch
@@ -5,10 +5,10 @@
 ## DP: Patch which will enable 2.6.24 patchless support for lustre, taken from #14250
 
 @DPATCH@
-diff -urNad trunk~/lnet/autoconf/lustre-lnet.m4 trunk/lnet/autoconf/lustre-lnet.m4
---- trunk~/lnet/autoconf/lustre-lnet.m4	2008-06-26 06:43:33.000000000 +0200
-+++ trunk/lnet/autoconf/lustre-lnet.m4	2008-10-07 13:30:45.000000000 +0200
-@@ -1263,6 +1263,41 @@
+diff -urNad lustre~/lnet/autoconf/lustre-lnet.m4 lustre/lnet/autoconf/lustre-lnet.m4
+--- lustre~/lnet/autoconf/lustre-lnet.m4	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/autoconf/lustre-lnet.m4	2008-12-22 10:43:33.000000000 +0100
+@@ -1290,6 +1290,41 @@
  ])
  ])
  
@@ -50,7 +50,7 @@ diff -urNad trunk~/lnet/autoconf/lustre-lnet.m4 trunk/lnet/autoconf/lustre-lnet.
  #
  # LN_PROG_LINUX
  #
-@@ -1305,6 +1340,9 @@
+@@ -1333,6 +1368,9 @@
  LN_KMEM_CACHE
  # 2.6.23
  LN_KMEM_CACHE_CREATE_DTOR
@@ -60,10 +60,10 @@ diff -urNad trunk~/lnet/autoconf/lustre-lnet.m4 trunk/lnet/autoconf/lustre-lnet.
  ])
  
  #
-diff -urNad trunk~/lnet/include/libcfs/curproc.h trunk/lnet/include/libcfs/curproc.h
---- trunk~/lnet/include/libcfs/curproc.h	2007-02-10 01:04:30.000000000 +0100
-+++ trunk/lnet/include/libcfs/curproc.h	2008-10-07 13:30:45.000000000 +0200
-@@ -49,6 +49,11 @@
+diff -urNad lustre~/lnet/include/libcfs/curproc.h lustre/lnet/include/libcfs/curproc.h
+--- lustre~/lnet/include/libcfs/curproc.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/include/libcfs/curproc.h	2008-12-22 10:43:33.000000000 +0100
+@@ -72,6 +72,11 @@
   */
  cfs_kernel_cap_t cfs_curproc_cap_get(void);
  void cfs_curproc_cap_set(cfs_kernel_cap_t cap);
@@ -75,10 +75,10 @@ diff -urNad trunk~/lnet/include/libcfs/curproc.h trunk/lnet/include/libcfs/curpr
  #endif
  
  /* __LIBCFS_CURPROC_H__ */
-diff -urNad trunk~/lnet/include/libcfs/linux/linux-prim.h trunk/lnet/include/libcfs/linux/linux-prim.h
---- trunk~/lnet/include/libcfs/linux/linux-prim.h	2008-01-14 02:12:18.000000000 +0100
-+++ trunk/lnet/include/libcfs/linux/linux-prim.h	2008-10-07 13:30:45.000000000 +0200
-@@ -68,6 +68,17 @@
+diff -urNad lustre~/lnet/include/libcfs/linux/linux-prim.h lustre/lnet/include/libcfs/linux/linux-prim.h
+--- lustre~/lnet/include/libcfs/linux/linux-prim.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/include/libcfs/linux/linux-prim.h	2008-12-22 10:43:33.000000000 +0100
+@@ -84,6 +84,17 @@
  #endif
  #define cfs_unregister_sysctl_table(t)	unregister_sysctl_table(t)
  
@@ -96,10 +96,10 @@ diff -urNad trunk~/lnet/include/libcfs/linux/linux-prim.h trunk/lnet/include/lib
  /*
   * Symbol register
   */
-diff -urNad trunk~/lnet/klnds/gmlnd/gmlnd_module.c trunk/lnet/klnds/gmlnd/gmlnd_module.c
---- trunk~/lnet/klnds/gmlnd/gmlnd_module.c	2007-09-27 04:30:24.000000000 +0200
-+++ trunk/lnet/klnds/gmlnd/gmlnd_module.c	2008-10-07 13:30:45.000000000 +0200
-@@ -62,9 +62,37 @@
+diff -urNad lustre~/lnet/klnds/gmlnd/gmlnd_module.c lustre/lnet/klnds/gmlnd/gmlnd_module.c
+--- lustre~/lnet/klnds/gmlnd/gmlnd_module.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/gmlnd/gmlnd_module.c	2008-12-22 10:43:33.000000000 +0100
+@@ -78,9 +78,37 @@
  };
  
  #if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM
@@ -138,7 +138,7 @@ diff -urNad trunk~/lnet/klnds/gmlnd/gmlnd_module.c trunk/lnet/klnds/gmlnd/gmlnd_
                  .procname = "port",
                  .data     = &port,
                  .maxlen   = sizeof (int),
-@@ -72,7 +100,7 @@
+@@ -88,7 +116,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -147,7 +147,7 @@ diff -urNad trunk~/lnet/klnds/gmlnd/gmlnd_module.c trunk/lnet/klnds/gmlnd/gmlnd_
                  .procname = "ntx",
                  .data     = &ntx,
                  .maxlen   = sizeof (int),
-@@ -80,7 +108,7 @@
+@@ -96,7 +124,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -156,7 +156,7 @@ diff -urNad trunk~/lnet/klnds/gmlnd/gmlnd_module.c trunk/lnet/klnds/gmlnd/gmlnd_
                  .procname = "credits",
                  .data     = &credits,
                  .maxlen   = sizeof (int),
-@@ -88,7 +116,7 @@
+@@ -104,7 +132,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -165,7 +165,7 @@ diff -urNad trunk~/lnet/klnds/gmlnd/gmlnd_module.c trunk/lnet/klnds/gmlnd/gmlnd_
                  .procname = "peer_credits",
                  .data     = &peer_credits,
                  .maxlen   = sizeof (int),
-@@ -96,7 +124,7 @@
+@@ -112,7 +140,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -174,7 +174,7 @@ diff -urNad trunk~/lnet/klnds/gmlnd/gmlnd_module.c trunk/lnet/klnds/gmlnd/gmlnd_
                  .procname = "nlarge_tx_bufs",
                  .data     = &nlarge_tx_bufs,
                  .maxlen   = sizeof (int),
-@@ -104,7 +132,7 @@
+@@ -120,7 +148,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -183,7 +183,7 @@ diff -urNad trunk~/lnet/klnds/gmlnd/gmlnd_module.c trunk/lnet/klnds/gmlnd/gmlnd_
                  .procname = "nrx_small",
                  .data     = &nrx_small,
                  .maxlen   = sizeof (int),
-@@ -112,7 +140,7 @@
+@@ -128,7 +156,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -192,7 +192,7 @@ diff -urNad trunk~/lnet/klnds/gmlnd/gmlnd_module.c trunk/lnet/klnds/gmlnd/gmlnd_
                  .procname = "nrx_large",
                  .data     = &nrx_large,
                  .maxlen   = sizeof (int),
-@@ -124,7 +152,7 @@
+@@ -140,7 +168,7 @@
  
  static cfs_sysctl_table_t gmnal_top_ctl_table[] = {
          {
@@ -201,10 +201,10 @@ diff -urNad trunk~/lnet/klnds/gmlnd/gmlnd_module.c trunk/lnet/klnds/gmlnd/gmlnd_
                  .procname = "gmnal",
                  .data     = NULL,
                  .maxlen   = 0,
-diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/iiblnd_modparams.c
---- trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c	2007-09-10 17:35:53.000000000 +0200
-+++ trunk/lnet/klnds/iiblnd/iiblnd_modparams.c	2008-10-07 13:30:45.000000000 +0200
-@@ -102,9 +102,50 @@
+diff -urNad lustre~/lnet/klnds/iiblnd/iiblnd_modparams.c lustre/lnet/klnds/iiblnd/iiblnd_modparams.c
+--- lustre~/lnet/klnds/iiblnd/iiblnd_modparams.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/iiblnd/iiblnd_modparams.c	2008-12-22 10:43:33.000000000 +0100
+@@ -119,9 +119,50 @@
   * not to truncate the printout; it only needs to be the actual size of the
   * string buffer if we allow writes (and we don't) */
  
@@ -256,7 +256,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "ipif_basename",
                  .data     = &ipif_basename,
                  .maxlen   = 1024,
-@@ -112,7 +153,7 @@
+@@ -129,7 +170,7 @@
                  .proc_handler = &proc_dostring
          },
          {
@@ -265,7 +265,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "service_name",
                  .data     = &service_name,
                  .maxlen   = 1024,
-@@ -120,7 +161,7 @@
+@@ -137,7 +178,7 @@
                  .proc_handler = &proc_dostring
          },
          {
@@ -274,7 +274,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "service_number",
                  .data     = &service_number,
                  .maxlen   = sizeof(int),
-@@ -128,7 +169,7 @@
+@@ -145,7 +186,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -283,7 +283,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "min_reconnect_interval",
                  .data     = &min_reconnect_interval,
                  .maxlen   = sizeof(int),
-@@ -136,7 +177,7 @@
+@@ -153,7 +194,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -292,7 +292,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "max_reconnect_interval",
                  .data     = &max_reconnect_interval,
                  .maxlen   = sizeof(int),
-@@ -144,7 +185,7 @@
+@@ -161,7 +202,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -301,7 +301,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "concurrent_peers",
                  .data     = &concurrent_peers,
                  .maxlen   = sizeof(int),
-@@ -152,7 +193,7 @@
+@@ -169,7 +210,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -310,7 +310,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "cksum",
                  .data     = &cksum,
                  .maxlen   = sizeof(int),
-@@ -160,7 +201,7 @@
+@@ -177,7 +218,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -319,7 +319,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "timeout",
                  .data     = &timeout,
                  .maxlen   = sizeof(int),
-@@ -168,7 +209,7 @@
+@@ -185,7 +226,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -328,7 +328,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "ntx",
                  .data     = &ntx,
                  .maxlen   = sizeof(int),
-@@ -176,7 +217,7 @@
+@@ -193,7 +234,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -337,7 +337,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "credits",
                  .data     = &credits,
                  .maxlen   = sizeof(int),
-@@ -184,7 +225,7 @@
+@@ -201,7 +242,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -346,7 +346,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "peer_credits",
                  .data     = &peer_credits,
                  .maxlen   = sizeof(int),
-@@ -192,7 +233,7 @@
+@@ -209,7 +250,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -355,7 +355,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "sd_retries",
                  .data     = &sd_retries,
                  .maxlen   = sizeof(int),
-@@ -200,7 +241,7 @@
+@@ -217,7 +258,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -364,7 +364,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "keepalive",
                  .data     = &keepalive,
                  .maxlen   = sizeof(int),
-@@ -208,7 +249,7 @@
+@@ -225,7 +266,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -373,7 +373,7 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "concurrent_sends",
                  .data     = &concurrent_sends,
                  .maxlen   = sizeof(int),
-@@ -220,7 +261,7 @@
+@@ -237,7 +278,7 @@
  
  static cfs_sysctl_table_t kibnal_top_ctl_table[] = {
          {
@@ -382,13 +382,13 @@ diff -urNad trunk~/lnet/klnds/iiblnd/iiblnd_modparams.c trunk/lnet/klnds/iiblnd/
                  .procname = "openibnal",
                  .data     = NULL,
                  .maxlen   = 0,
-diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd.h trunk/lnet/klnds/o2iblnd/o2iblnd.h
---- trunk~/lnet/klnds/o2iblnd/o2iblnd.h	2008-03-14 19:18:05.000000000 +0100
-+++ trunk/lnet/klnds/o2iblnd/o2iblnd.h	2008-10-07 13:30:45.000000000 +0200
-@@ -759,3 +759,13 @@
- 
- 
- 
+diff -urNad lustre~/lnet/klnds/o2iblnd/o2iblnd.h lustre/lnet/klnds/o2iblnd/o2iblnd.h
+--- lustre~/lnet/klnds/o2iblnd/o2iblnd.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/o2iblnd/o2iblnd.h	2008-12-22 10:44:38.000000000 +0100
+@@ -773,3 +773,13 @@
+ int  kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed,
+                  unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                  unsigned int offset, unsigned int mlen, unsigned int rlen);
 +/* compat macros */
 +#ifndef HAVE_SCATTERLIST_SETPAGE
 +static inline void sg_set_page(struct scatterlist *sg, struct page *page,
@@ -399,10 +399,10 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd.h trunk/lnet/klnds/o2iblnd/o2iblnd
 +        sg->length = len;
 +}
 +#endif
-diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_cb.c trunk/lnet/klnds/o2iblnd/o2iblnd_cb.c
---- trunk~/lnet/klnds/o2iblnd/o2iblnd_cb.c	2008-03-28 08:12:34.000000000 +0100
-+++ trunk/lnet/klnds/o2iblnd/o2iblnd_cb.c	2008-10-07 13:30:45.000000000 +0200
-@@ -626,9 +626,7 @@
+diff -urNad lustre~/lnet/klnds/o2iblnd/o2iblnd_cb.c lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c
+--- lustre~/lnet/klnds/o2iblnd/o2iblnd_cb.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c	2008-12-22 10:43:33.000000000 +0100
+@@ -643,9 +643,7 @@
                  fragnob = min((int)(iov->iov_len - offset), nob);
                  fragnob = min(fragnob, (int)PAGE_SIZE - page_offset);
  
@@ -413,7 +413,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_cb.c trunk/lnet/klnds/o2iblnd/o2ib
                  sg++;
  
                  if (offset + fragnob < iov->iov_len) {
-@@ -691,11 +689,10 @@
+@@ -708,11 +706,10 @@
                  fragnob = min((int)(kiov->kiov_len - offset), nob);
  
                  memset(sg, 0, sizeof(*sg));
@@ -428,10 +428,10 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_cb.c trunk/lnet/klnds/o2iblnd/o2ib
                  offset = 0;
                  kiov++;
                  nkiov--;
-diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2iblnd/o2iblnd_modparams.c
---- trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c	2007-09-10 17:35:53.000000000 +0200
-+++ trunk/lnet/klnds/o2iblnd/o2iblnd_modparams.c	2008-10-07 13:30:45.000000000 +0200
-@@ -113,9 +113,51 @@
+diff -urNad lustre~/lnet/klnds/o2iblnd/o2iblnd_modparams.c lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c
+--- lustre~/lnet/klnds/o2iblnd/o2iblnd_modparams.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c	2008-12-22 10:43:33.000000000 +0100
+@@ -130,9 +130,51 @@
  
  static char ipif_basename_space[32];
  
@@ -484,7 +484,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "service",
                  .data     = &service,
                  .maxlen   = sizeof(int),
-@@ -123,7 +165,7 @@
+@@ -140,7 +182,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -493,7 +493,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "cksum",
                  .data     = &cksum,
                  .maxlen   = sizeof(int),
-@@ -131,7 +173,7 @@
+@@ -148,7 +190,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -502,7 +502,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "timeout",
                  .data     = &timeout,
                  .maxlen   = sizeof(int),
-@@ -139,7 +181,7 @@
+@@ -156,7 +198,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -511,7 +511,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "ntx",
                  .data     = &ntx,
                  .maxlen   = sizeof(int),
-@@ -147,7 +189,7 @@
+@@ -164,7 +206,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -520,7 +520,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "credits",
                  .data     = &credits,
                  .maxlen   = sizeof(int),
-@@ -155,7 +197,7 @@
+@@ -172,7 +214,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -529,7 +529,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "peer_credits",
                  .data     = &peer_credits,
                  .maxlen   = sizeof(int),
-@@ -163,7 +205,7 @@
+@@ -180,7 +222,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -538,7 +538,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "ipif_name",
                  .data     = ipif_basename_space,
                  .maxlen   = sizeof(ipif_basename_space),
-@@ -171,7 +213,7 @@
+@@ -188,7 +230,7 @@
                  .proc_handler = &proc_dostring
          },
          {
@@ -547,7 +547,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "retry_count",
                  .data     = &retry_count,
                  .maxlen   = sizeof(int),
-@@ -179,7 +221,7 @@
+@@ -196,7 +238,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -556,7 +556,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "rnr_retry_count",
                  .data     = &rnr_retry_count,
                  .maxlen   = sizeof(int),
-@@ -187,7 +229,7 @@
+@@ -204,7 +246,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -565,7 +565,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "keepalive",
                  .data     = &keepalive,
                  .maxlen   = sizeof(int),
-@@ -195,7 +237,7 @@
+@@ -212,7 +254,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -574,7 +574,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "concurrent_sends",
                  .data     = &concurrent_sends,
                  .maxlen   = sizeof(int),
-@@ -203,7 +245,7 @@
+@@ -220,7 +262,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -583,7 +583,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "ib_mtu",
                  .data     = &ib_mtu,
                  .maxlen   = sizeof(int),
-@@ -212,7 +254,7 @@
+@@ -229,7 +271,7 @@
          },
  #if IBLND_MAP_ON_DEMAND
          {
@@ -592,7 +592,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "fmr_pool_size",
                  .data     = &fmr_pool_size,
                  .maxlen   = sizeof(int),
-@@ -220,7 +262,7 @@
+@@ -237,7 +279,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -601,7 +601,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "fmr_flush_trigger",
                  .data     = &fmr_flush_trigger,
                  .maxlen   = sizeof(int),
-@@ -228,7 +270,7 @@
+@@ -245,7 +287,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -610,7 +610,7 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "fmr_cache",
                  .data     = &fmr_cache,
                  .maxlen   = sizeof(int),
-@@ -241,7 +283,7 @@
+@@ -258,7 +300,7 @@
  
  static cfs_sysctl_table_t kiblnd_top_ctl_table[] = {
          {
@@ -619,10 +619,10 @@ diff -urNad trunk~/lnet/klnds/o2iblnd/o2iblnd_modparams.c trunk/lnet/klnds/o2ibl
                  .procname = "o2iblnd",
                  .data     = NULL,
                  .maxlen   = 0,
-diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/openiblnd/openiblnd_modparams.c
---- trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c	2007-09-10 17:35:54.000000000 +0200
-+++ trunk/lnet/klnds/openiblnd/openiblnd_modparams.c	2008-10-07 13:30:45.000000000 +0200
-@@ -83,9 +83,42 @@
+diff -urNad lustre~/lnet/klnds/openiblnd/openiblnd_modparams.c lustre/lnet/klnds/openiblnd/openiblnd_modparams.c
+--- lustre~/lnet/klnds/openiblnd/openiblnd_modparams.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/openiblnd/openiblnd_modparams.c	2008-12-22 10:43:33.000000000 +0100
+@@ -100,9 +100,42 @@
  
  #if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM
  
@@ -666,7 +666,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "ipif_basename",
                  .data     = &ipif_basename,
                  .maxlen   = 1024,
-@@ -93,7 +126,7 @@
+@@ -110,7 +143,7 @@
                  .proc_handler = &proc_dostring
          },
          {
@@ -675,7 +675,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "n_connd",
                  .data     = &n_connd,
                  .maxlen   = sizeof(int),
-@@ -101,7 +134,7 @@
+@@ -118,7 +151,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -684,7 +684,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "min_reconnect_interval",
                  .data     = &min_reconnect_interval,
                  .maxlen   = sizeof(int),
-@@ -109,7 +142,7 @@
+@@ -126,7 +159,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -693,7 +693,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "max_reconnect_interval",
                  .data     = &max_reconnect_interval,
                  .maxlen   = sizeof(int),
-@@ -117,7 +150,7 @@
+@@ -134,7 +167,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -702,7 +702,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "concurrent_peers",
                  .data     = &concurrent_peers,
                  .maxlen   = sizeof(int),
-@@ -125,7 +158,7 @@
+@@ -142,7 +175,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -711,7 +711,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "cksum",
                  .data     = &cksum,
                  .maxlen   = sizeof(int),
-@@ -133,7 +166,7 @@
+@@ -150,7 +183,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -720,7 +720,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "timeout",
                  .data     = &timeout,
                  .maxlen   = sizeof(int),
-@@ -141,7 +174,7 @@
+@@ -158,7 +191,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -729,7 +729,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "ntx",
                  .data     = &ntx,
                  .maxlen   = sizeof(int),
-@@ -149,7 +182,7 @@
+@@ -166,7 +199,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -738,7 +738,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "credits",
                  .data     = &credits,
                  .maxlen   = sizeof(int),
-@@ -157,7 +190,7 @@
+@@ -174,7 +207,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -747,7 +747,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "peer_credits",
                  .data     = &peer_credits,
                  .maxlen   = sizeof(int),
-@@ -165,7 +198,7 @@
+@@ -182,7 +215,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -756,7 +756,7 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "keepalive",
                  .data     = &keepalive,
                  .maxlen   = sizeof(int),
-@@ -177,7 +210,7 @@
+@@ -194,7 +227,7 @@
  
  static cfs_sysctl_table_t kibnal_top_ctl_table[] = {
          {
@@ -765,10 +765,10 @@ diff -urNad trunk~/lnet/klnds/openiblnd/openiblnd_modparams.c trunk/lnet/klnds/o
                  .procname = "openibnal",
                  .data     = NULL,
                  .maxlen   = 0,
-diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/ptllnd_modparams.c
---- trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c	2007-09-27 04:30:24.000000000 +0200
-+++ trunk/lnet/klnds/ptllnd/ptllnd_modparams.c	2008-10-07 13:30:45.000000000 +0200
-@@ -134,9 +134,54 @@
+diff -urNad lustre~/lnet/klnds/ptllnd/ptllnd_modparams.c lustre/lnet/klnds/ptllnd/ptllnd_modparams.c
+--- lustre~/lnet/klnds/ptllnd/ptllnd_modparams.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/ptllnd/ptllnd_modparams.c	2008-12-22 10:43:33.000000000 +0100
+@@ -156,9 +156,54 @@
  }
  #endif
  
@@ -824,7 +824,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "ntx",
                  .data     = &ntx,
                  .maxlen   = sizeof(int),
-@@ -144,15 +189,15 @@
+@@ -166,15 +211,15 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -843,7 +843,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "max_procs_per_node",
                  .data     = &max_procs_per_node,
                  .maxlen   = sizeof(int),
-@@ -160,7 +205,7 @@
+@@ -182,7 +227,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -852,7 +852,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "checksum",
                  .data     = &checksum,
                  .maxlen   = sizeof(int),
-@@ -168,7 +213,7 @@
+@@ -190,7 +235,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -861,7 +861,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "timeout",
                  .data     = &timeout,
                  .maxlen   = sizeof(int),
-@@ -176,7 +221,7 @@
+@@ -198,7 +243,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -870,7 +870,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "portal",
                  .data     = &portal,
                  .maxlen   = sizeof(int),
-@@ -184,7 +229,7 @@
+@@ -206,7 +251,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -879,7 +879,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "pid",
                  .data     = &pid,
                  .maxlen   = sizeof(int),
-@@ -192,7 +237,7 @@
+@@ -214,7 +259,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -888,7 +888,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "rxb_npages",
                  .data     = &rxb_npages,
                  .maxlen   = sizeof(int),
-@@ -200,7 +245,7 @@
+@@ -222,7 +267,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -897,7 +897,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "credits",
                  .data     = &credits,
                  .maxlen   = sizeof(int),
-@@ -208,7 +253,7 @@
+@@ -230,7 +275,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -906,7 +906,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "peercredits",
                  .data     = &peercredits,
                  .maxlen   = sizeof(int),
-@@ -216,7 +261,7 @@
+@@ -238,7 +283,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -915,7 +915,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "max_msg_size",
                  .data     = &max_msg_size,
                  .maxlen   = sizeof(int),
-@@ -224,7 +269,7 @@
+@@ -246,7 +291,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -924,7 +924,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "peer_hash_table_size",
                  .data     = &peer_hash_table_size,
                  .maxlen   = sizeof(int),
-@@ -232,7 +277,7 @@
+@@ -254,7 +299,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -933,7 +933,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "reschedule_loops",
                  .data     = &reschedule_loops,
                  .maxlen   = sizeof(int),
-@@ -240,7 +285,7 @@
+@@ -262,7 +307,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -942,7 +942,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "ack_puts",
                  .data     = &ack_puts,
                  .maxlen   = sizeof(int),
-@@ -249,7 +294,7 @@
+@@ -271,7 +316,7 @@
          },
  #ifdef CRAY_XT3
          {
@@ -951,7 +951,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "ptltrace_on_timeout",
                  .data     = &ptltrace_on_timeout,
                  .maxlen   = sizeof(int),
-@@ -257,7 +302,7 @@
+@@ -279,7 +324,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -960,7 +960,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "ptltrace_basename",
                  .data     = ptltrace_basename_space,
                  .maxlen   = sizeof(ptltrace_basename_space),
-@@ -268,7 +313,7 @@
+@@ -290,7 +335,7 @@
  #endif
  #ifdef PJK_DEBUGGING
          {
@@ -969,7 +969,7 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "simulation_bitmap",
                  .data     = &simulation_bitmap,
                  .maxlen   = sizeof(int),
-@@ -282,7 +327,7 @@
+@@ -304,7 +349,7 @@
  
  static cfs_sysctl_table_t kptllnd_top_ctl_table[] = {
          {
@@ -978,18 +978,10 @@ diff -urNad trunk~/lnet/klnds/ptllnd/ptllnd_modparams.c trunk/lnet/klnds/ptllnd/
                  .procname = "ptllnd",
                  .data     = NULL,
                  .maxlen   = 0,
-diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/qswlnd_modparams.c
---- trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c	2007-09-10 17:35:55.000000000 +0200
-+++ trunk/lnet/klnds/qswlnd/qswlnd_modparams.c	2008-10-07 13:30:45.000000000 +0200
-@@ -1,4 +1,7 @@
- /*
-+ * -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
-+ * vim:expandtab:shiftwidth=8:tabstop=8:
-+ *
-  * Copyright (C) 2002-2004 Cluster File Systems, Inc.
-  *   Author: Eric Barton <eric at bartonsoftware.com>
-  *
-@@ -84,9 +87,45 @@
+diff -urNad lustre~/lnet/klnds/qswlnd/qswlnd_modparams.c lustre/lnet/klnds/qswlnd/qswlnd_modparams.c
+--- lustre~/lnet/klnds/qswlnd/qswlnd_modparams.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/qswlnd/qswlnd_modparams.c	2008-12-22 10:43:33.000000000 +0100
+@@ -87,9 +87,45 @@
  };
  
  #if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM
@@ -1036,7 +1028,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "tx_maxcontig",
                  .data     = &tx_maxcontig,
                  .maxlen   = sizeof (int),
-@@ -94,7 +133,7 @@
+@@ -97,7 +133,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1045,7 +1037,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "ntxmsgs",
                  .data     = &ntxmsgs,
                  .maxlen   = sizeof (int),
-@@ -102,7 +141,7 @@
+@@ -105,7 +141,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1054,7 +1046,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "credits",
                  .data     = &credits,
                  .maxlen   = sizeof (int),
-@@ -110,7 +149,7 @@
+@@ -113,7 +149,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1063,7 +1055,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "peer_credits",
                  .data     = &peer_credits,
                  .maxlen   = sizeof (int),
-@@ -118,7 +157,7 @@
+@@ -121,7 +157,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1072,7 +1064,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "nrxmsgs_large",
                  .data     = &nrxmsgs_large,
                  .maxlen   = sizeof (int),
-@@ -126,7 +165,7 @@
+@@ -129,7 +165,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1081,7 +1073,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "ep_envelopes_large",
                  .data     = &ep_envelopes_large,
                  .maxlen   = sizeof (int),
-@@ -134,7 +173,7 @@
+@@ -137,7 +173,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1090,7 +1082,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "nrxmsgs_small",
                  .data     = &nrxmsgs_small,
                  .maxlen   = sizeof (int),
-@@ -142,7 +181,7 @@
+@@ -145,7 +181,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1099,7 +1091,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "ep_envelopes_small",
                  .data     = &ep_envelopes_small,
                  .maxlen   = sizeof (int),
-@@ -150,7 +189,7 @@
+@@ -153,7 +189,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1108,7 +1100,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "optimized_puts",
                  .data     = &optimized_puts,
                  .maxlen   = sizeof (int),
-@@ -158,7 +197,7 @@
+@@ -161,7 +197,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1117,7 +1109,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "optimized_gets",
                  .data     = &optimized_gets,
                  .maxlen   = sizeof (int),
-@@ -167,7 +206,7 @@
+@@ -170,7 +206,7 @@
          },
  #if KQSW_CKSUM
          {
@@ -1126,7 +1118,7 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "inject_csum_error",
                  .data     = &inject_csum_error,
                  .maxlen   = sizeof (int),
-@@ -180,7 +219,7 @@
+@@ -183,7 +219,7 @@
  
  static cfs_sysctl_table_t kqswnal_top_ctl_table[] = {
          {
@@ -1135,10 +1127,10 @@ diff -urNad trunk~/lnet/klnds/qswlnd/qswlnd_modparams.c trunk/lnet/klnds/qswlnd/
                  .procname = "qswnal",
                  .data     = NULL,
                  .maxlen   = 0,
-diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ralnd_modparams.c
---- trunk~/lnet/klnds/ralnd/ralnd_modparams.c	2007-08-02 10:30:12.000000000 +0200
-+++ trunk/lnet/klnds/ralnd/ralnd_modparams.c	2008-10-07 13:30:45.000000000 +0200
-@@ -72,9 +72,37 @@
+diff -urNad lustre~/lnet/klnds/ralnd/ralnd_modparams.c lustre/lnet/klnds/ralnd/ralnd_modparams.c
+--- lustre~/lnet/klnds/ralnd/ralnd_modparams.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/ralnd/ralnd_modparams.c	2008-12-22 10:43:33.000000000 +0100
+@@ -89,9 +89,37 @@
  };
  
  #if CONFIG_SYSCTL && !CFS_SYSFS_MODULE_PARM
@@ -1177,7 +1169,7 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "n_connd",
                  .data     = &n_connd,
                  .maxlen   = sizeof(int),
-@@ -82,7 +110,7 @@
+@@ -99,7 +127,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1186,7 +1178,7 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "min_reconnect_interval",
                  .data     = &min_reconnect_interval,
                  .maxlen   = sizeof(int),
-@@ -90,7 +118,7 @@
+@@ -107,7 +135,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1195,7 +1187,7 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "max_reconnect_interval",
                  .data     = &max_reconnect_interval,
                  .maxlen   = sizeof(int),
-@@ -98,7 +126,7 @@
+@@ -115,7 +143,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1204,7 +1196,7 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "ntx",
                  .data     = &ntx,
                  .maxlen   = sizeof(int),
-@@ -106,7 +134,7 @@
+@@ -123,7 +151,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1213,7 +1205,7 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "credits",
                  .data     = &credits,
                  .maxlen   = sizeof(int),
-@@ -114,7 +142,7 @@
+@@ -131,7 +159,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1222,7 +1214,7 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "peer_credits",
                  .data     = &peer_credits,
                  .maxlen   = sizeof(int),
-@@ -122,7 +150,7 @@
+@@ -139,7 +167,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1231,7 +1223,7 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "fma_cq_size",
                  .data     = &fma_cq_size,
                  .maxlen   = sizeof(int),
-@@ -130,7 +158,7 @@
+@@ -147,7 +175,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1240,7 +1232,7 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "timeout",
                  .data     = &timeout,
                  .maxlen   = sizeof(int),
-@@ -138,7 +166,7 @@
+@@ -155,7 +183,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1249,7 +1241,7 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "max_immediate",
                  .data     = &max_immediate,
                  .maxlen   = sizeof(int),
-@@ -150,7 +178,7 @@
+@@ -167,7 +195,7 @@
  
  static cfs_sysctl_table_t kranal_top_ctl_table[] = {
          {
@@ -1258,10 +1250,10 @@ diff -urNad trunk~/lnet/klnds/ralnd/ralnd_modparams.c trunk/lnet/klnds/ralnd/ral
                  .procname = "ranal",
                  .data     = NULL,
                  .maxlen   = 0,
-diff -urNad trunk~/lnet/klnds/socklnd/socklnd_lib-linux.c trunk/lnet/klnds/socklnd/socklnd_lib-linux.c
---- trunk~/lnet/klnds/socklnd/socklnd_lib-linux.c	2007-09-11 21:39:20.000000000 +0200
-+++ trunk/lnet/klnds/socklnd/socklnd_lib-linux.c	2008-10-07 13:30:45.000000000 +0200
-@@ -5,197 +5,244 @@
+diff -urNad lustre~/lnet/klnds/socklnd/socklnd_lib-linux.c lustre/lnet/klnds/socklnd/socklnd_lib-linux.c
+--- lustre~/lnet/klnds/socklnd/socklnd_lib-linux.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/socklnd/socklnd_lib-linux.c	2008-12-22 10:43:33.000000000 +0100
+@@ -37,197 +37,244 @@
  #include "socklnd.h"
  
  # if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM
@@ -1585,10 +1577,10 @@ diff -urNad trunk~/lnet/klnds/socklnd/socklnd_lib-linux.c trunk/lnet/klnds/sockl
          ksocknal_tunables.ksnd_sysctl =
                  cfs_register_sysctl_table(ksocknal_top_ctl_table, 0);
  
-diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/viblnd_modparams.c
---- trunk~/lnet/klnds/viblnd/viblnd_modparams.c	2007-09-27 04:30:24.000000000 +0200
-+++ trunk/lnet/klnds/viblnd/viblnd_modparams.c	2008-10-07 13:30:45.000000000 +0200
-@@ -125,6 +125,56 @@
+diff -urNad lustre~/lnet/klnds/viblnd/viblnd_modparams.c lustre/lnet/klnds/viblnd/viblnd_modparams.c
+--- lustre~/lnet/klnds/viblnd/viblnd_modparams.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/klnds/viblnd/viblnd_modparams.c	2008-12-22 10:43:33.000000000 +0100
+@@ -142,6 +142,56 @@
  #endif
  };
  
@@ -1645,7 +1637,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
  #if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM
  
  static char hca_basename_space[32];
-@@ -132,7 +182,7 @@
+@@ -149,7 +199,7 @@
  
  static cfs_sysctl_table_t kibnal_ctl_table[] = {
          {
@@ -1654,7 +1646,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "service_number",
                  .data     = &service_number,
                  .maxlen   = sizeof(int),
-@@ -140,7 +190,7 @@
+@@ -157,7 +207,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1663,7 +1655,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "min_reconnect_interval",
                  .data     = &min_reconnect_interval,
                  .maxlen   = sizeof(int),
-@@ -148,7 +198,7 @@
+@@ -165,7 +215,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1672,7 +1664,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "max_reconnect_interval",
                  .data     = &max_reconnect_interval,
                  .maxlen   = sizeof(int),
-@@ -156,7 +206,7 @@
+@@ -173,7 +223,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1681,7 +1673,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "concurrent_peers",
                  .data     = &concurrent_peers,
                  .maxlen   = sizeof(int),
-@@ -164,7 +214,7 @@
+@@ -181,7 +231,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1690,7 +1682,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "cksum",
                  .data     = &cksum,
                  .maxlen   = sizeof(int),
-@@ -172,7 +222,7 @@
+@@ -189,7 +239,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1699,7 +1691,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "timeout",
                  .data     = &timeout,
                  .maxlen   = sizeof(int),
-@@ -180,7 +230,7 @@
+@@ -197,7 +247,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1708,7 +1700,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "ntx",
                  .data     = &ntx,
                  .maxlen   = sizeof(int),
-@@ -188,7 +238,7 @@
+@@ -205,7 +255,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1717,7 +1709,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "credits",
                  .data     = &credits,
                  .maxlen   = sizeof(int),
-@@ -196,7 +246,7 @@
+@@ -213,7 +263,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1726,7 +1718,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "peer_credits",
                  .data     = &peer_credits,
                  .maxlen   = sizeof(int),
-@@ -204,7 +254,7 @@
+@@ -221,7 +271,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1735,7 +1727,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "arp_retries",
                  .data     = &arp_retries,
                  .maxlen   = sizeof(int),
-@@ -212,7 +262,7 @@
+@@ -229,7 +279,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1744,7 +1736,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "hca_basename",
                  .data     = hca_basename_space,
                  .maxlen   = sizeof(hca_basename_space),
-@@ -220,7 +270,7 @@
+@@ -237,7 +287,7 @@
                  .proc_handler = &proc_dostring
          },
          {
@@ -1753,7 +1745,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "ipif_basename",
                  .data     = ipif_basename_space,
                  .maxlen   = sizeof(ipif_basename_space),
-@@ -228,7 +278,7 @@
+@@ -245,7 +295,7 @@
                  .proc_handler = &proc_dostring
          },
          {
@@ -1762,7 +1754,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "local_ack_timeout",
                  .data     = &local_ack_timeout,
                  .maxlen   = sizeof(int),
-@@ -236,7 +286,7 @@
+@@ -253,7 +303,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1771,7 +1763,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "retry_cnt",
                  .data     = &retry_cnt,
                  .maxlen   = sizeof(int),
-@@ -244,7 +294,7 @@
+@@ -261,7 +311,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1780,7 +1772,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "rnr_cnt",
                  .data     = &rnr_cnt,
                  .maxlen   = sizeof(int),
-@@ -252,7 +302,7 @@
+@@ -269,7 +319,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1789,7 +1781,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "rnr_nak_timer",
                  .data     = &rnr_nak_timer,
                  .maxlen   = sizeof(int),
-@@ -260,7 +310,7 @@
+@@ -277,7 +327,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1798,7 +1790,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "keepalive",
                  .data     = &keepalive,
                  .maxlen   = sizeof(int),
-@@ -268,7 +318,7 @@
+@@ -285,7 +335,7 @@
                  .proc_handler = &proc_dointvec
          },
          {
@@ -1807,7 +1799,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "concurrent_sends",
                  .data     = &concurrent_sends,
                  .maxlen   = sizeof(int),
-@@ -277,7 +327,7 @@
+@@ -294,7 +344,7 @@
          },
  #if IBNAL_USE_FMR
          {
@@ -1816,7 +1808,7 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "fmr_remaps",
                  .data     = &fmr_remaps,
                  .maxlen   = sizeof(int),
-@@ -290,7 +340,7 @@
+@@ -307,7 +357,7 @@
  
  static cfs_sysctl_table_t kibnal_top_ctl_table[] = {
          {
@@ -1825,10 +1817,10 @@ diff -urNad trunk~/lnet/klnds/viblnd/viblnd_modparams.c trunk/lnet/klnds/viblnd/
                  .procname = "vibnal",
                  .data     = NULL,
                  .maxlen   = 0,
-diff -urNad trunk~/lnet/libcfs/linux/linux-curproc.c trunk/lnet/libcfs/linux/linux-curproc.c
---- trunk~/lnet/libcfs/linux/linux-curproc.c	2007-02-10 01:04:59.000000000 +0100
-+++ trunk/lnet/libcfs/linux/linux-curproc.c	2008-10-07 13:30:45.000000000 +0200
-@@ -109,6 +109,19 @@
+diff -urNad lustre~/lnet/libcfs/linux/linux-curproc.c lustre/lnet/libcfs/linux/linux-curproc.c
+--- lustre~/lnet/libcfs/linux/linux-curproc.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/libcfs/linux/linux-curproc.c	2008-12-22 10:43:33.000000000 +0100
+@@ -131,6 +131,19 @@
          current->cap_effective = cap;
  }
  
@@ -1848,7 +1840,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-curproc.c trunk/lnet/libcfs/linux/lin
  EXPORT_SYMBOL(cfs_curproc_uid);
  EXPORT_SYMBOL(cfs_curproc_pid);
  EXPORT_SYMBOL(cfs_curproc_gid);
-@@ -121,7 +134,7 @@
+@@ -143,7 +156,7 @@
  EXPORT_SYMBOL(cfs_curproc_is_in_groups);
  EXPORT_SYMBOL(cfs_curproc_cap_get);
  EXPORT_SYMBOL(cfs_curproc_cap_set);
@@ -1857,10 +1849,10 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-curproc.c trunk/lnet/libcfs/linux/lin
  /*
   * Local variables:
   * c-indentation-style: "K&R"
-diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-proc.c
---- trunk~/lnet/libcfs/linux/linux-proc.c	2008-03-25 13:23:25.000000000 +0100
-+++ trunk/lnet/libcfs/linux/linux-proc.c	2008-10-07 13:30:45.000000000 +0200
-@@ -61,7 +61,8 @@
+diff -urNad lustre~/lnet/libcfs/linux/linux-proc.c lustre/lnet/libcfs/linux/linux-proc.c
+--- lustre~/lnet/libcfs/linux/linux-proc.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/libcfs/linux/linux-proc.c	2008-12-22 10:43:33.000000000 +0100
+@@ -79,7 +79,8 @@
  static cfs_sysctl_table_header_t *lnet_table_header = NULL;
  extern char lnet_upcall[1024];
  
@@ -1870,7 +1862,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
  enum {
          PSDEV_DEBUG = 1,          /* control debugging */
          PSDEV_SUBSYSTEM_DEBUG,    /* control debugging */
-@@ -80,8 +81,27 @@
+@@ -98,8 +99,27 @@
          PSDEV_LNET_DAEMON_FILE,   /* spool kernel debug buffer to file */
          PSDEV_LNET_DEBUG_MB,      /* size of debug buffer */
  };
@@ -1899,7 +1891,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
  proc_call_handler(void *data, int write, 
                    loff_t *ppos, void *buffer, size_t *lenp, 
                    int (*handler)(void *data, int write,
-@@ -100,17 +120,7 @@
+@@ -118,17 +138,7 @@
          }
          return 0;
  }
@@ -1918,7 +1910,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
  
  static int __proc_dobitmasks(void *data, int write, 
                               loff_t pos, void *buffer, int nob)
-@@ -182,11 +192,12 @@
+@@ -200,11 +210,12 @@
  
  DECLARE_PROC_HANDLER(proc_daemon_file)
  
@@ -1932,7 +1924,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
                  int  len = snprintf(tmpstr, sizeof(tmpstr), "%d",
                                      trace_get_debug_mb());
  
-@@ -301,7 +312,8 @@
+@@ -319,7 +330,8 @@
                  .data     = &libcfs_debug,
                  .maxlen   = sizeof(int),
                  .mode     = 0644,
@@ -1942,7 +1934,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
          },
          {
                  .ctl_name = PSDEV_SUBSYSTEM_DEBUG,
-@@ -309,7 +321,8 @@
+@@ -327,7 +339,8 @@
                  .data     = &libcfs_subsystem_debug,
                  .maxlen   = sizeof(int),
                  .mode     = 0644,
@@ -1952,7 +1944,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
          },
          {
                  .ctl_name = PSDEV_PRINTK,
-@@ -317,7 +330,8 @@
+@@ -335,7 +348,8 @@
                  .data     = &libcfs_printk,
                  .maxlen   = sizeof(int),
                  .mode     = 0644,
@@ -1962,7 +1954,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
          },
          {
                  .ctl_name = PSDEV_CONSOLE_RATELIMIT,
-@@ -325,30 +339,36 @@
+@@ -343,30 +357,36 @@
                  .data     = &libcfs_console_ratelimit,
                  .maxlen   = sizeof(int),
                  .mode     = 0644,
@@ -2004,8 +1996,8 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
          {
                  .ctl_name = PSDEV_DEBUG_PATH,
                  .procname = "debug_path",
-@@ -356,8 +376,8 @@
-                 .maxlen   = sizeof(debug_file_path),
+@@ -374,8 +394,8 @@
+                 .maxlen   = sizeof(debug_file_path_arr),
                  .mode     = 0644,
                  .proc_handler = &proc_dostring,
 +                .strategy = &sysctl_string,
@@ -2014,7 +2006,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
          {
                  .ctl_name = PSDEV_LNET_UPCALL,
                  .procname = "upcall",
-@@ -365,6 +385,7 @@
+@@ -383,6 +403,7 @@
                  .maxlen   = sizeof(lnet_upcall),
                  .mode     = 0644,
                  .proc_handler = &proc_dostring,
@@ -2022,7 +2014,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
          },
          {
                  .ctl_name = PSDEV_LNET_MEMUSED,
-@@ -372,7 +393,8 @@
+@@ -390,7 +411,8 @@
                  .data     = (int *)&libcfs_kmemory.counter,
                  .maxlen   = sizeof(int),
                  .mode     = 0444,
@@ -2032,7 +2024,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
          },
          {
                  .ctl_name = PSDEV_LNET_CATASTROPHE,
-@@ -380,7 +402,8 @@
+@@ -398,7 +420,8 @@
                  .data     = &libcfs_catastrophe,
                  .maxlen   = sizeof(int),
                  .mode     = 0444,
@@ -2042,7 +2034,7 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
          },
          {
                  .ctl_name = PSDEV_LNET_PANIC_ON_LBUG,
-@@ -388,39 +411,52 @@
+@@ -406,39 +429,52 @@
                  .data     = &libcfs_panic_on_lbug,
                  .maxlen   = sizeof(int),
                  .mode     = 0644,
@@ -2102,9 +2094,9 @@ diff -urNad trunk~/lnet/libcfs/linux/linux-proc.c trunk/lnet/libcfs/linux/linux-
  };
  
  int insert_proc(void)
-diff -urNad trunk~/lnet/lnet/router_proc.c trunk/lnet/lnet/router_proc.c
---- trunk~/lnet/lnet/router_proc.c	2007-11-29 14:35:39.000000000 +0100
-+++ trunk/lnet/lnet/router_proc.c	2008-10-07 13:30:45.000000000 +0200
+diff -urNad lustre~/lnet/lnet/router_proc.c lustre/lnet/lnet/router_proc.c
+--- lustre~/lnet/lnet/router_proc.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lnet/lnet/router_proc.c	2008-12-22 10:43:33.000000000 +0100
 @@ -32,12 +32,13 @@
  
  /* this is really lnet_proc.c */
@@ -2146,10 +2138,10 @@ diff -urNad trunk~/lnet/lnet/router_proc.c trunk/lnet/lnet/router_proc.c
  }
  
  #else
-diff -urNad trunk~/lustre/autoconf/lustre-core.m4 trunk/lustre/autoconf/lustre-core.m4
---- trunk~/lustre/autoconf/lustre-core.m4	2008-06-26 05:05:21.000000000 +0200
-+++ trunk/lustre/autoconf/lustre-core.m4	2008-10-07 13:30:45.000000000 +0200
-@@ -1064,27 +1064,90 @@
+diff -urNad lustre~/lustre/autoconf/lustre-core.m4 lustre/lustre/autoconf/lustre-core.m4
+--- lustre~/lustre/autoconf/lustre-core.m4	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/autoconf/lustre-core.m4	2008-12-22 10:51:42.000000000 +0100
+@@ -1105,20 +1105,79 @@
  ])
  ])
  
@@ -2199,6 +2191,7 @@ diff -urNad trunk~/lustre/autoconf/lustre-core.m4 trunk/lustre/autoconf/lustre-c
  AC_DEFUN([LC_PAGE_CHECKED],
  [AC_MSG_CHECKING([kernel has PageChecked and SetPageChecked])
  LB_LINUX_TRY_COMPILE([
+-        #include <linux/mm.h>
 -        #include <linux/page-flags.h>
 +       #include <linux/page-flags.h>
 +       #include <linux/autoconf.h>
@@ -2231,19 +2224,15 @@ diff -urNad trunk~/lustre/autoconf/lustre-core.m4 trunk/lustre/autoconf/lustre-c
          AC_MSG_RESULT(yes)
          AC_DEFINE(HAVE_PAGE_CHECKED, 1,
                    [does kernel have PageChecked and SetPageChecked])
--],[
-+  ],[
+@@ -1126,6 +1185,7 @@
          AC_MSG_RESULT(NO)
-+  ])
  ])
  ])
++])
  
-+
-+
  AC_DEFUN([LC_EXPORT_TRUNCATE_COMPLETE],
  [LB_CHECK_SYMBOL_EXPORT([truncate_complete_page],
- [mm/truncate.c],[
-@@ -1230,11 +1293,156 @@
+@@ -1271,11 +1331,156 @@
  
  # 2.6.23 extract nfs export related data into exportfs.h
  AC_DEFUN([LC_HAVE_EXPORTFS_H],
@@ -2405,12 +2394,7 @@ diff -urNad trunk~/lustre/autoconf/lustre-core.m4 trunk/lustre/autoconf/lustre-c
  ])
  
  #
-@@ -1327,10 +1535,24 @@
- 	  
- 	  # 2.6.22
-           LC_INVALIDATE_BDEV_2ARG
-+
-           # 2.6.23
+@@ -1377,6 +1582,19 @@
            LC_UNREGISTER_BLKDEV_RETURN_INT
            LC_KERNEL_SPLICE_READ
            LC_HAVE_EXPORTFS_H
@@ -2430,7 +2414,7 @@ diff -urNad trunk~/lustre/autoconf/lustre-core.m4 trunk/lustre/autoconf/lustre-c
  ])
  
  #
-@@ -1511,6 +1733,7 @@
+@@ -1609,6 +1827,7 @@
          ],[
                  AC_MSG_RESULT([no]) 
          ])
@@ -2438,10 +2422,10 @@ diff -urNad trunk~/lustre/autoconf/lustre-core.m4 trunk/lustre/autoconf/lustre-c
  ],[
          AC_MSG_RESULT([no])
  ])
-diff -urNad trunk~/lustre/include/liblustre.h trunk/lustre/include/liblustre.h
---- trunk~/lustre/include/liblustre.h	2008-04-24 09:07:44.000000000 +0200
-+++ trunk/lustre/include/liblustre.h	2008-10-07 13:30:45.000000000 +0200
-@@ -718,11 +718,13 @@
+diff -urNad lustre~/lustre/include/liblustre.h lustre/lustre/include/liblustre.h
+--- lustre~/lustre/include/liblustre.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/include/liblustre.h	2008-12-22 10:43:33.000000000 +0100
+@@ -743,11 +743,13 @@
  struct _cap_struct;
  typedef struct _cap_struct *cap_t;
  typedef int cap_value_t;
@@ -2455,7 +2439,7 @@ diff -urNad trunk~/lustre/include/liblustre.h trunk/lustre/include/liblustre.h
  typedef enum {
      CAP_CLEAR=0,
      CAP_SET=1
-@@ -732,11 +734,33 @@
+@@ -757,11 +759,33 @@
  #define CAP_DAC_READ_SEARCH     2
  #define CAP_FOWNER              3
  #define CAP_FSETID              4
@@ -2490,10 +2474,10 @@ diff -urNad trunk~/lustre/include/liblustre.h trunk/lustre/include/liblustre.h
  static inline void libcfs_run_lbug_upcall(char *file, const char *fn,
                                             const int l){}
  
-diff -urNad trunk~/lustre/include/linux/lustre_compat25.h trunk/lustre/include/linux/lustre_compat25.h
---- trunk~/lustre/include/linux/lustre_compat25.h	2008-03-27 04:32:33.000000000 +0100
-+++ trunk/lustre/include/linux/lustre_compat25.h	2008-10-07 13:30:45.000000000 +0200
-@@ -43,6 +43,28 @@
+diff -urNad lustre~/lustre/include/linux/lustre_compat25.h lustre/lustre/include/linux/lustre_compat25.h
+--- lustre~/lustre/include/linux/lustre_compat25.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/include/linux/lustre_compat25.h	2008-12-22 10:43:33.000000000 +0100
+@@ -57,6 +57,28 @@
  #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14) */
  
  #ifndef HAVE_SET_FS_PWD
@@ -2522,7 +2506,7 @@ diff -urNad trunk~/lustre/include/linux/lustre_compat25.h trunk/lustre/include/l
  static inline void ll_set_fs_pwd(struct fs_struct *fs, struct vfsmount *mnt,
                  struct dentry *dentry)
  {
-@@ -61,6 +83,7 @@
+@@ -75,6 +97,7 @@
                  mntput(old_pwdmnt);
          }
  }
@@ -2530,8 +2514,8 @@ diff -urNad trunk~/lustre/include/linux/lustre_compat25.h trunk/lustre/include/l
  #else
  #define ll_set_fs_pwd set_fs_pwd
  #endif /* HAVE_SET_FS_PWD */
-@@ -538,5 +561,56 @@
- #define ll_invalidate_bdev(a,b)         invalidate_bdev((a))
+@@ -590,5 +613,56 @@
+                 vfs_rename(old,old_dir,new,new_dir)
  #endif
  
 +#ifdef HAVE_REGISTER_SHRINKER
@@ -2587,10 +2571,10 @@ diff -urNad trunk~/lustre/include/linux/lustre_compat25.h trunk/lustre/include/l
 +
  #endif /* __KERNEL__ */
  #endif /* _COMPAT25_H */
-diff -urNad trunk~/lustre/include/linux/lvfs.h trunk/lustre/include/linux/lvfs.h
---- trunk~/lustre/include/linux/lvfs.h	2007-07-26 08:24:10.000000000 +0200
-+++ trunk/lustre/include/linux/lvfs.h	2008-10-07 13:30:45.000000000 +0200
-@@ -47,7 +47,7 @@
+diff -urNad lustre~/lustre/include/linux/lvfs.h lustre/lustre/include/linux/lvfs.h
+--- lustre~/lustre/include/linux/lvfs.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/include/linux/lvfs.h	2008-12-22 10:43:33.000000000 +0100
+@@ -64,7 +64,7 @@
          struct upcall_cache_entry *luc_uce;
          __u32 luc_fsuid;
          __u32 luc_fsgid;
@@ -2599,10 +2583,10 @@ diff -urNad trunk~/lustre/include/linux/lvfs.h trunk/lustre/include/linux/lvfs.h
          __u32 luc_suppgid1;
          __u32 luc_suppgid2;
          __u32 luc_umask;
-diff -urNad trunk~/lustre/include/lprocfs_status.h trunk/lustre/include/lprocfs_status.h
---- trunk~/lustre/include/lprocfs_status.h	2008-04-18 06:47:52.000000000 +0200
-+++ trunk/lustre/include/lprocfs_status.h	2008-10-07 13:30:45.000000000 +0200
-@@ -481,6 +481,8 @@
+diff -urNad lustre~/lustre/include/lprocfs_status.h lustre/lustre/include/lprocfs_status.h
+--- lustre~/lustre/include/lprocfs_status.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/include/lprocfs_status.h	2008-12-22 10:43:33.000000000 +0100
+@@ -509,6 +509,8 @@
  #define LPROCFS_EXIT()            do {  \
          up_read(&_lprocfs_lock);        \
  } while(0)
@@ -2611,9 +2595,9 @@ diff -urNad trunk~/lustre/include/lprocfs_status.h trunk/lustre/include/lprocfs_
  #define LPROCFS_ENTRY_AND_CHECK(dp) do {        \
          typecheck(struct proc_dir_entry *, dp); \
          LPROCFS_ENTRY();                        \
-@@ -489,6 +491,13 @@
-                 return -ENODEV;                 \
-         }                                       \
+@@ -523,6 +525,13 @@
+ #define LPROCFS_WRITE_EXIT()      do {  \
+         up_write(&_lprocfs_lock);       \
  } while(0)
 +#define LPROCFS_CHECK_DELETED(dp) ((dp)->deleted)
 +#else
@@ -2623,12 +2607,12 @@ diff -urNad trunk~/lustre/include/lprocfs_status.h trunk/lustre/include/lprocfs_
 +#endif
 +
  
- /* You must use these macros when you want to refer to 
+ /* You must use these macros when you want to refer to
   * the import in a client obd_device for a lprocfs entry */
-diff -urNad trunk~/lustre/include/lustre_log.h trunk/lustre/include/lustre_log.h
---- trunk~/lustre/include/lustre_log.h	2007-08-24 13:12:48.000000000 +0200
-+++ trunk/lustre/include/lustre_log.h	2008-10-07 13:30:45.000000000 +0200
-@@ -218,14 +218,6 @@
+diff -urNad lustre~/lustre/include/lustre_log.h lustre/lustre/include/lustre_log.h
+--- lustre~/lustre/include/lustre_log.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/include/lustre_log.h	2008-12-22 10:43:33.000000000 +0100
+@@ -238,14 +238,6 @@
          void                    *llog_proc_cb;
  };
  
@@ -2643,7 +2627,7 @@ diff -urNad trunk~/lustre/include/lustre_log.h trunk/lustre/include/lustre_log.h
  static inline void llog_gen_init(struct llog_ctxt *ctxt)
  {
          struct obd_device *obd = ctxt->loc_exp->exp_obd;
-@@ -329,7 +321,7 @@
+@@ -349,7 +341,7 @@
                                   int numcookies, void *buf, int idx)
  {
          struct llog_operations *lop;
@@ -2652,7 +2636,7 @@ diff -urNad trunk~/lustre/include/lustre_log.h trunk/lustre/include/lustre_log.h
          int rc, buflen;
          ENTRY;
  
-@@ -346,10 +338,10 @@
+@@ -366,10 +358,10 @@
                  buflen = rec->lrh_len;
          LASSERT(size_round(buflen) == buflen);
  
@@ -2666,7 +2650,7 @@ diff -urNad trunk~/lustre/include/lustre_log.h trunk/lustre/include/lustre_log.h
          RETURN(rc);
  }
  
-@@ -445,7 +437,7 @@
+@@ -465,7 +457,7 @@
                                struct llog_logid *logid, char *name)
  {
          struct llog_operations *lop;
@@ -2675,7 +2659,7 @@ diff -urNad trunk~/lustre/include/lustre_log.h trunk/lustre/include/lustre_log.h
          int rc;
          ENTRY;
  
-@@ -455,10 +447,10 @@
+@@ -475,10 +467,10 @@
          if (lop->lop_create == NULL)
                  RETURN(-EOPNOTSUPP);
  
@@ -2688,10 +2672,10 @@ diff -urNad trunk~/lustre/include/lustre_log.h trunk/lustre/include/lustre_log.h
          RETURN(rc);
  }
  
-diff -urNad trunk~/lustre/include/lustre_mds.h trunk/lustre/include/lustre_mds.h
---- trunk~/lustre/include/lustre_mds.h	2008-04-24 06:41:00.000000000 +0200
-+++ trunk/lustre/include/lustre_mds.h	2008-10-07 13:30:45.000000000 +0200
-@@ -177,7 +177,7 @@
+diff -urNad lustre~/lustre/include/lustre_mds.h lustre/lustre/include/lustre_mds.h
+--- lustre~/lustre/include/lustre_mds.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/include/lustre_mds.h	2008-12-22 10:43:33.000000000 +0100
+@@ -209,7 +209,7 @@
                   struct page *, struct ptlrpc_request **);
  int mdc_create(struct obd_export *exp, struct mdc_op_data *op_data,
                 const void *data, int datalen, int mode, __u32 uid, __u32 gid,
@@ -2700,10 +2684,10 @@ diff -urNad trunk~/lustre/include/lustre_mds.h trunk/lustre/include/lustre_mds.h
  int mdc_unlink(struct obd_export *exp, struct mdc_op_data *data,
                 struct ptlrpc_request **request);
  int mdc_link(struct obd_export *exp, struct mdc_op_data *data,
-diff -urNad trunk~/lustre/llite/file.c trunk/lustre/llite/file.c
---- trunk~/lustre/llite/file.c	2008-10-07 13:30:45.000000000 +0200
-+++ trunk/lustre/llite/file.c	2008-10-07 13:30:45.000000000 +0200
-@@ -1681,9 +1681,17 @@
+diff -urNad lustre~/lustre/llite/file.c lustre/lustre/llite/file.c
+--- lustre~/lustre/llite/file.c	2008-12-22 10:43:30.000000000 +0100
++++ lustre/lustre/llite/file.c	2008-12-22 10:43:33.000000000 +0100
+@@ -1820,9 +1820,17 @@
  /*
   * Send file content (through pagecache) somewhere with helper
   */
@@ -2724,7 +2708,7 @@ diff -urNad trunk~/lustre/llite/file.c trunk/lustre/llite/file.c
  {
          struct inode *inode = in_file->f_dentry->d_inode;
          struct ll_inode_info *lli = ll_i2info(inode);
-@@ -1692,8 +1700,7 @@
+@@ -1831,8 +1839,7 @@
          struct ll_lock_tree_node *node;
          struct ost_lvb lvb;
          struct ll_ra_read bead;
@@ -2734,7 +2718,7 @@ diff -urNad trunk~/lustre/llite/file.c trunk/lustre/llite/file.c
          __u64 kms;
          ENTRY;
          CDEBUG(D_VFSTRACE, "VFS Op:inode=%lu/%u(%p),size="LPSZ",offset=%Ld\n",
-@@ -1709,8 +1716,14 @@
+@@ -1848,8 +1855,14 @@
          in_file->f_ra.ra_pages = 0;
  
          /* File with no objects, nothing to lock */
@@ -2751,7 +2735,7 @@ diff -urNad trunk~/lustre/llite/file.c trunk/lustre/llite/file.c
  
          node = ll_node_from_inode(inode, *ppos, *ppos + count - 1, LCK_PR);
          if (IS_ERR(node))
-@@ -1750,8 +1763,8 @@
+@@ -1889,8 +1902,8 @@
                  /* A glimpse is necessary to determine whether we return a
                   * short read (B) or some zeroes at the end of the buffer (C) */
                  ll_inode_size_unlock(inode, 1);
@@ -2762,7 +2746,7 @@ diff -urNad trunk~/lustre/llite/file.c trunk/lustre/llite/file.c
                          goto out;
          } else {
                  /* region is within kms and, hence, within real file size (A) */
-@@ -1767,14 +1780,17 @@
+@@ -1906,14 +1919,17 @@
          ll_ra_read_in(in_file, &bead);
          /* BUG: 5972 */
          file_accessed(in_file);
@@ -2783,7 +2767,7 @@ diff -urNad trunk~/lustre/llite/file.c trunk/lustre/llite/file.c
  
  static int ll_lov_recreate_obj(struct inode *inode, struct file *file,
                                 unsigned long arg)
-@@ -2916,7 +2932,9 @@
+@@ -3179,7 +3195,9 @@
          .release        = ll_file_release,
          .mmap           = ll_file_mmap,
          .llseek         = ll_file_seek,
@@ -2794,16 +2778,7 @@ diff -urNad trunk~/lustre/llite/file.c trunk/lustre/llite/file.c
          .sendfile       = ll_file_sendfile,
  #endif
          .fsync          = ll_fsync,
-@@ -2932,7 +2950,7 @@
-         .write          = ll_file_write,
- #ifdef HAVE_FILE_WRITEV
-         .writev         = ll_file_writev,
--#else   
-+#else
-         .aio_write      = ll_file_aio_write,
- #endif
-         .ioctl          = ll_file_ioctl,
-@@ -2940,7 +2958,9 @@
+@@ -3203,7 +3221,9 @@
          .release        = ll_file_release,
          .mmap           = ll_file_mmap,
          .llseek         = ll_file_seek,
@@ -2814,16 +2789,7 @@ diff -urNad trunk~/lustre/llite/file.c trunk/lustre/llite/file.c
          .sendfile       = ll_file_sendfile,
  #endif
          .fsync          = ll_fsync,
-@@ -2961,7 +2981,7 @@
-         .write          = ll_file_write,
- #ifdef HAVE_FILE_WRITEV
-         .writev         = ll_file_writev,
--#else   
-+#else
-         .aio_write      = ll_file_aio_write,
- #endif
-         .ioctl          = ll_file_ioctl,
-@@ -2969,7 +2989,9 @@
+@@ -3232,7 +3252,9 @@
          .release        = ll_file_release,
          .mmap           = ll_file_mmap,
          .llseek         = ll_file_seek,
@@ -2834,10 +2800,10 @@ diff -urNad trunk~/lustre/llite/file.c trunk/lustre/llite/file.c
          .sendfile       = ll_file_sendfile,
  #endif
          .fsync          = ll_fsync,
-diff -urNad trunk~/lustre/llite/llite_internal.h trunk/lustre/llite/llite_internal.h
---- trunk~/lustre/llite/llite_internal.h	2008-04-26 16:30:54.000000000 +0200
-+++ trunk/lustre/llite/llite_internal.h	2008-10-07 13:30:45.000000000 +0200
-@@ -681,9 +681,6 @@
+diff -urNad lustre~/lustre/llite/llite_internal.h lustre/lustre/llite/llite_internal.h
+--- lustre~/lustre/llite/llite_internal.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/llite_internal.h	2008-12-22 10:43:33.000000000 +0100
+@@ -748,9 +748,6 @@
  /* llite/llite_nfs.c */
  extern struct export_operations lustre_export_operations;
  __u32 get_uuid2int(const char *name, int len);
@@ -2847,10 +2813,10 @@ diff -urNad trunk~/lustre/llite/llite_internal.h trunk/lustre/llite/llite_intern
  
  /* llite/special.c */
  extern struct inode_operations ll_special_inode_operations;
-diff -urNad trunk~/lustre/llite/llite_lib.c trunk/lustre/llite/llite_lib.c
---- trunk~/lustre/llite/llite_lib.c	2008-05-28 21:15:40.000000000 +0200
-+++ trunk/lustre/llite/llite_lib.c	2008-10-07 13:30:45.000000000 +0200
-@@ -1347,7 +1347,7 @@
+diff -urNad lustre~/lustre/llite/llite_lib.c lustre/lustre/llite/llite_lib.c
+--- lustre~/lustre/llite/llite_lib.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/llite_lib.c	2008-12-22 10:43:33.000000000 +0100
+@@ -1373,7 +1373,7 @@
                  rc = vmtruncate(inode, new_size);
                  clear_bit(LLI_F_SRVLOCK, &lli->lli_flags);
                  if (rc != 0) {
@@ -2859,10 +2825,10 @@ diff -urNad trunk~/lustre/llite/llite_lib.c trunk/lustre/llite/llite_lib.c
                          ll_inode_size_unlock(inode, 0);
                  }
          }
-diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
---- trunk~/lustre/llite/llite_mmap.c	2008-03-27 04:32:37.000000000 +0100
-+++ trunk/lustre/llite/llite_mmap.c	2008-10-07 13:32:03.000000000 +0200
-@@ -38,9 +38,6 @@
+diff -urNad lustre~/lustre/llite/llite_mmap.c lustre/lustre/llite/llite_mmap.c
+--- lustre~/lustre/llite/llite_mmap.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/llite_mmap.c	2008-12-22 11:45:45.000000000 +0100
+@@ -53,9 +53,6 @@
  #include <linux/mm.h>
  #include <linux/pagemap.h>
  #include <linux/smp_lock.h>
@@ -2872,28 +2838,17 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
  
  #define DEBUG_SUBSYSTEM S_LLITE
  
-@@ -66,18 +63,11 @@
-         struct inode           *lt_inode;
- };
- 
-+static struct vm_operations_struct ll_file_vm_ops;
-+
+@@ -84,8 +81,7 @@
  int lt_get_mmap_locks(struct ll_lock_tree *tree,
                        unsigned long addr, size_t count);
  
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
 -struct page *ll_nopage(struct vm_area_struct *vma, unsigned long address,
 -                       int *type);
--#else
--
--struct page *ll_nopage(struct vm_area_struct *vma, unsigned long address,
--                       int unused);
--#endif
--
++static struct vm_operations_struct ll_file_vm_ops;
+ 
  struct ll_lock_tree_node * ll_node_from_inode(struct inode *inode, __u64 start,
                                                __u64 end, ldlm_mode_t mode)
- {
-@@ -302,7 +292,7 @@
+@@ -311,7 +307,7 @@
          spin_lock(&mm->page_table_lock);
          for(vma = find_vma(mm, addr);
              vma != NULL && vma->vm_start < (addr + count); vma = vma->vm_next) {
@@ -2902,32 +2857,25 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
                      vma->vm_flags & VM_SHARED) {
                          ret = vma;
                          break;
-@@ -350,53 +340,28 @@
+@@ -363,44 +359,30 @@
+         }
          RETURN(0);
  }
- 
--/* FIXME: there is a pagefault race goes as follow (only 2.4):
-- * 1. A user process on node A accesses a portion of a mapped file,
-- *    resulting in a page fault.  The pagefault handler invokes the
-- *    ll_nopage function, which reads the page into memory.
-- * 2. A user process on node B writes to the same portion of the file
-- *    (either via mmap or write()), that cause node A to cancel the
-- *    lock and truncate the page.
-- * 3. Node A then executes the rest of do_no_page(), entering the
-- *    now-invalid page into the PTEs.
+-/**
+- * Page fault handler.
 - *
-- * Make the whole do_no_page as a hook to cover both the page cache
-- * and page mapping installing with dlm lock would eliminate this race.
+- * \param vma - is virtiual area struct related to page fault
+- * \param address - address when hit fault
+- * \param type - of fault
 - *
-- * In 2.6, the truncate_count of address_space can cover this race.
+- * \return allocated and filled page for address
+- * \retval NOPAGE_SIGBUS if page not exist on this address
+- * \retval NOPAGE_OOM not have memory for allocate new page
 - */
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
 -struct page *ll_nopage(struct vm_area_struct *vma, unsigned long address,
 -                       int *type)
--#else
--struct page *ll_nopage(struct vm_area_struct *vma, unsigned long address,
--                       int type /* unused */)
--#endif
++
++
 +static int ll_get_extent_lock(struct vm_area_struct *vma, unsigned long pgoff,
 +                             int *save_flags, struct lustre_handle *lockh)
  {
@@ -2946,14 +2894,13 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
 -        int rc = 0;
 -        ENTRY;
 +        unsigned long size;
-+
  
          if (lli->lli_smd == NULL) {
                  CERROR("No lsm on fault?\n");
--                RETURN(NULL);
+-                RETURN(NOPAGE_SIGBUS);
 +                RETURN(0);
          }
--
+ 
          ll_clear_file_contended(inode);
  
          /* start and end the lock on the first and last bytes in the page */
@@ -2962,7 +2909,7 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
  
          CDEBUG(D_MMAP, "nopage vma %p inode %lu, locking ["LPU64", "LPU64"]\n",
                 vma, inode->i_ino, policy.l_extent.start, policy.l_extent.end);
-@@ -404,26 +369,23 @@
+@@ -408,26 +390,24 @@
          mode = mode_from_vma(vma);
          old_mtime = LTIME_S(inode->i_mtime);
  
@@ -2970,7 +2917,7 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
 -        rc = ll_extent_lock(fd, inode, lsm, mode, &policy,
 -                            &lockh, LDLM_FL_CBPENDING | LDLM_FL_NO_LRU);
 -        if (rc != 0)
--                RETURN(NULL);
+-                RETURN(NOPAGE_SIGBUS);
 +        if(ll_extent_lock(fd, inode, lli->lli_smd, mode, &policy,
 +                           lockh, LDLM_FL_CBPENDING | LDLM_FL_NO_LRU))
 +                RETURN(0);
@@ -2987,7 +2934,7 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
  
 -        pgoff = ((address - vma->vm_start) >> CFS_PAGE_SHIFT) + vma->vm_pgoff;
          size = (kms + CFS_PAGE_SIZE - 1) >> CFS_PAGE_SHIFT;
--
+ 
          if (pgoff >= size) {
 -                lov_stripe_unlock(lsm);
 +                lov_stripe_unlock(lli->lli_smd);
@@ -2996,7 +2943,7 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
          } else {
                  /* XXX change inode size without ll_inode_size_lock() held!
                   *     there is a race condition with truncate path. (see
-@@ -445,38 +407,85 @@
+@@ -449,29 +429,59 @@
                          CDEBUG(D_INODE, "ino=%lu, updating i_size %llu\n",
                                 inode->i_ino, i_size_read(inode));
                  }
@@ -3057,15 +3004,20 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
 +        if(!ll_get_extent_lock(vma, pgoff, &save_fags, &lockh))
 +                RETURN(NOPAGE_SIGBUS);
 +
++
++
          page = filemap_nopage(vma, address, type);
-         LL_CDEBUG_PAGE(D_PAGE, page, "got addr %lu type %lx\n", address,
-                        (long)type);
+         if (page != NOPAGE_SIGBUS && page != NOPAGE_OOM)
+                 LL_CDEBUG_PAGE(D_PAGE, page, "got addr %lu type %lx\n", address,
+@@ -480,12 +490,30 @@
+                 CDEBUG(D_PAGE, "got addr %lu type %lx - SIGBUS\n",  address,
+                                (long)type);
+ 
 -        vma->vm_flags &= ~VM_RAND_READ;
 -        vma->vm_flags |= (rand_read | seq_read);
++        ll_put_extent_lock(vma, save_fags, &lockh);
  
 -        ll_extent_unlock(fd, inode, ll_i2info(inode)->lli_smd, mode, &lockh);
-+        ll_put_extent_lock(vma, save_fags, &lockh);
-+
          RETURN(page);
  }
 +#else
@@ -3091,107 +3043,30 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
  
  /* To avoid cancel the locks covering mmapped region for lock cache pressure,
   * we track the mapped vma count by lli_mmap_cnt.
-@@ -542,9 +551,12 @@
+@@ -551,6 +579,7 @@
          }
  }
  
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
 +#ifndef HAVE_VM_OP_FAULT
  #ifndef HAVE_FILEMAP_POPULATE
--static int (*filemap_populate)(struct vm_area_struct * area, unsigned long address, unsigned long len, pgprot_t prot, unsigned long pgoff, int nonblock);
-+static int (*filemap_populate)(struct vm_area_struct * area, 
-+                               unsigned long address, unsigned long len, 
-+                               pgprot_t prot, unsigned long pgoff, 
-+                               int nonblock);
+ static int (*filemap_populate)(struct vm_area_struct * area, unsigned long address, unsigned long len, pgprot_t prot, unsigned long pgoff, int nonblock);
  #endif
- static int ll_populate(struct vm_area_struct *area, unsigned long address,
-                        unsigned long len, pgprot_t prot, unsigned long pgoff,
-@@ -566,47 +578,6 @@
- 
- }
- 
--#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
--/* [first, last] are the byte offsets affected.
-- * vm_{start, end} are user addresses of the first byte of the mapping and
-- *      the next byte beyond it
-- * vm_pgoff is the page index of the first byte in the mapping */
--static void teardown_vmas(struct vm_area_struct *vma, __u64 first,
--                          __u64 last)
--{
--        unsigned long address, len;
--        for (; vma ; vma = vma->vm_next_share) {
--                if (last >> CFS_PAGE_SHIFT < vma->vm_pgoff)
--                        continue;
--                if (first >> CFS_PAGE_SHIFT >= (vma->vm_pgoff +
--                    ((vma->vm_end - vma->vm_start) >> CFS_PAGE_SHIFT)))
--                        continue;
--
--                /* XXX in case of unmap the cow pages of a running file,
--                 * don't unmap these private writeable mapping here!
--                 * though that will break private mappping a little.
--                 *
--                 * the clean way is to check the mapping of every page
--                 * and just unmap the non-cow pages, just like
--                 * unmap_mapping_range() with even_cow=0 in kernel 2.6.
--                 */
--                if (!(vma->vm_flags & VM_SHARED) &&
--                    (vma->vm_flags & VM_WRITE))
--                        continue;
--
--                address = max((unsigned long)vma->vm_start,
--                              file_to_user(vma, first));
--                len = min((unsigned long)vma->vm_end,
--                          file_to_user(vma, last) + 1) - address;
--
--                VMA_DEBUG(vma, "zapping vma [first="LPU64" last="LPU64" "
--                          "address=%ld len=%ld]\n", first, last, address, len);
--                LASSERT(len > 0);
--                ll_zap_page_range(vma, address, len);
--        }
--}
--#endif
--
- /* XXX put nice comment here.  talk about __free_pte -> dirty pages and
-  * nopage's reference passing to the pte */
- int ll_teardown_mmaps(struct address_space *mapping, __u64 first, __u64 last)
-@@ -615,32 +586,21 @@
-         ENTRY;
- 
-         LASSERTF(last > first, "last "LPU64" first "LPU64"\n", last, first);
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
-         if (mapping_mapped(mapping)) {
-                 rc = 0;
-                 unmap_mapping_range(mapping, first + CFS_PAGE_SIZE - 1,
-                                     last - first + 1, 0);
-         }
--#else
--        spin_lock(&mapping->i_shared_lock);
--        if (mapping->i_mmap != NULL) {
--                rc = 0;
--                teardown_vmas(mapping->i_mmap, first, last);
--        }
--        if (mapping->i_mmap_shared != NULL) {
--                rc = 0;
--                teardown_vmas(mapping->i_mmap_shared, first, last);
--        }
--        spin_unlock(&mapping->i_shared_lock);
--#endif
-         RETURN(rc);
+@@ -591,10 +620,13 @@
  }
  
  static struct vm_operations_struct ll_file_vm_ops = {
 -        .nopage         = ll_nopage,
          .open           = ll_vm_open,
          .close          = ll_vm_close,
--#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
+         .populate       = ll_populate,
 +#ifdef HAVE_VM_OP_FAULT
 +        .fault          = ll_fault,
 +#else
 +        .nopage         = ll_nopage,
-         .populate       = ll_populate,
- #endif
  };
-@@ -653,8 +613,7 @@
+ 
+ int ll_file_mmap(struct file * file, struct vm_area_struct * vma)
+@@ -605,8 +637,7 @@
          ll_stats_ops_tally(ll_i2sbi(file->f_dentry->d_inode), LPROC_LL_MAP, 1);
          rc = generic_file_mmap(file, vma);
          if (rc == 0) {
@@ -3201,10 +3076,10 @@ diff -urNad trunk~/lustre/llite/llite_mmap.c trunk/lustre/llite/llite_mmap.c
                  if (!filemap_populate)
                          filemap_populate = vma->vm_ops->populate;
  #endif
-diff -urNad trunk~/lustre/llite/llite_nfs.c trunk/lustre/llite/llite_nfs.c
---- trunk~/lustre/llite/llite_nfs.c	2008-04-24 06:41:05.000000000 +0200
-+++ trunk/lustre/llite/llite_nfs.c	2008-10-07 13:30:45.000000000 +0200
-@@ -40,11 +40,7 @@
+diff -urNad lustre~/lustre/llite/llite_nfs.c lustre/lustre/llite/llite_nfs.c
+--- lustre~/lustre/llite/llite_nfs.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/llite_nfs.c	2008-12-22 10:43:33.000000000 +0100
+@@ -57,11 +57,7 @@
          return (key0 << 1);
  }
  
@@ -3216,7 +3091,7 @@ diff -urNad trunk~/lustre/llite/llite_nfs.c trunk/lustre/llite/llite_nfs.c
  {
          struct ll_fid *iid = opaque;
  
-@@ -56,12 +52,10 @@
+@@ -73,12 +69,10 @@
  
  static struct inode * search_inode_for_lustre(struct super_block *sb,
                                                unsigned long ino,
@@ -3230,7 +3105,7 @@ diff -urNad trunk~/lustre/llite/llite_nfs.c trunk/lustre/llite/llite_nfs.c
          unsigned long valid = 0;
          int eadatalen = 0, rc;
          struct inode *inode = NULL;
-@@ -72,17 +66,15 @@
+@@ -89,17 +83,15 @@
  
          if (inode)
                  RETURN(inode);
@@ -3256,7 +3131,7 @@ diff -urNad trunk~/lustre/llite/llite_nfs.c trunk/lustre/llite/llite_nfs.c
          if (rc) {
                  CERROR("failure %d inode %lu\n", rc, ino);
                  RETURN(ERR_PTR(rc));
-@@ -98,20 +90,23 @@
+@@ -115,20 +107,23 @@
          RETURN(inode);
  }
  
@@ -3287,7 +3162,7 @@ diff -urNad trunk~/lustre/llite/llite_nfs.c trunk/lustre/llite/llite_nfs.c
          if (IS_ERR(inode)) {
                  RETURN(ERR_PTR(PTR_ERR(inode)));
          }
-@@ -125,40 +120,24 @@
+@@ -142,40 +137,24 @@
                  iput(inode);
                  RETURN(ERR_PTR(-ESTALE));
          }
@@ -3340,7 +3215,7 @@ diff -urNad trunk~/lustre/llite/llite_nfs.c trunk/lustre/llite/llite_nfs.c
          ll_set_dd(result);
  
          lock_dentry(result);
-@@ -173,80 +152,63 @@
+@@ -190,80 +169,63 @@
          }
  
          RETURN(result);
@@ -3451,7 +3326,7 @@ diff -urNad trunk~/lustre/llite/llite_nfs.c trunk/lustre/llite/llite_nfs.c
                                0, 0, &req);
          if (rc) {
                  CERROR("failure %d inode %lu get parent\n", rc, dir->i_ino);
-@@ -256,8 +218,9 @@
+@@ -273,8 +235,9 @@
         
          LASSERT((body->valid & OBD_MD_FLGENER) && (body->valid & OBD_MD_FLID));
          
@@ -3463,7 +3338,7 @@ diff -urNad trunk~/lustre/llite/llite_nfs.c trunk/lustre/llite/llite_nfs.c
          if (IS_ERR(result))
                  rc = PTR_ERR(result);
  
-@@ -268,7 +231,11 @@
+@@ -285,7 +248,11 @@
  } 
  
  struct export_operations lustre_export_operations = {
@@ -3478,10 +3353,10 @@ diff -urNad trunk~/lustre/llite/llite_nfs.c trunk/lustre/llite/llite_nfs.c
  #endif
 +        .get_parent = ll_get_parent,
 +};
-diff -urNad trunk~/lustre/llite/lloop.c trunk/lustre/llite/lloop.c
---- trunk~/lustre/llite/lloop.c	2007-11-21 13:11:10.000000000 +0100
-+++ trunk/lustre/llite/lloop.c	2008-10-07 13:30:45.000000000 +0200
-@@ -299,7 +299,7 @@
+diff -urNad lustre~/lustre/llite/lloop.c lustre/lustre/llite/lloop.c
+--- lustre~/lustre/llite/lloop.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/lloop.c	2008-12-22 10:43:33.000000000 +0100
+@@ -312,7 +312,7 @@
          if (atomic_dec_and_test(&lo->lo_pending))
                  up(&lo->lo_bh_mutex);
  out:
@@ -3490,7 +3365,7 @@ diff -urNad trunk~/lustre/llite/lloop.c trunk/lustre/llite/lloop.c
          return 0;
  inactive:
          spin_unlock_irq(&lo->lo_lock);
-@@ -321,7 +321,7 @@
+@@ -334,7 +334,7 @@
  {
          int ret;
          ret = do_bio_filebacked(lo, bio);
@@ -3499,10 +3374,10 @@ diff -urNad trunk~/lustre/llite/lloop.c trunk/lustre/llite/lloop.c
  }
  
  /*
-diff -urNad trunk~/lustre/llite/namei.c trunk/lustre/llite/namei.c
---- trunk~/lustre/llite/namei.c	2008-04-24 06:41:06.000000000 +0200
-+++ trunk/lustre/llite/namei.c	2008-10-07 13:30:45.000000000 +0200
-@@ -879,7 +879,7 @@
+diff -urNad lustre~/lustre/llite/namei.c lustre/lustre/llite/namei.c
+--- lustre~/lustre/llite/namei.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/namei.c	2008-12-22 10:43:33.000000000 +0100
+@@ -901,7 +901,7 @@
  
          err = mdc_create(sbi->ll_mdc_exp, &op_data, tgt, tgt_len,
                           mode, current->fsuid, current->fsgid,
@@ -3511,10 +3386,10 @@ diff -urNad trunk~/lustre/llite/namei.c trunk/lustre/llite/namei.c
          if (err)
                  GOTO(err_exit, err);
  
-diff -urNad trunk~/lustre/llite/rw.c trunk/lustre/llite/rw.c
---- trunk~/lustre/llite/rw.c	2008-04-03 05:23:43.000000000 +0200
-+++ trunk/lustre/llite/rw.c	2008-10-07 13:30:45.000000000 +0200
-@@ -161,7 +161,7 @@
+diff -urNad lustre~/lustre/llite/rw.c lustre/lustre/llite/rw.c
+--- lustre~/lustre/llite/rw.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/rw.c	2008-12-22 10:43:33.000000000 +0100
+@@ -186,7 +186,7 @@
                  GOTO(out_unlock, 0);
          }
  
@@ -3523,10 +3398,10 @@ diff -urNad trunk~/lustre/llite/rw.c trunk/lustre/llite/rw.c
  
          if (!srvlock) {
                  struct ost_lvb lvb;
-diff -urNad trunk~/lustre/llite/symlink.c trunk/lustre/llite/symlink.c
---- trunk~/lustre/llite/symlink.c	2007-10-25 04:14:35.000000000 +0200
-+++ trunk/lustre/llite/symlink.c	2008-10-07 13:30:45.000000000 +0200
-@@ -156,8 +156,12 @@
+diff -urNad lustre~/lustre/llite/symlink.c lustre/lustre/llite/symlink.c
+--- lustre~/lustre/llite/symlink.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/llite/symlink.c	2008-12-22 10:43:33.000000000 +0100
+@@ -171,8 +171,12 @@
          rc = ll_readlink_internal(inode, &request, &symname);
          up(&lli->lli_size_sem);
          if (rc) {
@@ -3539,10 +3414,10 @@ diff -urNad trunk~/lustre/llite/symlink.c trunk/lustre/llite/symlink.c
                  GOTO(out, rc);
          }
  
-diff -urNad trunk~/lustre/lvfs/lvfs_linux.c trunk/lustre/lvfs/lvfs_linux.c
---- trunk~/lustre/lvfs/lvfs_linux.c	2007-10-30 06:25:57.000000000 +0100
-+++ trunk/lustre/lvfs/lvfs_linux.c	2008-10-07 13:30:45.000000000 +0200
-@@ -133,10 +133,10 @@
+diff -urNad lustre~/lustre/lvfs/lvfs_linux.c lustre/lustre/lvfs/lvfs_linux.c
+--- lustre~/lustre/lvfs/lvfs_linux.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/lvfs/lvfs_linux.c	2008-12-22 10:43:33.000000000 +0100
+@@ -148,10 +148,10 @@
          */
  
          save->fs = get_fs();
@@ -3556,7 +3431,7 @@ diff -urNad trunk~/lustre/lvfs/lvfs_linux.c trunk/lustre/lvfs/lvfs_linux.c
          save->luc.luc_umask = current->fs->umask;
  
          LASSERT(save->pwd);
-@@ -147,11 +147,11 @@
+@@ -162,11 +162,11 @@
          if (uc) {
                  save->luc.luc_fsuid = current->fsuid;
                  save->luc.luc_fsgid = current->fsgid;
@@ -3570,7 +3445,7 @@ diff -urNad trunk~/lustre/lvfs/lvfs_linux.c trunk/lustre/lvfs/lvfs_linux.c
                  push_group_info(save, uc->luc_uce);
          }
          current->fs->umask = 0; /* umask already applied on client */
-@@ -190,10 +190,10 @@
+@@ -205,10 +205,10 @@
                 atomic_read(&current->fs->pwdmnt->mnt_count));
          */
  
@@ -3585,7 +3460,7 @@ diff -urNad trunk~/lustre/lvfs/lvfs_linux.c trunk/lustre/lvfs/lvfs_linux.c
  
          set_fs(saved->fs);
          ll_set_fs_pwd(current->fs, saved->pwdmnt, saved->pwd);
-@@ -204,7 +204,7 @@
+@@ -219,7 +219,7 @@
          if (uc) {
                  current->fsuid = saved->luc.luc_fsuid;
                  current->fsgid = saved->luc.luc_fsgid;
@@ -3594,10 +3469,10 @@ diff -urNad trunk~/lustre/lvfs/lvfs_linux.c trunk/lustre/lvfs/lvfs_linux.c
                  pop_group_info(saved, uc->luc_uce);
          }
  
-diff -urNad trunk~/lustre/mdc/mdc_internal.h trunk/lustre/mdc/mdc_internal.h
---- trunk~/lustre/mdc/mdc_internal.h	2008-01-17 14:00:30.000000000 +0100
-+++ trunk/lustre/mdc/mdc_internal.h	2008-10-07 13:30:45.000000000 +0200
-@@ -28,7 +28,7 @@
+diff -urNad lustre~/lustre/mdc/mdc_internal.h lustre/lustre/mdc/mdc_internal.h
+--- lustre~/lustre/mdc/mdc_internal.h	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/mdc/mdc_internal.h	2008-12-22 10:43:33.000000000 +0100
+@@ -60,7 +60,7 @@
                        void *ea2, int ea2len);
  void mdc_create_pack(struct ptlrpc_request *req, int offset,
                       struct mdc_op_data *op_data, const void *data, int datalen,
@@ -3606,10 +3481,10 @@ diff -urNad trunk~/lustre/mdc/mdc_internal.h trunk/lustre/mdc/mdc_internal.h
                       __u64 rdev);
  void mdc_open_pack(struct ptlrpc_request *req, int offset,
                     struct mdc_op_data *op_data, __u32 mode, __u64 rdev,
-diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
---- trunk~/lustre/mdc/mdc_lib.c	2008-03-26 07:22:04.000000000 +0100
-+++ trunk/lustre/mdc/mdc_lib.c	2008-10-07 13:30:45.000000000 +0200
-@@ -46,7 +46,7 @@
+diff -urNad lustre~/lustre/mdc/mdc_lib.c lustre/lustre/mdc/mdc_lib.c
+--- lustre~/lustre/mdc/mdc_lib.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/mdc/mdc_lib.c	2008-12-22 10:43:33.000000000 +0100
+@@ -58,7 +58,7 @@
          b = lustre_msg_buf(req->rq_reqmsg, offset, sizeof(*b));
          b->fsuid = current->fsuid;
          b->fsgid = current->fsgid;
@@ -3618,7 +3493,7 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
          b->fid1 = *fid;
          b->size = pg_off;                       /* !! */
          b->suppgid = -1;
-@@ -59,7 +59,7 @@
+@@ -71,7 +71,7 @@
  
          b->fsuid = current->fsuid;
          b->fsgid = current->fsgid;
@@ -3627,7 +3502,7 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
  }
  
  void mdc_pack_req_body(struct ptlrpc_request *req, int offset,
-@@ -78,7 +78,7 @@
+@@ -90,7 +90,7 @@
  /* packing of MDS records */
  void mdc_create_pack(struct ptlrpc_request *req, int offset,
                       struct mdc_op_data *op_data, const void *data, int datalen,
@@ -3636,7 +3511,7 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
                       __u64 rdev)
  {
          struct mds_rec_create *rec;
-@@ -88,7 +88,7 @@
+@@ -100,7 +100,7 @@
          rec->cr_opcode = REINT_CREATE;
          rec->cr_fsuid = uid;
          rec->cr_fsgid = gid;
@@ -3645,7 +3520,7 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
          rec->cr_fid = op_data->fid1;
          memset(&rec->cr_replayfid, 0, sizeof(rec->cr_replayfid));
          rec->cr_mode = mode;
-@@ -156,7 +156,7 @@
+@@ -168,7 +168,7 @@
          rec->cr_opcode = REINT_OPEN;
          rec->cr_fsuid = current->fsuid;
          rec->cr_fsgid = current->fsgid;
@@ -3654,7 +3529,7 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
          rec->cr_fid = op_data->fid1;
          memset(&rec->cr_replayfid, 0, sizeof(rec->cr_replayfid));
          rec->cr_mode = mode;
-@@ -230,7 +230,7 @@
+@@ -242,7 +242,7 @@
          rec->sa_opcode = REINT_SETATTR;
          rec->sa_fsuid = current->fsuid;
          rec->sa_fsgid = current->fsgid;
@@ -3663,7 +3538,7 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
          rec->sa_fid = data->fid1;
          rec->sa_suppgid = -1;
  
-@@ -274,7 +274,7 @@
+@@ -286,7 +286,7 @@
          rec->ul_opcode = REINT_UNLINK;
          rec->ul_fsuid = current->fsuid;
          rec->ul_fsgid = current->fsgid;
@@ -3672,7 +3547,7 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
          rec->ul_mode = data->create_mode;
          rec->ul_suppgid = data->suppgids[0];
          rec->ul_fid1 = data->fid1;
-@@ -297,7 +297,7 @@
+@@ -309,7 +309,7 @@
          rec->lk_opcode = REINT_LINK;
          rec->lk_fsuid = current->fsuid;
          rec->lk_fsgid = current->fsgid;
@@ -3681,7 +3556,7 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
          rec->lk_suppgid1 = data->suppgids[0];
          rec->lk_suppgid2 = data->suppgids[1];
          rec->lk_fid1 = data->fid1;
-@@ -321,7 +321,7 @@
+@@ -333,7 +333,7 @@
          rec->rn_opcode = REINT_RENAME;
          rec->rn_fsuid = current->fsuid;
          rec->rn_fsgid = current->fsgid;
@@ -3690,7 +3565,7 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
          rec->rn_suppgid1 = data->suppgids[0];
          rec->rn_suppgid2 = data->suppgids[1];
          rec->rn_fid1 = data->fid1;
-@@ -345,7 +345,7 @@
+@@ -357,7 +357,7 @@
  
          b->fsuid = current->fsuid;
          b->fsgid = current->fsgid;
@@ -3699,10 +3574,10 @@ diff -urNad trunk~/lustre/mdc/mdc_lib.c trunk/lustre/mdc/mdc_lib.c
          b->valid = valid;
          b->flags = flags | MDS_BFLAG_EXT_FLAGS;
          /* skip MDS_BFLAG_EXT_FLAGS to verify the "client < 1.4.7" case 
-diff -urNad trunk~/lustre/mdc/mdc_reint.c trunk/lustre/mdc/mdc_reint.c
---- trunk~/lustre/mdc/mdc_reint.c	2008-02-18 13:43:18.000000000 +0100
-+++ trunk/lustre/mdc/mdc_reint.c	2008-10-07 13:30:45.000000000 +0200
-@@ -164,7 +164,7 @@
+diff -urNad lustre~/lustre/mdc/mdc_reint.c lustre/lustre/mdc/mdc_reint.c
+--- lustre~/lustre/mdc/mdc_reint.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/mdc/mdc_reint.c	2008-12-22 10:43:33.000000000 +0100
+@@ -176,7 +176,7 @@
  
  int mdc_create(struct obd_export *exp, struct mdc_op_data *op_data,
                 const void *data, int datalen, int mode, __u32 uid, __u32 gid,
@@ -3711,10 +3586,10 @@ diff -urNad trunk~/lustre/mdc/mdc_reint.c trunk/lustre/mdc/mdc_reint.c
  {
          CFS_LIST_HEAD(cancels);
          struct obd_device *obd = exp->exp_obd;
-diff -urNad trunk~/lustre/mgc/mgc_request.c trunk/lustre/mgc/mgc_request.c
---- trunk~/lustre/mgc/mgc_request.c	2008-04-24 13:54:15.000000000 +0200
-+++ trunk/lustre/mgc/mgc_request.c	2008-10-07 13:30:45.000000000 +0200
-@@ -395,7 +395,7 @@
+diff -urNad lustre~/lustre/mgc/mgc_request.c lustre/lustre/mgc/mgc_request.c
+--- lustre~/lustre/mgc/mgc_request.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/mgc/mgc_request.c	2008-12-22 10:43:33.000000000 +0100
+@@ -410,7 +410,7 @@
          obd->obd_lvfs_ctxt.fs = get_ds();
  
          push_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
@@ -3723,10 +3598,10 @@ diff -urNad trunk~/lustre/mgc/mgc_request.c trunk/lustre/mgc/mgc_request.c
                                  strlen(MOUNT_CONFIGS_DIR));
          pop_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
          if (IS_ERR(dentry)) {
-diff -urNad trunk~/lustre/obdclass/linux/linux-module.c trunk/lustre/obdclass/linux/linux-module.c
---- trunk~/lustre/obdclass/linux/linux-module.c	2007-11-13 21:43:24.000000000 +0100
-+++ trunk/lustre/obdclass/linux/linux-module.c	2008-10-07 13:30:45.000000000 +0200
-@@ -386,7 +386,7 @@
+diff -urNad lustre~/lustre/obdclass/linux/linux-module.c lustre/lustre/obdclass/linux/linux-module.c
+--- lustre~/lustre/obdclass/linux/linux-module.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/obdclass/linux/linux-module.c	2008-12-22 10:43:33.000000000 +0100
+@@ -418,7 +418,7 @@
          ENTRY;
  
          obd_sysctl_init();
@@ -3735,10 +3610,10 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-module.c trunk/lustre/obdclass/li
          if (!proc_lustre_root) {
                  printk(KERN_ERR
                         "LustreError: error registering /proc/fs/lustre\n");
-diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/linux/linux-sysctl.c
---- trunk~/lustre/obdclass/linux/linux-sysctl.c	2008-03-25 13:25:41.000000000 +0100
-+++ trunk/lustre/obdclass/linux/linux-sysctl.c	2008-10-07 13:30:45.000000000 +0200
-@@ -48,7 +48,9 @@
+diff -urNad lustre~/lustre/obdclass/linux/linux-sysctl.c lustre/lustre/obdclass/linux/linux-sysctl.c
+--- lustre~/lustre/obdclass/linux/linux-sysctl.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/obdclass/linux/linux-sysctl.c	2008-12-22 12:38:41.000000000 +0100
+@@ -59,7 +59,9 @@
  
  cfs_sysctl_table_header_t *obd_table_header = NULL;
  
@@ -3749,9 +3624,9 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
  
  enum {
          OBD_FAIL_LOC = 1,       /* control test failures instrumentation */
-@@ -65,6 +67,22 @@
-         OBD_DEBUG_PEER_ON_TIMEOUT, /* dump peer debug when RPC times out */
+@@ -77,6 +79,22 @@
          OBD_ALLOC_FAIL_RATE,    /* memory allocation random failure rate */
+         OBD_MAX_DIRTY_PAGES,    /* maximum dirty pages */
  };
 +#else
 +#define CTL_LUSTRE              CTL_UNNUMBERED
@@ -3772,22 +3647,17 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
  
  int LL_PROC_PROTO(proc_fail_loc)
  {
-@@ -98,11 +116,12 @@
-                 return 0;
-         }
-         if (write) {
--                rc = lprocfs_write_frac_helper(buffer, *lenp, 
-+                rc = lprocfs_write_frac_helper(buffer, *lenp,
-                                                (unsigned int*)table->data,
-                                                OBD_ALLOC_FAIL_MULT);
+@@ -123,7 +141,8 @@
+                         obd_max_dirty_pages = 4 << (20 - CFS_PAGE_SHIFT);
+                 }
          } else {
 -                char buf[21];
 +                char buf[22];
-+		struct ctl_table dummy;
-                 int  len;
++            		struct ctl_table dummy;
+                 int len;
  
                  len = lprocfs_read_frac_helper(buf, sizeof(buf),
-@@ -111,7 +130,13 @@
+@@ -132,7 +151,13 @@
                  if (len > *lenp)
                          len = *lenp;
                  buf[len] = '\0';
@@ -3802,7 +3672,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
                          return -EFAULT;
                  *lenp = len;
          }
-@@ -122,100 +147,117 @@
+@@ -175,98 +200,107 @@
  
  int LL_PROC_PROTO(proc_memory_alloc)
  {
@@ -3820,11 +3690,10 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
                  *lenp = 0;
                  return 0;
          }
--        if (write) 
+-        if (write)
 -                return -EINVAL;
--        
+ 
 -        len = snprintf(buf, sizeof(buf), LPU64"\n", obd_memory_sum());
-+
 +        dummy = *table;
 +        dummy.data = buf;
 +        dummy.maxlen = sizeof(buf);
@@ -3840,7 +3709,6 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
 -        *lenp = len;
 -        *ppos += *lenp;
 -        return 0;
-+
 +        return ll_proc_dostring(&dummy,write,filp,buffer,lenp, ppos);
  }
  
@@ -3848,7 +3716,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
  {
 -        char buf[22];
          int len;
-+	char buf[22];
++      	char buf[22];
 +        struct ctl_table dummy;
          DECLARE_LL_PROC_PPOS_DECL;
  
@@ -3862,12 +3730,11 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          }
 -        if (write)
 -                return -EINVAL;
- 
--        len = snprintf(buf, sizeof(buf), LPU64"\n", obd_pages_sum());
 +        dummy = *table;
 +        dummy.data = buf;
 +        dummy.maxlen = sizeof(buf);
-+
+ 
+-        len = snprintf(buf, sizeof(buf), LPU64"\n", obd_pages_sum());
 +        len = snprintf(buf, sizeof(buf), LPU64,
 +                       obd_pages_sum());
          if (len > *lenp)
@@ -3878,7 +3745,6 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
 -        *lenp = len;
 -        *ppos += *lenp;
 -        return 0;
-+
 +        return ll_proc_dostring(&dummy,write,filp,buffer,lenp, ppos);
  }
  
@@ -3891,17 +3757,17 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          DECLARE_LL_PROC_PPOS_DECL;
  
 -        if (!*lenp || (*ppos && !write)) {
-+        if (write)
-+                return -EINVAL;
-+
-+        if (!*lenp || *ppos) {
-                 *lenp = 0;
-                 return 0;
-         }
--        if (write)
--                return -EINVAL;
+-                *lenp = 0;
+-                return 0;
+-        }
+         if (write)
+                 return -EINVAL;
  
 -        len = snprintf(buf, sizeof(buf), LPU64"\n", obd_memory_max());
++        if (!*lenp || *ppos) {
++               *lenp = 0;
++                return 0;
++        }
 +        dummy = *table;
 +        dummy.data = buf;
 +        dummy.maxlen = sizeof(buf);
@@ -3916,35 +3782,33 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
 -        *lenp = len;
 -        *ppos += *lenp;
 -        return 0;
-+
 +        return ll_proc_dostring(&dummy,write,filp,buffer,lenp, ppos);
  }
  
  int LL_PROC_PROTO(proc_pages_max)
  {
--        char buf[22];
-         int len;
-+        char buf[22];
+         char buf[22];
 +        struct ctl_table dummy;
+         int len;
          DECLARE_LL_PROC_PPOS_DECL;
  
 -        if (!*lenp || (*ppos && !write)) {
-+        if (write)
-+                return -EINVAL;
-+
+-                *lenp = 0;
+-                return 0;
+-        }
+         if (write)
+                 return -EINVAL;
+ 
+-        len = snprintf(buf, sizeof(buf), LPU64"\n", obd_pages_max());
 +        if (!*lenp || *ppos) {
-                 *lenp = 0;
-                 return 0;
-         }
--        if (write)
--                return -EINVAL;
++                *lenp = 0;
++                return 0;
++        }
 +        dummy = *table;
 +        dummy.data = buf;
 +        dummy.maxlen = sizeof(buf);
 +        len = snprintf(buf, sizeof(buf), LPU64,
 +                       obd_pages_max());
- 
--        len = snprintf(buf, sizeof(buf), LPU64"\n", obd_pages_max());
          if (len > *lenp)
                  len = *lenp;
          buf[len] = '\0';
@@ -3953,15 +3817,11 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
 -        *lenp = len;
 -        *ppos += *lenp;
 -        return 0;
-+
 +        return ll_proc_dostring(&dummy,write,filp,buffer,lenp, ppos);
  }
  
-+
  static cfs_sysctl_table_t obd_table[] = {
-         {
-                 .ctl_name = OBD_FAIL_LOC,
-@@ -231,7 +273,8 @@
+@@ -284,7 +318,8 @@
                  .data     = &obd_fail_val,
                  .maxlen   = sizeof(int),
                  .mode     = 0644,
@@ -3971,7 +3831,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          },
          {
                  .ctl_name = OBD_TIMEOUT,
-@@ -247,7 +290,7 @@
+@@ -300,7 +335,7 @@
                  .data     = &obd_debug_peer_on_timeout,
                  .maxlen   = sizeof(int),
                  .mode     = 0644,
@@ -3980,7 +3840,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          },
          {
                  .ctl_name = OBD_DUMP_ON_TIMEOUT,
-@@ -255,7 +298,7 @@
+@@ -308,7 +343,7 @@
                  .data     = &obd_dump_on_timeout,
                  .maxlen   = sizeof(int),
                  .mode     = 0644,
@@ -3989,7 +3849,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          },
          {
                  .ctl_name = OBD_DUMP_ON_EVICTION,
-@@ -263,7 +306,7 @@
+@@ -316,7 +351,7 @@
                  .data     = &obd_dump_on_eviction,
                  .maxlen   = sizeof(int),
                  .mode     = 0644,
@@ -3998,7 +3858,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          },
          {
                  .ctl_name = OBD_MEMUSED,
-@@ -271,7 +314,8 @@
+@@ -324,7 +359,8 @@
                  .data     = NULL,
                  .maxlen   = 0,
                  .mode     = 0444,
@@ -4008,7 +3868,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          },
          {
                  .ctl_name = OBD_PAGESUSED,
-@@ -279,7 +323,8 @@
+@@ -332,7 +368,8 @@
                  .data     = NULL,
                  .maxlen   = 0,
                  .mode     = 0444,
@@ -4018,7 +3878,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          },
          {
                  .ctl_name = OBD_MAXMEMUSED,
-@@ -287,7 +332,8 @@
+@@ -340,7 +377,8 @@
                  .data     = NULL,
                  .maxlen   = 0,
                  .mode     = 0444,
@@ -4028,7 +3888,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          },
          {
                  .ctl_name = OBD_MAXPAGESUSED,
-@@ -295,7 +341,8 @@
+@@ -348,7 +386,8 @@
                  .data     = NULL,
                  .maxlen   = 0,
                  .mode     = 0444,
@@ -4038,7 +3898,7 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
          },
          {
                  .ctl_name = OBD_LDLM_TIMEOUT,
-@@ -319,15 +366,13 @@
+@@ -380,15 +419,13 @@
  };
  
  static cfs_sysctl_table_t parent_table[] = {
@@ -4061,10 +3921,10 @@ diff -urNad trunk~/lustre/obdclass/linux/linux-sysctl.c trunk/lustre/obdclass/li
  };
  
  void obd_sysctl_init (void)
-diff -urNad trunk~/lustre/obdclass/llog_obd.c trunk/lustre/obdclass/llog_obd.c
---- trunk~/lustre/obdclass/llog_obd.c	2007-12-24 21:15:32.000000000 +0100
-+++ trunk/lustre/obdclass/llog_obd.c	2008-10-07 13:30:45.000000000 +0200
-@@ -178,7 +178,7 @@
+diff -urNad lustre~/lustre/obdclass/llog_obd.c lustre/lustre/obdclass/llog_obd.c
+--- lustre~/lustre/obdclass/llog_obd.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/obdclass/llog_obd.c	2008-12-22 10:43:33.000000000 +0100
+@@ -203,7 +203,7 @@
                  struct lov_stripe_md *lsm, struct llog_cookie *logcookies,
                  int numcookies)
  {
@@ -4073,7 +3933,7 @@ diff -urNad trunk~/lustre/obdclass/llog_obd.c trunk/lustre/obdclass/llog_obd.c
          int rc;
          ENTRY;
  
-@@ -188,10 +188,10 @@
+@@ -213,10 +213,10 @@
          }
          
          CTXT_CHECK_OP(ctxt, add, -EOPNOTSUPP);
@@ -4086,10 +3946,10 @@ diff -urNad trunk~/lustre/obdclass/llog_obd.c trunk/lustre/obdclass/llog_obd.c
          RETURN(rc);
  }
  EXPORT_SYMBOL(llog_add);
-diff -urNad trunk~/lustre/obdclass/lprocfs_status.c trunk/lustre/obdclass/lprocfs_status.c
---- trunk~/lustre/obdclass/lprocfs_status.c	2008-05-20 04:03:20.000000000 +0200
-+++ trunk/lustre/obdclass/lprocfs_status.c	2008-10-07 13:30:45.000000000 +0200
-@@ -117,6 +117,8 @@
+diff -urNad lustre~/lustre/obdclass/lprocfs_status.c lustre/lustre/obdclass/lprocfs_status.c
+--- lustre~/lustre/obdclass/lprocfs_status.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/obdclass/lprocfs_status.c	2008-12-22 11:46:48.000000000 +0100
+@@ -132,6 +132,8 @@
          proc->read_proc = read_proc;
          proc->write_proc = write_proc;
          proc->data = data;
@@ -4098,16 +3958,16 @@ diff -urNad trunk~/lustre/obdclass/lprocfs_status.c trunk/lustre/obdclass/lprocf
          return 0;
  }
  
-@@ -136,7 +138,7 @@
+@@ -151,7 +153,7 @@
  
          LPROCFS_ENTRY();
          OBD_FAIL_TIMEOUT(OBD_FAIL_LPROC_REMOVE, 10);
 -        if (!dp->deleted && dp->read_proc)
 +        if (!LPROCFS_CHECK_DELETED(dp) && dp->read_proc)
-                 rc = dp->read_proc(page, &start, *ppos, PAGE_SIZE, 
+                 rc = dp->read_proc(page, &start, *ppos, PAGE_SIZE,
                          &eof, dp->data);
          LPROCFS_EXIT();
-@@ -175,7 +177,7 @@
+@@ -190,7 +192,7 @@
          int rc = -EIO;
  
          LPROCFS_ENTRY();
@@ -4116,10 +3976,10 @@ diff -urNad trunk~/lustre/obdclass/lprocfs_status.c trunk/lustre/obdclass/lprocf
                  rc = dp->write_proc(f, buf, size, dp->data);
          LPROCFS_EXIT();
          return rc;
-diff -urNad trunk~/lustre/ptlrpc/service.c trunk/lustre/ptlrpc/service.c
---- trunk~/lustre/ptlrpc/service.c	2008-05-13 07:10:50.000000000 +0200
-+++ trunk/lustre/ptlrpc/service.c	2008-10-07 13:30:45.000000000 +0200
-@@ -1244,7 +1244,7 @@
+diff -urNad lustre~/lustre/ptlrpc/service.c lustre/lustre/ptlrpc/service.c
+--- lustre~/lustre/ptlrpc/service.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/ptlrpc/service.c	2008-12-22 10:43:33.000000000 +0100
+@@ -1268,7 +1268,7 @@
          cfs_daemonize(name);
          exit_fs(cfs_current());
          current->fs = fs;
@@ -4128,10 +3988,10 @@ diff -urNad trunk~/lustre/ptlrpc/service.c trunk/lustre/ptlrpc/service.c
  }
  
  static void
-diff -urNad trunk~/lustre/quota/quotacheck_test.c trunk/lustre/quota/quotacheck_test.c
---- trunk~/lustre/quota/quotacheck_test.c	2008-01-03 07:31:16.000000000 +0100
-+++ trunk/lustre/quota/quotacheck_test.c	2008-10-07 13:30:45.000000000 +0200
-@@ -70,7 +70,14 @@
+diff -urNad lustre~/lustre/quota/quotacheck_test.c lustre/lustre/quota/quotacheck_test.c
+--- lustre~/lustre/quota/quotacheck_test.c	2008-11-25 13:59:37.000000000 +0100
++++ lustre/lustre/quota/quotacheck_test.c	2008-12-22 10:43:33.000000000 +0100
+@@ -97,7 +97,14 @@
          if (ext3_test_bit(index, bitmap_bh->b_data)) {
                  CERROR("i: %d, ino: %lu\n", index, ino);
                  ll_sleep(1);

-- 
Lustre Debian Packaging 



More information about the Pkg-lustre-svn-commit mailing list