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:
 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:
         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.
 
         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
 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);
  
  /*
  }
 +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.
 
 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;
  
        int                     i_cindex;
 +      void                    *i_filterdata;
  
index 64085b9..c4b253a 100644 (file)
@@ -76,7 +76,7 @@
  
  /**
 @@ -881,6 +921,10 @@
  
  /**
 @@ -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,
  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 @@
 --- 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
  
 +      /*
 +       * 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>
 @@ -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.
  
  /*
   * 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;
  }
  
        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))
        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);
  
  
        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);
 +
 -      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);
                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);
                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;
  }
  
 +      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;
        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
  
        /*
         * 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.
         */
  
        /*
 -       * 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,
 -      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)
        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];
  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);
                                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
        /* 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");
        }
  
        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);
  
        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>
 @@ -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
  
  /*
  #endif
  
  /*
-@@ -307,6 +308,38 @@ int journal_skip_recovery(journal_t *jou
+@@ -307,6 +308,38 @@
        return err;
  }
  
        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)
  {
  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;
        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;
  
        /* 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
                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);
                                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:
                        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;
                        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.
         */
  
         * 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) {
                /* 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);
  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);
  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;
  }
  
        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.
  
  /**
   * 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
  
  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
        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
  
  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(-)
 
  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
 @@ -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
  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.
 @@ -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
 +      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.
  
          setting to 2.
  
 +config FRAME_POINTER
 +       bool "Compile the kernel with frame pointers"
 +       help
 +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"
  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"
  
  #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
 +      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,
 @@ -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);
                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,
  };
 @@ -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
  }
 +      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>
  
 @@ -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
        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,
  };
  
  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
 @@ -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
 +
 +/* _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
 @@ -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
  
  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>
 @@ -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>
  
  #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);
        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>
 @@ -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>
  
  #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);
  
        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);
        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));
  
        }
        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;
  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;
        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);
  }
  
  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>
 @@ -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"
  
 +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.
 +
 +     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)
 @@ -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);
  
  /* 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"
  
  
  #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
  /*
   * 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 */
        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)
  
  };
  #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;
  
         */
        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.
        /*
         * 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:
                break;
        }
   out:
@@ -126,7 +126,7 @@ Index: linux-2.6.18-53.1.21/drivers/scsi/sd.c
        scsi_io_completion(SCpnt, good_bytes);
  }
  
        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;
  
        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);
  
        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;
  }
  
        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
  /**
   *    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);
  
        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);
  }
  
        kfree(sdkp);
  }
  
-@@ -1907,6 +2366,7 @@ done:
+@@ -1844,6 +2303,7 @@
  static int __init init_sd(void)
  {
        int majors = 0, i;
  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"));
  
  
        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;
  
        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);
                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!!
 # 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 "-"
 
 # 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
 
 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
 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