Whamcloud - gitweb
Branch HEAD
authoryangsheng <yangsheng>
Wed, 3 Jun 2009 07:23:20 +0000 (07:23 +0000)
committeryangsheng <yangsheng>
Wed, 3 Jun 2009 07:23:20 +0000 (07:23 +0000)
b=19212

i=shadow, bobijam, brian

Update kernel to SLES10 SP2 2.6.16.60-0.37.

lustre/ChangeLog
lustre/kernel_patches/patches/export-nr_free_buffer_pages.patch
lustre/kernel_patches/patches/i_filter_data.patch
lustre/kernel_patches/patches/jbd-2.6.10-jcberr.patch
lustre/kernel_patches/patches/jbd-journal-chksum-2.6-sles10.patch
lustre/kernel_patches/patches/proc-sleep-2.6.16-sles10.patch
lustre/kernel_patches/patches/sd_iostats-2.6-rhel5.patch
lustre/kernel_patches/targets/2.6-sles10.target.in
lustre/kernel_patches/which_patch

index 1d1ba59..57172c2 100644 (file)
@@ -1,7 +1,7 @@
 tbd  Sun Microsystems, Inc.
        * version 2.0.0
        * Support for kernels:
-        2.6.16.60-0.33 (SLES 10),
+        2.6.16.60-0.37 (SLES 10),
         2.6.18-128.1.1.el5 (RHEL 5),
         2.6.22.14 vanilla (kernel.org).
        * Client support for unpatched kernels:
@@ -13,6 +13,10 @@ tbd  Sun Microsystems, Inc.
         removed cwd "./" (refer to Bugzilla 14399).
        * File join has been disabled in this release, refer to Bugzilla 16929.
 
+Severity   : enhancement
+Bugzilla   : 19212
+Description: Update kernel to SLES10 SP2 2.6.16.60-0.37.
+
 Severity   : normal
 Bugzilla   : 19528
 Description: resolve race between obd_disconnect and class_disconnect_exports
index 1d6712a..12149ec 100644 (file)
@@ -1,12 +1,12 @@
-Index: linux/mm/page_alloc.c
+Index: linux-2.6.18-128.1.6/mm/page_alloc.c
 ===================================================================
---- linux.orig/mm/page_alloc.c
-+++ linux/mm/page_alloc.c
-@@ -875,6 +875,7 @@ unsigned int nr_free_buffer_pages(void)
- {
-       return nr_free_zone_pages(GFP_USER & GFP_ZONEMASK);
+--- linux-2.6.18-128.1.6.orig/mm/page_alloc.c  2009-04-14 21:05:42.000000000 -0600
++++ linux-2.6.18-128.1.6/mm/page_alloc.c       2009-06-02 23:24:34.000000000 -0600
+@@ -877,6 +877,7 @@
+       }
+       return 1;
  }
 +EXPORT_SYMBOL(nr_free_buffer_pages);
  
  /*
-  * Amount of free RAM allocatable within all zones
+  * get_page_from_freeliest goes through the zonelist trying to allocate
index 663b5f8..cac3f9b 100644 (file)
@@ -2,13 +2,13 @@ The i_filterdata is currently only used by the size-on-mds to store the
 epoch number for the inode.  This could be moved to another field in
 ldiskfs or elsewhere in the inode that isn't used by Lustre callers.
 
-Index: linux-2.6.18.8/include/linux/fs.h
+Index: linux-2.6.18-128.1.6/include/linux/fs.h
 ===================================================================
---- linux-2.6.18.8.orig/include/linux/fs.h     2007-06-05 12:55:19.000000000 +0200
-+++ linux-2.6.18.8/include/linux/fs.h  2007-06-05 12:55:44.000000000 +0200
-@@ -533,6 +533,7 @@ struct inode {
-       struct block_device     *i_bdev;
-       struct cdev             *i_cdev;
+--- linux-2.6.18-128.1.6.orig/include/linux/fs.h       2009-04-14 21:05:43.000000000 -0600
++++ linux-2.6.18-128.1.6/include/linux/fs.h    2009-06-02 23:21:44.000000000 -0600
+@@ -580,6 +580,7 @@
+               struct cdev             *i_cdev;
+       };
        int                     i_cindex;
 +      void                    *i_filterdata;
  
index 64085b9..c4b253a 100644 (file)
@@ -76,7 +76,7 @@
  
  /**
 @@ -881,6 +921,10 @@
- extern int     journal_try_to_free_buffers(journal_t *, struct page *, int);
+ extern int     journal_try_to_free_buffers(journal_t *, struct page *, gfp_t);
  extern int     journal_stop(handle_t *);
  extern int     journal_flush (journal_t *);
 +extern void    journal_callback_set(handle_t *handle,
 --- 1.53/fs/jbd/commit.c       2004-10-19 03:40:17 -06:00
 +++ 1.54/fs/jbd/commit.c       2004-11-07 19:13:24 -07:00
 @@ -686,6 +686,30 @@
-       if (err)
-               __journal_abort_hard(journal);
+            transaction can be removed from any checkpoint list it was on
+            before. */
  
 +      /*
 +       * Call any callbacks that had been registered for handles in this
index 2312d7a..4ef92b2 100644 (file)
@@ -1,7 +1,7 @@
-Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
+Index: linux-2.6.16.60-0.37/fs/jbd/commit.c
 ===================================================================
---- linux-2.6.16.53-0.16.orig/fs/jbd/commit.c
-+++ linux-2.6.16.53-0.16/fs/jbd/commit.c
+--- linux-2.6.16.60-0.37.orig/fs/jbd/commit.c  2009-06-02 23:33:33.000000000 -0600
++++ linux-2.6.16.60-0.37/fs/jbd/commit.c       2009-06-02 23:33:54.000000000 -0600
 @@ -22,6 +22,7 @@
  #include <linux/pagemap.h>
  #include <linux/smp_lock.h>
@@ -10,7 +10,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
  
  /*
   * Default IO end handler for temporary BJ_IO buffer_heads.
-@@ -94,19 +95,23 @@ static int inverted_lock(journal_t *jour
+@@ -94,19 +95,23 @@
        return 1;
  }
  
@@ -38,7 +38,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
        int barrier_done = 0;
  
        if (is_journal_aborted(journal))
-@@ -118,21 +123,34 @@ static int journal_write_commit_record(j
+@@ -118,21 +123,34 @@
  
        bh = jh2bh(descriptor);
  
@@ -79,11 +79,11 @@ Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
 -      ret = sync_dirty_buffer(bh);
 +      ret = submit_bh(WRITE, bh);
 +
-       if (barrier_done)
-               clear_buffer_ordered(bh);
-       /* is it possible for another commit to fail at roughly
-@@ -153,12 +172,84 @@ static int journal_write_commit_record(j
+       if (barrier_done)
                clear_buffer_ordered(bh);
+       /* is it possible for another commit to fail at roughly
+@@ -154,12 +172,84 @@
+               /* And try again, without the barrier */
                set_buffer_uptodate(bh);
                set_buffer_dirty(bh);
 -              ret = sync_dirty_buffer(bh);
@@ -170,8 +170,8 @@ Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
 +      return checksum;
  }
  
- /*
-@@ -184,6 +275,8 @@ void journal_commit_transaction(journal_
+ void journal_do_submit_data(struct buffer_head **wbuf, int bufs)
+@@ -296,6 +386,8 @@
        int first_tag = 0;
        int tag_flag;
        int i;
@@ -180,15 +180,15 @@ Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
  
        /*
         * First job: lock down the current transaction and wait for
-@@ -395,38 +488,15 @@ write_out_data:
-       }
+@@ -439,38 +531,15 @@
+       journal_submit_data_buffers(journal, commit_transaction);
  
        /*
 -       * Wait for all previously submitted IO to complete.
 +       * Wait for all previously submitted IO to complete if commit
 +       * record is to be written synchronously.
         */
-       spin_lock(&journal->j_list_lock);
+       spin_lock(&journal->j_list_lock);
 -      while (commit_transaction->t_locked_list) {
 -              struct buffer_head *bh;
 +      if (!JFS_HAS_INCOMPAT_FEATURE(journal,
@@ -225,7 +225,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
        spin_unlock(&journal->j_list_lock);
  
        if (err)
-@@ -598,6 +668,16 @@ write_out_data:
+@@ -643,6 +712,16 @@
  start_journal_io:
                        for (i = 0; i < bufs; i++) {
                                struct buffer_head *bh = wbuf[i];
@@ -242,7 +242,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
                                lock_buffer(bh);
                                clear_buffer_dirty(bh);
                                set_buffer_uptodate(bh);
-@@ -614,6 +694,23 @@ start_journal_io:
+@@ -659,6 +738,23 @@
                }
        }
  
@@ -266,7 +266,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
        /* Lo and behold: we have just managed to send a transaction to
             the log.  Before we can commit it, wait for the IO so far to
             complete.  Control buffers being written are on the
-@@ -712,9 +809,15 @@ wait_for_iobuf:
+@@ -757,9 +853,15 @@
        }
  
        jbd_debug(3, "JBD: commit phase 6\n");
@@ -285,73 +285,10 @@ Index: linux-2.6.16.53-0.16/fs/jbd/commit.c
  
        if (err)
                __journal_abort_hard(journal);
-Index: linux-2.6.16.53-0.16/include/linux/jbd.h
-===================================================================
---- linux-2.6.16.53-0.16.orig/include/linux/jbd.h
-+++ linux-2.6.16.53-0.16/include/linux/jbd.h
-@@ -142,6 +142,29 @@ typedef struct journal_header_s
-       __be32          h_sequence;
- } journal_header_t;
-+/*
-+ * Checksum types.
-+ */
-+#define JFS_CRC32_CHKSUM   1
-+#define JFS_MD5_CHKSUM     2
-+#define JFS_SHA1_CHKSUM    3
-+
-+#define JFS_CRC32_CHKSUM_SIZE 4
-+
-+#define JFS_CHECKSUM_BYTES (32 / sizeof(u32))
-+/*
-+ * Commit block header for storing transactional checksums:
-+ */
-+struct commit_header
-+{
-+      __be32          h_magic;
-+      __be32          h_blocktype;
-+      __be32          h_sequence;
-+      unsigned char   h_chksum_type;
-+      unsigned char   h_chksum_size;
-+      unsigned char   h_padding[2];
-+      __be32          h_chksum[JFS_CHECKSUM_BYTES];
-+};
- /* 
-  * The block tag: used to describe a single buffer in the journal 
-@@ -228,12 +251,16 @@ typedef struct journal_superblock_s
-       ((j)->j_format_version >= 2 &&                                  \
-        ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask))))
--#define JFS_FEATURE_INCOMPAT_REVOKE   0x00000001
-+#define JFS_FEATURE_COMPAT_CHECKSUM   0x00000001
-+
-+#define JFS_FEATURE_INCOMPAT_REVOKE           0x00000001
-+#define JFS_FEATURE_INCOMPAT_ASYNC_COMMIT     0x00000004
- /* Features known to this kernel version: */
--#define JFS_KNOWN_COMPAT_FEATURES     0
-+#define JFS_KNOWN_COMPAT_FEATURES     JFS_FEATURE_COMPAT_CHECKSUM
- #define JFS_KNOWN_ROCOMPAT_FEATURES   0
--#define JFS_KNOWN_INCOMPAT_FEATURES   JFS_FEATURE_INCOMPAT_REVOKE
-+#define JFS_KNOWN_INCOMPAT_FEATURES   (JFS_FEATURE_INCOMPAT_REVOKE | \
-+                                      JFS_FEATURE_INCOMPAT_ASYNC_COMMIT)
- #ifdef __KERNEL__
-@@ -1041,6 +1068,8 @@ extern int          journal_check_available_fe
-                  (journal_t *, unsigned long, unsigned long, unsigned long);
- extern int       journal_set_features 
-                  (journal_t *, unsigned long, unsigned long, unsigned long);
-+extern int       journal_clear_features
-+                 (journal_t *, unsigned long, unsigned long, unsigned long);
- extern int       journal_create     (journal_t *);
- extern int       journal_load       (journal_t *journal);
- extern void      journal_destroy    (journal_t *);
-Index: linux-2.6.16.53-0.16/fs/jbd/recovery.c
+Index: linux-2.6.16.60-0.37/fs/jbd/recovery.c
 ===================================================================
---- linux-2.6.16.53-0.16.orig/fs/jbd/recovery.c
-+++ linux-2.6.16.53-0.16/fs/jbd/recovery.c
+--- linux-2.6.16.60-0.37.orig/fs/jbd/recovery.c        2006-03-19 22:53:29.000000000 -0700
++++ linux-2.6.16.60-0.37/fs/jbd/recovery.c     2009-06-02 23:33:54.000000000 -0600
 @@ -21,6 +21,7 @@
  #include <linux/jbd.h>
  #include <linux/errno.h>
@@ -360,7 +297,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/recovery.c
  #endif
  
  /*
-@@ -307,6 +308,38 @@ int journal_skip_recovery(journal_t *jou
+@@ -307,6 +308,38 @@
        return err;
  }
  
@@ -399,7 +336,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/recovery.c
  static int do_one_pass(journal_t *journal,
                        struct recovery_info *info, enum passtype pass)
  {
-@@ -318,6 +351,7 @@ static int do_one_pass(journal_t *journa
+@@ -318,6 +351,7 @@
        struct buffer_head *    bh;
        unsigned int            sequence;
        int                     blocktype;
@@ -407,7 +344,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/recovery.c
  
        /* Precompute the maximum metadata descriptors in a descriptor block */
        int                     MAX_BLOCKS_PER_DESC;
-@@ -409,9 +443,24 @@ static int do_one_pass(journal_t *journa
+@@ -409,9 +443,24 @@
                switch(blocktype) {
                case JFS_DESCRIPTOR_BLOCK:
                        /* If it is a valid descriptor block, replay it
@@ -434,7 +371,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/recovery.c
                                next_log_block +=
                                        count_tags(bh, journal->j_blocksize);
                                wrap(journal, next_log_block);
-@@ -506,9 +555,97 @@ static int do_one_pass(journal_t *journa
+@@ -506,9 +555,97 @@
                        continue;
  
                case JFS_COMMIT_BLOCK:
@@ -534,7 +471,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/recovery.c
                        brelse(bh);
                        next_commit_ID++;
                        continue;
-@@ -543,9 +680,10 @@ static int do_one_pass(journal_t *journa
+@@ -543,9 +680,10 @@
         * transaction marks the end of the valid log.
         */
  
@@ -548,11 +485,11 @@ Index: linux-2.6.16.53-0.16/fs/jbd/recovery.c
                /* It's really bad news if different passes end up at
                 * different places (but possible due to IO errors). */
                if (info->end_transaction != next_commit_ID) {
-Index: linux-2.6.16.53-0.16/fs/jbd/journal.c
+Index: linux-2.6.16.60-0.37/fs/jbd/journal.c
 ===================================================================
---- linux-2.6.16.53-0.16.orig/fs/jbd/journal.c
-+++ linux-2.6.16.53-0.16/fs/jbd/journal.c
-@@ -64,6 +64,7 @@ EXPORT_SYMBOL(journal_update_format);
+--- linux-2.6.16.60-0.37.orig/fs/jbd/journal.c 2009-06-02 23:33:33.000000000 -0600
++++ linux-2.6.16.60-0.37/fs/jbd/journal.c      2009-06-02 23:33:54.000000000 -0600
+@@ -64,6 +64,7 @@
  EXPORT_SYMBOL(journal_check_used_features);
  EXPORT_SYMBOL(journal_check_available_features);
  EXPORT_SYMBOL(journal_set_features);
@@ -560,7 +497,7 @@ Index: linux-2.6.16.53-0.16/fs/jbd/journal.c
  EXPORT_SYMBOL(journal_create);
  EXPORT_SYMBOL(journal_load);
  EXPORT_SYMBOL(journal_destroy);
-@@ -1565,6 +1566,33 @@ int journal_set_features (journal_t *jou
+@@ -1565,6 +1566,33 @@
        return 1;
  }
  
@@ -594,11 +531,11 @@ Index: linux-2.6.16.53-0.16/fs/jbd/journal.c
  
  /**
   * int journal_update_format () - Update on-disk journal structure.
-Index: linux-2.6.16.53-0.16/fs/Kconfig
+Index: linux-2.6.16.60-0.37/fs/Kconfig
 ===================================================================
---- linux-2.6.16.53-0.16.orig/fs/Kconfig
-+++ linux-2.6.16.53-0.16/fs/Kconfig
-@@ -140,6 +140,7 @@ config EXT3_FS_SECURITY
+--- linux-2.6.16.60-0.37.orig/fs/Kconfig       2009-03-24 05:46:35.000000000 -0700
++++ linux-2.6.16.60-0.37/fs/Kconfig    2009-06-02 23:33:54.000000000 -0600
+@@ -140,6 +140,7 @@
  
  config JBD
        tristate
@@ -606,11 +543,74 @@ Index: linux-2.6.16.53-0.16/fs/Kconfig
        help
          This is a generic journaling layer for block devices.  It is
          currently used by the ext3 and OCFS2 file systems, but it could
-Index: linux-2.6.16.53-0.16/Documentation/filesystems/ext3.txt
+Index: linux-2.6.16.60-0.37/include/linux/jbd.h
+===================================================================
+--- linux-2.6.16.60-0.37.orig/include/linux/jbd.h      2009-06-02 23:33:33.000000000 -0600
++++ linux-2.6.16.60-0.37/include/linux/jbd.h   2009-06-02 23:33:54.000000000 -0600
+@@ -142,6 +142,29 @@
+       __be32          h_sequence;
+ } journal_header_t;
++/*
++ * Checksum types.
++ */
++#define JFS_CRC32_CHKSUM   1
++#define JFS_MD5_CHKSUM     2
++#define JFS_SHA1_CHKSUM    3
++
++#define JFS_CRC32_CHKSUM_SIZE 4
++
++#define JFS_CHECKSUM_BYTES (32 / sizeof(u32))
++/*
++ * Commit block header for storing transactional checksums:
++ */
++struct commit_header
++{
++      __be32          h_magic;
++      __be32          h_blocktype;
++      __be32          h_sequence;
++      unsigned char   h_chksum_type;
++      unsigned char   h_chksum_size;
++      unsigned char   h_padding[2];
++      __be32          h_chksum[JFS_CHECKSUM_BYTES];
++};
+ /* 
+  * The block tag: used to describe a single buffer in the journal 
+@@ -228,12 +251,16 @@
+       ((j)->j_format_version >= 2 &&                                  \
+        ((j)->j_superblock->s_feature_incompat & cpu_to_be32((mask))))
+-#define JFS_FEATURE_INCOMPAT_REVOKE   0x00000001
++#define JFS_FEATURE_COMPAT_CHECKSUM   0x00000001
++
++#define JFS_FEATURE_INCOMPAT_REVOKE           0x00000001
++#define JFS_FEATURE_INCOMPAT_ASYNC_COMMIT     0x00000004
+ /* Features known to this kernel version: */
+-#define JFS_KNOWN_COMPAT_FEATURES     0
++#define JFS_KNOWN_COMPAT_FEATURES     JFS_FEATURE_COMPAT_CHECKSUM
+ #define JFS_KNOWN_ROCOMPAT_FEATURES   0
+-#define JFS_KNOWN_INCOMPAT_FEATURES   JFS_FEATURE_INCOMPAT_REVOKE
++#define JFS_KNOWN_INCOMPAT_FEATURES   (JFS_FEATURE_INCOMPAT_REVOKE | \
++                                      JFS_FEATURE_INCOMPAT_ASYNC_COMMIT)
+ #ifdef __KERNEL__
+@@ -1041,6 +1068,8 @@
+                  (journal_t *, unsigned long, unsigned long, unsigned long);
+ extern int       journal_set_features 
+                  (journal_t *, unsigned long, unsigned long, unsigned long);
++extern int       journal_clear_features
++                 (journal_t *, unsigned long, unsigned long, unsigned long);
+ extern int       journal_create     (journal_t *);
+ extern int       journal_load       (journal_t *journal);
+ extern void      journal_destroy    (journal_t *);
+Index: linux-2.6.16.60-0.37/Documentation/filesystems/ext3.txt
 ===================================================================
---- linux-2.6.16.53-0.16.orig/Documentation/filesystems/ext3.txt
-+++ linux-2.6.16.53-0.16/Documentation/filesystems/ext3.txt
-@@ -14,6 +14,16 @@ Options
+--- linux-2.6.16.60-0.37.orig/Documentation/filesystems/ext3.txt       2006-03-19 22:53:29.000000000 -0700
++++ linux-2.6.16.60-0.37/Documentation/filesystems/ext3.txt    2009-06-02 23:33:54.000000000 -0600
+@@ -14,6 +14,16 @@
  When mounting an ext3 filesystem, the following option are accepted:
  (*) == default
  
index e523db2..dce8e49 100644 (file)
@@ -24,10 +24,10 @@ Signed-off-by: Nikita Danilov <nikita@clusterfs.com>
  kernel/sleep_info.c        |  392 +++++++++++++++++++++++++++++++++++++++++++++
  13 files changed, 560 insertions(+), 15 deletions(-)
 
-Index: linux-2.6.16.46-0.14/Makefile
+Index: linux-2.6.16.60-0.37/Makefile
 ===================================================================
---- linux-2.6.16.46-0.14.orig/Makefile 2007-07-18 08:02:30.000000000 +0300
-+++ linux-2.6.16.46-0.14/Makefile      2007-08-30 05:56:23.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/Makefile 2009-03-24 05:46:28.000000000 -0700
++++ linux-2.6.16.60-0.37/Makefile      2009-06-02 23:34:02.000000000 -0600
 @@ -493,6 +493,10 @@
  CFLAGS                += -fomit-frame-pointer
  endif
@@ -39,10 +39,10 @@ Index: linux-2.6.16.46-0.14/Makefile
  ifdef CONFIG_DEBUG_INFO
  CFLAGS                += -g
  endif
-Index: linux-2.6.16.46-0.14/arch/i386/Kconfig.debug
+Index: linux-2.6.16.60-0.37/arch/i386/Kconfig.debug
 ===================================================================
---- linux-2.6.16.46-0.14.orig/arch/i386/Kconfig.debug  2007-07-18 08:02:28.000000000 +0300
-+++ linux-2.6.16.46-0.14/arch/i386/Kconfig.debug       2007-08-30 05:56:23.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/arch/i386/Kconfig.debug  2009-03-24 05:46:35.000000000 -0700
++++ linux-2.6.16.60-0.37/arch/i386/Kconfig.debug       2009-06-02 23:34:02.000000000 -0600
 @@ -190,4 +190,13 @@
          say N then kdb can only be used from a PC (AT) keyboard or a serial
          console.
@@ -57,14 +57,14 @@ Index: linux-2.6.16.46-0.14/arch/i386/Kconfig.debug
 +      N.
 +
  endmenu
-Index: linux-2.6.16.46-0.14/arch/x86_64/Kconfig.debug
+Index: linux-2.6.16.60-0.37/arch/x86_64/Kconfig.debug
 ===================================================================
---- linux-2.6.16.46-0.14.orig/arch/x86_64/Kconfig.debug        2007-07-18 08:02:30.000000000 +0300
-+++ linux-2.6.16.46-0.14/arch/x86_64/Kconfig.debug     2007-08-30 05:56:23.000000000 +0300
-@@ -122,6 +122,21 @@
+--- linux-2.6.16.60-0.37.orig/arch/x86_64/Kconfig.debug        2009-03-24 05:46:35.000000000 -0700
++++ linux-2.6.16.60-0.37/arch/x86_64/Kconfig.debug     2009-06-02 23:34:02.000000000 -0600
+@@ -123,6 +123,21 @@
+         If you are not sure, say 0.  Read Documentation/kdb/dump.txt before
          setting to 2.
  
 +config FRAME_POINTER
 +       bool "Compile the kernel with frame pointers"
 +       help
@@ -83,7 +83,7 @@ Index: linux-2.6.16.46-0.14/arch/x86_64/Kconfig.debug
  config IOMMU_DEBUG
         depends on GART_IOMMU && DEBUG_KERNEL
         bool "Enable IOMMU debugging"
-@@ -148,4 +163,13 @@
+@@ -149,4 +164,13 @@
  #config X86_REMOTE_DEBUG
  #       bool "kgdb debugging stub"
  
@@ -97,10 +97,10 @@ Index: linux-2.6.16.46-0.14/arch/x86_64/Kconfig.debug
 +      N.
 +
  endmenu
-Index: linux-2.6.16.46-0.14/fs/proc/base.c
+Index: linux-2.6.16.60-0.37/fs/proc/base.c
 ===================================================================
---- linux-2.6.16.46-0.14.orig/fs/proc/base.c   2007-07-18 08:02:25.000000000 +0300
-+++ linux-2.6.16.46-0.14/fs/proc/base.c        2007-08-30 06:15:24.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/fs/proc/base.c   2009-03-24 05:46:34.000000000 -0700
++++ linux-2.6.16.60-0.37/fs/proc/base.c        2009-06-02 23:34:02.000000000 -0600
 @@ -167,7 +167,9 @@
  #endif
        PROC_TID_OOM_SCORE,
@@ -145,10 +145,10 @@ Index: linux-2.6.16.46-0.14/fs/proc/base.c
                default:
                        printk("procfs: impossible type (%d)",p->type);
                        iput(inode);
-Index: linux-2.6.16.46-0.14/fs/proc/proc_misc.c
+Index: linux-2.6.16.60-0.37/fs/proc/proc_misc.c
 ===================================================================
---- linux-2.6.16.46-0.14.orig/fs/proc/proc_misc.c      2007-07-18 08:02:25.000000000 +0300
-+++ linux-2.6.16.46-0.14/fs/proc/proc_misc.c   2007-08-30 05:56:23.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/fs/proc/proc_misc.c      2009-03-24 05:46:28.000000000 -0700
++++ linux-2.6.16.60-0.37/fs/proc/proc_misc.c   2009-06-02 23:34:02.000000000 -0600
 @@ -414,6 +414,11 @@
        .release        = seq_release,
  };
@@ -170,19 +170,19 @@ Index: linux-2.6.16.46-0.14/fs/proc/proc_misc.c
 +      create_seq_entry("stacktrace", 0, &proc_global_stack_operations);
 +#endif
  }
-Index: linux-2.6.16.46-0.14/include/linux/sched.h
+Index: linux-2.6.16.60-0.37/include/linux/sched.h
 ===================================================================
---- linux-2.6.16.46-0.14.orig/include/linux/sched.h    2007-07-18 08:02:36.000000000 +0300
-+++ linux-2.6.16.46-0.14/include/linux/sched.h 2007-08-30 06:02:43.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/include/linux/sched.h    2009-03-24 05:46:36.000000000 -0700
++++ linux-2.6.16.60-0.37/include/linux/sched.h 2009-06-02 23:34:02.000000000 -0600
 @@ -35,6 +35,7 @@
  #include <linux/topology.h>
  #include <linux/seccomp.h>
  #include <linux/rcupdate.h>
 +#include <linux/sleep_info.h>
  
- #include <linux/auxvec.h>     /* For AT_VECTOR_SIZE */
  
-@@ -679,6 +680,8 @@
+ struct exec_domain;
+@@ -700,6 +701,8 @@
        unsigned long ttwu_move_affine;
        unsigned long ttwu_move_balance;
  #endif
@@ -191,10 +191,10 @@ Index: linux-2.6.16.46-0.14/include/linux/sched.h
  };
  
  extern void partition_sched_domains(cpumask_t *partition1,
-Index: linux-2.6.16.46-0.14/include/linux/sleep_info.h
+Index: linux-2.6.16.60-0.37/include/linux/sleep_info.h
 ===================================================================
---- linux-2.6.16.46-0.14.orig/include/linux/sleep_info.h       2006-06-16 16:07:58.000000000 +0300
-+++ linux-2.6.16.46-0.14/include/linux/sleep_info.h    2007-08-30 05:56:23.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/include/linux/sleep_info.h       2009-05-19 04:30:11.057558880 -0600
++++ linux-2.6.16.60-0.37/include/linux/sleep_info.h    2009-06-02 23:34:02.000000000 -0600
 @@ -0,0 +1,50 @@
 +#ifndef _LINUX_SLEEP_INFO_H
 +#define _LINUX_SLEEP_INFO_H
@@ -246,10 +246,10 @@ Index: linux-2.6.16.46-0.14/include/linux/sleep_info.h
 +
 +/* _LINUX_SLEEP_INFO_H */
 +#endif
-Index: linux-2.6.16.46-0.14/kernel/Makefile
+Index: linux-2.6.16.60-0.37/kernel/Makefile
 ===================================================================
---- linux-2.6.16.46-0.14.orig/kernel/Makefile  2007-07-18 08:02:35.000000000 +0300
-+++ linux-2.6.16.46-0.14/kernel/Makefile       2007-08-30 06:12:26.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/kernel/Makefile  2009-03-24 05:46:32.000000000 -0700
++++ linux-2.6.16.60-0.37/kernel/Makefile       2009-06-02 23:34:02.000000000 -0600
 @@ -38,6 +38,7 @@
  obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o
  obj-$(CONFIG_PAGG) += pagg.o
@@ -258,10 +258,10 @@ Index: linux-2.6.16.46-0.14/kernel/Makefile
  
  ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y)
  # According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
-Index: linux-2.6.16.46-0.14/kernel/exit.c
+Index: linux-2.6.16.60-0.37/kernel/exit.c
 ===================================================================
---- linux-2.6.16.46-0.14.orig/kernel/exit.c    2007-08-30 05:43:46.000000000 +0300
-+++ linux-2.6.16.46-0.14/kernel/exit.c 2007-08-30 06:13:03.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/kernel/exit.c    2009-03-24 05:46:32.000000000 -0700
++++ linux-2.6.16.60-0.37/kernel/exit.c 2009-06-02 23:34:02.000000000 -0600
 @@ -39,6 +39,7 @@
  #include <linux/mutex.h>
  #include <linux/pagg.h>
@@ -270,18 +270,18 @@ Index: linux-2.6.16.46-0.14/kernel/exit.c
  
  #include <asm/uaccess.h>
  #include <asm/unistd.h>
-@@ -114,6 +115,7 @@
+@@ -119,6 +120,7 @@
        write_unlock_irq(&tasklist_lock);
        spin_unlock(&p->proc_lock);
        proc_pid_flush(proc_dentry);
 +      free_sleep_info(&p->sinfo);
        release_thread(p);
-       put_task_struct(p);
+       call_rcu(&p->rcu, delayed_put_task_struct);
  
-Index: linux-2.6.16.46-0.14/kernel/fork.c
+Index: linux-2.6.16.60-0.37/kernel/fork.c
 ===================================================================
---- linux-2.6.16.46-0.14.orig/kernel/fork.c    2007-07-18 08:02:35.000000000 +0300
-+++ linux-2.6.16.46-0.14/kernel/fork.c 2007-08-30 06:13:36.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/kernel/fork.c    2009-03-24 05:46:35.000000000 -0700
++++ linux-2.6.16.60-0.37/kernel/fork.c 2009-06-02 23:34:02.000000000 -0600
 @@ -48,6 +48,7 @@
  #include <linux/pagg.h>
  #include <linux/delayacct.h>
@@ -290,7 +290,7 @@ Index: linux-2.6.16.46-0.14/kernel/fork.c
  
  #include <asm/pgtable.h>
  #include <asm/pgalloc.h>
-@@ -1222,6 +1223,8 @@
+@@ -1247,6 +1248,8 @@
        attach_pid(p, PIDTYPE_TGID, p->tgid);
        attach_pid(p, PIDTYPE_PID, p->pid);
  
@@ -299,11 +299,11 @@ Index: linux-2.6.16.46-0.14/kernel/fork.c
        nr_threads++;
        total_forks++;
        spin_unlock(&current->sighand->siglock);
-Index: linux-2.6.16.46-0.14/kernel/sched.c
+Index: linux-2.6.16.60-0.37/kernel/sched.c
 ===================================================================
---- linux-2.6.16.46-0.14.orig/kernel/sched.c   2007-08-30 05:43:48.000000000 +0300
-+++ linux-2.6.16.46-0.14/kernel/sched.c        2007-08-30 05:56:23.000000000 +0300
-@@ -2934,6 +2934,8 @@
+--- linux-2.6.16.60-0.37.orig/kernel/sched.c   2009-06-02 23:33:13.000000000 -0600
++++ linux-2.6.16.60-0.37/kernel/sched.c        2009-06-02 23:34:02.000000000 -0600
+@@ -2971,6 +2971,8 @@
        }
        profile_hit(SCHED_PROFILING, __builtin_return_address(0));
  
@@ -312,7 +312,7 @@ Index: linux-2.6.16.46-0.14/kernel/sched.c
  need_resched:
        preempt_disable();
        prev = current;
-@@ -3136,6 +3138,8 @@
+@@ -3173,6 +3175,8 @@
        barrier();
        if (unlikely(test_thread_flag(TIF_NEED_RESCHED)))
                goto need_resched;
@@ -321,10 +321,10 @@ Index: linux-2.6.16.46-0.14/kernel/sched.c
  }
  
  EXPORT_SYMBOL(preempt_schedule);
-Index: linux-2.6.16.46-0.14/kernel/sleep_info.c
+Index: linux-2.6.16.60-0.37/kernel/sleep_info.c
 ===================================================================
---- linux-2.6.16.46-0.14.orig/kernel/sleep_info.c      2006-06-16 16:07:58.000000000 +0300
-+++ linux-2.6.16.46-0.14/kernel/sleep_info.c   2007-08-30 05:56:23.000000000 +0300
+--- linux-2.6.16.60-0.37.orig/kernel/sleep_info.c      2009-05-19 04:30:11.057558880 -0600
++++ linux-2.6.16.60-0.37/kernel/sleep_info.c   2009-06-02 23:34:02.000000000 -0600
 @@ -0,0 +1,431 @@
 +#include <linux/config.h>
 +#include <linux/sleep_info.h>
index d0cc6f6..2297f8c 100644 (file)
@@ -1,10 +1,10 @@
-Index: linux-2.6.18-53.1.21/drivers/scsi/Kconfig
+Index: linux-2.6.16.60-0.37/drivers/scsi/Kconfig
 ===================================================================
---- linux-2.6.18-53.1.21.orig/drivers/scsi/Kconfig
-+++ linux-2.6.18-53.1.21/drivers/scsi/Kconfig
-@@ -66,6 +66,14 @@ config BLK_DEV_SD
-         In this case, do not compile the driver for your SCSI host adapter
-         (below) as a module either.
+--- linux-2.6.16.60-0.37.orig/drivers/scsi/Kconfig     2009-03-24 05:46:32.000000000 -0700
++++ linux-2.6.16.60-0.37/drivers/scsi/Kconfig  2009-06-02 23:33:14.000000000 -0600
+@@ -78,6 +78,14 @@
+         To compile this driver as a module, choose M here and read
+         <file:Documentation/scsi/scsi.txt>. The module will be called st.
  
 +config SD_IOSTATS
 +   bool "Enable SCSI disk I/O stats"
@@ -14,13 +14,13 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/Kconfig
 +     This enables SCSI disk I/O stats collection.  You must also enable
 +     /proc file system support if you want this feature.
 +
- config CHR_DEV_ST
-       tristate "SCSI tape support"
-       depends on SCSI
-Index: linux-2.6.18-53.1.21/drivers/scsi/scsi_proc.c
+ config CHR_DEV_OSST
+       tristate "SCSI OnStream SC-x0 tape support"
+       depends on SCSI
+Index: linux-2.6.16.60-0.37/drivers/scsi/scsi_proc.c
 ===================================================================
---- linux-2.6.18-53.1.21.orig/drivers/scsi/scsi_proc.c
-+++ linux-2.6.18-53.1.21/drivers/scsi/scsi_proc.c
+--- linux-2.6.16.60-0.37.orig/drivers/scsi/scsi_proc.c 2009-03-24 05:46:25.000000000 -0700
++++ linux-2.6.16.60-0.37/drivers/scsi/scsi_proc.c      2009-06-02 23:33:14.000000000 -0600
 @@ -40,7 +40,8 @@
  /* 4K page size, but our output routines, use some slack for overruns */
  #define PROC_BLOCK_SIZE (3*1024)
@@ -31,11 +31,11 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/scsi_proc.c
  
  /* Protect sht->present and sht->proc_dir */
  static DEFINE_MUTEX(global_host_template_mutex);
-Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
+Index: linux-2.6.16.60-0.37/drivers/scsi/sd.c
 ===================================================================
---- linux-2.6.18-53.1.21.orig/drivers/scsi/sd.c
-+++ linux-2.6.18-53.1.21/drivers/scsi/sd.c
-@@ -62,6 +62,63 @@
+--- linux-2.6.16.60-0.37.orig/drivers/scsi/sd.c        2009-03-24 05:46:25.000000000 -0700
++++ linux-2.6.16.60-0.37/drivers/scsi/sd.c     2009-06-02 23:33:14.000000000 -0600
+@@ -63,6 +63,63 @@
  
  #include "scsi_logging.h"
  
@@ -99,7 +99,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
  /*
   * More than enough for everybody ;)  The huge number of majors
   * is a leftover from 16bit dev_t days, we don't really need that
-@@ -126,6 +183,9 @@ struct scsi_disk {
+@@ -127,6 +184,9 @@
        unsigned        WCE : 1;        /* state of disk WCE bit */
        unsigned        RCD : 1;        /* state of disk RCD bit, unused */
        unsigned        DPOFUA : 1;     /* state of disk DPOFUA bit */
@@ -109,7 +109,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
  };
  #define to_scsi_disk(obj) container_of(obj,struct scsi_disk,cdev)
  
-@@ -557,6 +617,8 @@ static int sd_init_command(struct scsi_c
+@@ -520,6 +580,8 @@
         */
        SCpnt->done = sd_rw_intr;
  
@@ -118,7 +118,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
        /*
         * This indicates that the command is ready from our end to be
         * queued.
-@@ -1040,6 +1102,7 @@ static void sd_rw_intr(struct scsi_cmnd 
+@@ -1014,6 +1076,7 @@
                break;
        }
   out:
@@ -126,7 +126,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
        scsi_io_completion(SCpnt, good_bytes);
  }
  
-@@ -1735,6 +1798,36 @@ static int sd_probe(struct device *dev)
+@@ -1713,6 +1776,36 @@
        if (sdp->removable)
                gd->flags |= GENHD_FL_REMOVABLE;
  
@@ -163,7 +163,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
        dev_set_drvdata(dev, sdkp);
        add_disk(gd);
  
-@@ -1778,6 +1871,366 @@ static int sd_remove(struct device *dev)
+@@ -1756,6 +1849,366 @@
        return 0;
  }
  
@@ -530,7 +530,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
  /**
   *    scsi_disk_release - Called to free the scsi_disk structure
   *    @cdev: pointer to embedded class device
-@@ -1796,10 +2249,16 @@ static void scsi_disk_release(struct cla
+@@ -1774,10 +2227,16 @@
        idr_remove(&sd_index_idr, sdkp->index);
        spin_unlock(&sd_index_lock);
  
@@ -548,7 +548,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
        kfree(sdkp);
  }
  
-@@ -1907,6 +2366,7 @@ done:
+@@ -1844,6 +2303,7 @@
  static int __init init_sd(void)
  {
        int majors = 0, i;
@@ -556,7 +556,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
  
        SCSI_LOG_HLQUEUE(3, printk("init_sd: sd driver entry point\n"));
  
-@@ -1917,9 +2377,13 @@ static int __init init_sd(void)
+@@ -1854,9 +2314,13 @@
        if (!majors)
                return -ENODEV;
  
@@ -571,7 +571,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
  }
  
  /**
-@@ -1938,6 +2402,7 @@ static void __exit exit_sd(void)
+@@ -1875,6 +2339,7 @@
                unregister_blkdev(sd_major(i), "sd");
  
        class_unregister(&sd_disk_class);
index 9461f61..02908c0 100644 (file)
@@ -3,7 +3,7 @@ lnxmin=".60"
 # when we fix up this lnxmaj/lnxmin/lnxrel business...
 #lnxrel="0.33"
 # and note that this means we get rid of the EXTRA_VERSION_DELIMITER crap!!
-lnxrel="60-0.33"
+lnxrel="60-0.37_f594963d"
 
 # this is the delimeter that goes between $lnxmaj and $lnxrel
 # defaults to "-"
index c059fa5..8253b37 100644 (file)
@@ -2,7 +2,7 @@ SERIES                VERSION                  COMMENT
 
 SUPPORTED KERNELS:
 2.6-rhel4             RHEL4: 2.6.9-67.0.20.EL
-2.6-sles10            SLES10: 2.6.16.60-0.33
+2.6-sles10            SLES10: 2.6.16.60-0.37
 2.6-rhel5             RHEL5: 2.6.18-128.1.1.el5
 2.6.18-vanilla        kernel.org: 2.6.18.8
 2.6.22-vanilla        kernel.org: 2.6.22.14