Whamcloud - gitweb
LU-20 kernel: remove rest of obsolete kernel patches 99/9199/3
authorJames Simmons <uja.ornl@gmail.com>
Mon, 10 Feb 2014 19:49:35 +0000 (14:49 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 30 Apr 2014 18:27:55 +0000 (18:27 +0000)
Remove several patches that have not been used in some time.
The bio_add_page patch addressed an performance issue with
SLES11 SP1 1.8 servers with direct IO. All platforms have
support for 64 bit quota so we can remove the patch to enable
it on old SLES11 platforms. We no longer need the function
security_inode_unlink exported since the fsfilt layer has now
been removed.

Change-Id: I6a2d324950ba8e51f3d7785016d9834f6b26aafd
Signed-off-by: James Simmons <uja.ornl@gmail.com>
Reviewed-on: http://review.whamcloud.com/9199
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Jian Yu <jian.yu@intel.com>
lustre/kernel_patches/patches/bio_add_page.patch [deleted file]
lustre/kernel_patches/patches/export-2.6.32-vanilla.patch [deleted file]
lustre/kernel_patches/patches/jbd2-commit-timer-no-jiffies-rounding.diff [deleted file]
lustre/kernel_patches/patches/quota-support-64-bit-quota-format.patch [deleted file]
lustre/kernel_patches/series/2.6-rhel6.series
lustre/kernel_patches/series/2.6-sles11.series

diff --git a/lustre/kernel_patches/patches/bio_add_page.patch b/lustre/kernel_patches/patches/bio_add_page.patch
deleted file mode 100644 (file)
index 4a9a311..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- linux-2.6.32.13-0.5.orig/fs/bio.c  2010-08-13 04:22:33.000000000 -0400
-+++ linux-2.6.32.13-0.5/fs/bio.c       2010-09-08 15:35:44.000000000 -0400
-@@ -575,8 +575,7 @@ static int __bio_add_page(struct request
-        * make this too complex.
-        */
--      while (bio->bi_phys_segments >= queue_max_phys_segments(q)
--             || bio->bi_phys_segments >= queue_max_hw_segments(q)) {
-+      while (bio->bi_phys_segments >= queue_max_phys_segments(q)) {
-               if (retried_segments)
-                       return 0;
diff --git a/lustre/kernel_patches/patches/export-2.6.32-vanilla.patch b/lustre/kernel_patches/patches/export-2.6.32-vanilla.patch
deleted file mode 100644 (file)
index 95157b3..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-security_inode_unlink() was used in filter_vfs_unlink() to avoid
-lock ordering problems.  This is no longer needed for Lustre 2.4
-with the change to osd-ldiskfs, but is kept for compatibility with
-older server code so they can share the same kernel.
-
-Index: linux+rh+chaos/security/security.c
-===================================================================
---- linux+rh+chaos.orig/security/security.c
-+++ linux+rh+chaos/security/security.c
-@@ -60,6 +60,7 @@ int __init security_init(void)
-       return 0;
- }
-+EXPORT_SYMBOL(security_inode_unlink);
- /* Save user chosen LSM */
- static int __init choose_lsm(char *str)
diff --git a/lustre/kernel_patches/patches/jbd2-commit-timer-no-jiffies-rounding.diff b/lustre/kernel_patches/patches/jbd2-commit-timer-no-jiffies-rounding.diff
deleted file mode 100644 (file)
index e809572..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: linux-2.6.27.21-0.1/fs/jbd2/transaction.c
-===================================================================
---- linux-2.6.27.21-0.1.orig/fs/jbd2/transaction.c     2009-06-10 11:11:41.000000000 -0600
-+++ linux-2.6.27.21-0.1/fs/jbd2/transaction.c  2009-06-10 11:12:32.000000000 -0600
-@@ -54,7 +54,7 @@
-       INIT_LIST_HEAD(&transaction->t_inode_list);
-       /* Set up the commit timer for the new transaction. */
--      journal->j_commit_timer.expires = round_jiffies(transaction->t_expires);
-+      journal->j_commit_timer.expires = transaction->t_expires;
-       add_timer(&journal->j_commit_timer);
-       J_ASSERT(journal->j_running_transaction == NULL);
diff --git a/lustre/kernel_patches/patches/quota-support-64-bit-quota-format.patch b/lustre/kernel_patches/patches/quota-support-64-bit-quota-format.patch
deleted file mode 100644 (file)
index a1ae56b..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-From: Jan Kara <jack@suse.cz>
-
-Implement conversion functions for new version (version 1) of quota format
-which supports 64-bit block and inode limits and 64-bit inode usage.  The
-original implementation has been written by Andrew Perepechko.
-
-Signed-off-by: Andrew Perepechko <andrew.perepechko@sun.com>
-Signed-off-by: Jan Kara <jack@suse.cz>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-
-diff --git a/fs/quota/quota_v2.c a/fs/quota/quota_v2.c
---- a/fs/quota/quota_v2.c
-+++ b/fs/quota/quota_v2.c
-@@ -23,14 +23,23 @@
- #define __QUOTA_V2_PARANOIA
--static void v2_mem2diskdqb(void *dp, struct dquot *dquot);
--static void v2_disk2memdqb(struct dquot *dquot, void *dp);
--static int v2_is_id(void *dp, struct dquot *dquot);
--
--static struct qtree_fmt_operations v2_qtree_ops = {
--      .mem2disk_dqblk = v2_mem2diskdqb,
--      .disk2mem_dqblk = v2_disk2memdqb,
--      .is_id = v2_is_id,
-+static void v2r0_mem2diskdqb(void *dp, struct dquot *dquot);
-+static void v2r0_disk2memdqb(struct dquot *dquot, void *dp);
-+static int v2r0_is_id(void *dp, struct dquot *dquot);
-+static void v2r1_mem2diskdqb(void *dp, struct dquot *dquot);
-+static void v2r1_disk2memdqb(struct dquot *dquot, void *dp);
-+static int v2r1_is_id(void *dp, struct dquot *dquot);
-+
-+static struct qtree_fmt_operations v2r0_qtree_ops = {
-+      .mem2disk_dqblk = v2r0_mem2diskdqb,
-+      .disk2mem_dqblk = v2r0_disk2memdqb,
-+      .is_id = v2r0_is_id,
-+};
-+
-+static struct qtree_fmt_operations v2r1_qtree_ops = {
-+      .mem2disk_dqblk = v2r1_mem2diskdqb,
-+      .disk2mem_dqblk = v2r1_disk2memdqb,
-+      .is_id = v2r1_is_id,
- };
- #define QUOTABLOCK_BITS 10
-@@ -46,23 +55,32 @@
-       return blocks << QUOTABLOCK_BITS;
- }
-+static int v2_read_header(struct super_block *sb, int type,
-+                          struct v2_disk_dqheader *dqhead)
-+{
-+      ssize_t size;
-+
-+      size = sb->s_op->quota_read(sb, type, (char *)dqhead,
-+                                  sizeof(struct v2_disk_dqheader), 0);
-+      if (size != sizeof(struct v2_disk_dqheader)) {
-+              printk("quota_v2: failed read expected=%zd got=%zd",
-+                          sizeof(struct v2_disk_dqheader), size);
-+              return 0;
-+      }
-+      return 1;
-+}
-+
- /* Check whether given file is really vfsv0 quotafile */
- static int v2_check_quota_file(struct super_block *sb, int type)
- {
-       struct v2_disk_dqheader dqhead;
--      ssize_t size;
-       static const uint quota_magics[] = V2_INITQMAGICS;
-       static const uint quota_versions[] = V2_INITQVERSIONS;
-  
--      size = sb->s_op->quota_read(sb, type, (char *)&dqhead,
--                                  sizeof(struct v2_disk_dqheader), 0);
--      if (size != sizeof(struct v2_disk_dqheader)) {
--              printk("quota_v2: failed read expected=%zd got=%zd\n",
--                      sizeof(struct v2_disk_dqheader), size);
-+      if (!v2_read_header(sb, type, &dqhead))
-               return 0;
--      }
-       if (le32_to_cpu(dqhead.dqh_magic) != quota_magics[type] ||
--          le32_to_cpu(dqhead.dqh_version) != quota_versions[type])
-+          le32_to_cpu(dqhead.dqh_version) > quota_versions[type])
-               return 0;
-       return 1;
- }
-@@ -71,9 +89,15 @@
- static int v2_read_file_info(struct super_block *sb, int type)
- {
-       struct v2_disk_dqinfo dinfo;
-+      struct v2_disk_dqheader dqhead;
-       struct mem_dqinfo *info = sb_dqinfo(sb, type);
-       struct qtree_mem_dqinfo *qinfo;
-       ssize_t size;
-+      unsigned int version;
-+
-+      if (!v2_read_header(sb, type, &dqhead))
-+              return -1;
-+      version = le32_to_cpu(dqhead.dqh_version);
-       size = sb->s_op->quota_read(sb, type, (char *)&dinfo,
-              sizeof(struct v2_disk_dqinfo), V2_DQINFOOFF);
-@@ -89,9 +113,15 @@
-               return -1;
-       }
-       qinfo = info->dqi_priv;
--      /* limits are stored as unsigned 32-bit data */
--      info->dqi_maxblimit = 0xffffffff;
--      info->dqi_maxilimit = 0xffffffff;
-+      if (version == 0) {
-+              /* limits are stored as unsigned 32-bit data */
-+              info->dqi_maxblimit = 0xffffffff;
-+              info->dqi_maxilimit = 0xffffffff;
-+      } else {
-+              /* used space is stored as unsigned 64-bit value */
-+              info->dqi_maxblimit = 0xffffffffffffffffULL;    /* 2^64-1 */
-+              info->dqi_maxilimit = 0xffffffffffffffffULL;
-+      }
-       info->dqi_bgrace = le32_to_cpu(dinfo.dqi_bgrace);
-       info->dqi_igrace = le32_to_cpu(dinfo.dqi_igrace);
-       info->dqi_flags = le32_to_cpu(dinfo.dqi_flags);
-@@ -103,8 +133,13 @@
-       qinfo->dqi_blocksize_bits = V2_DQBLKSIZE_BITS;
-       qinfo->dqi_usable_bs = 1 << V2_DQBLKSIZE_BITS;
-       qinfo->dqi_qtree_depth = qtree_depth(qinfo);
--      qinfo->dqi_entry_size = sizeof(struct v2_disk_dqblk);
--      qinfo->dqi_ops = &v2_qtree_ops;
-+      if (version == 0) {
-+              qinfo->dqi_entry_size = sizeof(struct v2r0_disk_dqblk);
-+              qinfo->dqi_ops = &v2r0_qtree_ops;
-+      } else {
-+              qinfo->dqi_entry_size = sizeof(struct v2r1_disk_dqblk);
-+              qinfo->dqi_ops = &v2r1_qtree_ops;
-+      }
-       return 0;
- }
-@@ -135,9 +170,9 @@
-       return 0;
- }
--static void v2_disk2memdqb(struct dquot *dquot, void *dp)
-+static void v2r0_disk2memdqb(struct dquot *dquot, void *dp)
- {
--      struct v2_disk_dqblk *d = dp, empty;
-+      struct v2r0_disk_dqblk *d = dp, empty;
-       struct mem_dqblk *m = &dquot->dq_dqb;
-       m->dqb_ihardlimit = le32_to_cpu(d->dqb_ihardlimit);
-@@ -149,15 +184,15 @@
-       m->dqb_curspace = le64_to_cpu(d->dqb_curspace);
-       m->dqb_btime = le64_to_cpu(d->dqb_btime);
-       /* We need to escape back all-zero structure */
--      memset(&empty, 0, sizeof(struct v2_disk_dqblk));
-+      memset(&empty, 0, sizeof(struct v2r0_disk_dqblk));
-       empty.dqb_itime = cpu_to_le64(1);
--      if (!memcmp(&empty, dp, sizeof(struct v2_disk_dqblk)))
-+      if (!memcmp(&empty, dp, sizeof(struct v2r0_disk_dqblk)))
-               m->dqb_itime = 0;
- }
--static void v2_mem2diskdqb(void *dp, struct dquot *dquot)
-+static void v2r0_mem2diskdqb(void *dp, struct dquot *dquot)
- {
--      struct v2_disk_dqblk *d = dp;
-+      struct v2r0_disk_dqblk *d = dp;
-       struct mem_dqblk *m = &dquot->dq_dqb;
-       struct qtree_mem_dqinfo *info =
-                       sb_dqinfo(dquot->dq_sb, dquot->dq_type)->dqi_priv;
-@@ -175,9 +210,60 @@
-               d->dqb_itime = cpu_to_le64(1);
- }
--static int v2_is_id(void *dp, struct dquot *dquot)
-+static int v2r0_is_id(void *dp, struct dquot *dquot)
-+{
-+      struct v2r0_disk_dqblk *d = dp;
-+      struct qtree_mem_dqinfo *info =
-+                      sb_dqinfo(dquot->dq_sb, dquot->dq_type)->dqi_priv;
-+
-+      if (qtree_entry_unused(info, dp))
-+              return 0;
-+      return le32_to_cpu(d->dqb_id) == dquot->dq_id;
-+}
-+
-+static void v2r1_disk2memdqb(struct dquot *dquot, void *dp)
-+{
-+      struct v2r1_disk_dqblk *d = dp, empty;
-+      struct mem_dqblk *m = &dquot->dq_dqb;
-+
-+      m->dqb_ihardlimit = le64_to_cpu(d->dqb_ihardlimit);
-+      m->dqb_isoftlimit = le64_to_cpu(d->dqb_isoftlimit);
-+      m->dqb_curinodes = le64_to_cpu(d->dqb_curinodes);
-+      m->dqb_itime = le64_to_cpu(d->dqb_itime);
-+      m->dqb_bhardlimit = v2_qbtos(le64_to_cpu(d->dqb_bhardlimit));
-+      m->dqb_bsoftlimit = v2_qbtos(le64_to_cpu(d->dqb_bsoftlimit));
-+      m->dqb_curspace = le64_to_cpu(d->dqb_curspace);
-+      m->dqb_btime = le64_to_cpu(d->dqb_btime);
-+      /* We need to escape back all-zero structure */
-+      memset(&empty, 0, sizeof(struct v2r1_disk_dqblk));
-+      empty.dqb_itime = cpu_to_le64(1);
-+      if (!memcmp(&empty, dp, sizeof(struct v2r1_disk_dqblk)))
-+              m->dqb_itime = 0;
-+}
-+
-+static void v2r1_mem2diskdqb(void *dp, struct dquot *dquot)
-+{
-+      struct v2r1_disk_dqblk *d = dp;
-+      struct mem_dqblk *m = &dquot->dq_dqb;
-+      struct qtree_mem_dqinfo *info =
-+              sb_dqinfo(dquot->dq_sb, dquot->dq_type)->dqi_priv;
-+
-+      d->dqb_ihardlimit = cpu_to_le64(m->dqb_ihardlimit);
-+      d->dqb_isoftlimit = cpu_to_le64(m->dqb_isoftlimit);
-+      d->dqb_curinodes = cpu_to_le64(m->dqb_curinodes);
-+      d->dqb_itime = cpu_to_le64(m->dqb_itime);
-+      d->dqb_bhardlimit = cpu_to_le64(v2_stoqb(m->dqb_bhardlimit));
-+      d->dqb_bsoftlimit = cpu_to_le64(v2_stoqb(m->dqb_bsoftlimit));
-+      d->dqb_curspace = cpu_to_le64(m->dqb_curspace);
-+      d->dqb_btime = cpu_to_le64(m->dqb_btime);
-+      d->dqb_id = cpu_to_le32(dquot->dq_id);
-+      if (qtree_entry_unused(info, dp))
-+              d->dqb_itime = cpu_to_le64(1);
-+}
-+
-+static int v2r1_is_id(void *dp, struct dquot *dquot)
- {
--      struct v2_disk_dqblk *d = dp;
-+      struct v2r1_disk_dqblk *d = dp;
-       struct qtree_mem_dqinfo *info =
-                       sb_dqinfo(dquot->dq_sb, dquot->dq_type)->dqi_priv;
-@@ -301,20 +303,32 @@ static struct quota_format_ops v2_format
-       .release_dqblk          = v2_release_dquot,
- };
--static struct quota_format_type v2_quota_format = {
-+static struct quota_format_type v2r0_quota_format = {
-       .qf_fmt_id      = QFMT_VFS_V0,
-       .qf_ops         = &v2_format_ops,
-       .qf_owner       = THIS_MODULE
- };
-+static struct quota_format_type v2r1_quota_format = {
-+      .qf_fmt_id      = QFMT_VFS_V1,
-+      .qf_ops         = &v2_format_ops,
-+      .qf_owner       = THIS_MODULE
-+};
-+
- static int __init init_v2_quota_format(void)
- {
--      return register_quota_format(&v2_quota_format);
-+      int ret;
-+
-+      ret = register_quota_format(&v2r0_quota_format);
-+      if (ret)
-+              return ret;
-+      return register_quota_format(&v2r1_quota_format);
- }
- static void __exit exit_v2_quota_format(void)
- {
--      unregister_quota_format(&v2_quota_format);
-+      unregister_quota_format(&v2r0_quota_format);
-+      unregister_quota_format(&v2r1_quota_format);
- }
- module_init(init_v2_quota_format);
-diff --git a/fs/quota/quotaio_v2.h b/fs/quota/quotaio_v2.h
---- a/fs/quota/quotaio_v2.h
-+++ b/fs/quota/quotaio_v2.h
-@@ -17,8 +17,8 @@
- }
- #define V2_INITQVERSIONS {\
--      0,              /* USRQUOTA */\
--      0               /* GRPQUOTA */\
-+      1,              /* USRQUOTA */\
-+      1               /* GRPQUOTA */\
- }
- /* First generic header */
-@@ -28,11 +28,11 @@ struct v2_disk_dqheader {
- };
- /*
-- * The following structure defines the format of the disk quota file
-- * (as it appears on disk) - the file is a radix tree whose leaves point
-- * to blocks of these structures.
-+ * The following structure defines the format of the disk quota file in version
-+ * 0 - the file is a radix tree whose leaves point to blocks of these
-+ * structures.
-  */
--struct v2_disk_dqblk {
-+struct v2r0_disk_dqblk {
-       __le32 dqb_id;          /* id this quota applies to */
-       __le32 dqb_ihardlimit;  /* absolute limit on allocated inodes */
-       __le32 dqb_isoftlimit;  /* preferred inode limit */
-@@ -44,6 +44,20 @@ struct v2_disk_dqblk {
-       __le64 dqb_itime;       /* time limit for excessive inode use */
- };
-+/* The same structure in quota file version 1 */
-+struct v2r1_disk_dqblk {
-+      __le32 dqb_id;          /* id this quota applies to */
-+      __le32 dqb_padding;     /* padding field */
-+      __le64 dqb_ihardlimit;  /* absolute limit on allocated inodes */
-+      __le64 dqb_isoftlimit;  /* preferred inode limit */
-+      __le64 dqb_curinodes;   /* current # allocated inodes */
-+      __le64 dqb_bhardlimit;  /* absolute limit on disk space */
-+      __le64 dqb_bsoftlimit;  /* preferred limit on disk space */
-+      __le64 dqb_curspace;    /* current space occupied (in bytes) */
-+      __le64 dqb_btime;       /* time limit for excessive disk use */
-+      __le64 dqb_itime;       /* time limit for excessive inode use */
-+};
-+
- /* Header with type and version specific information */
- struct v2_disk_dqinfo {
-       __le32 dqi_bgrace;      /* Time before block soft limit becomes hard limit */
-_
-diff --git a/include/linux/quota.h b/include/linux/quota.h
---- a/include/linux/quota.h
-+++ b/include/linux/quota.h
-@@ -73,6 +73,8 @@
- /* Quota format type IDs */
- #define       QFMT_VFS_OLD 1
- #define       QFMT_VFS_V0 2
-+#define QFMT_OCFS2 3
-+#define QFMT_VFS_V1 4
- /* Size of block in which space limits are passed through the quota
-  * interface */
-@@ -398,6 +398,7 @@ struct quota_module_name {
- #define INIT_QUOTA_MODULE_NAMES {\
-       {QFMT_VFS_OLD, "quota_v1"},\
-       {QFMT_VFS_V0, "quota_v2"},\
-+      {QFMT_VFS_V1, "quota_v2"},\
-       {0, NULL}}
- #else
index 2429635..50da2c5 100644 (file)
@@ -2,7 +2,6 @@ mpt-fusion-max-sge-rhel6.patch
 raid5-mmp-unplug-dev-rhel6.patch
 dev_read_only-2.6.32-rhel6.patch
 blkdev_tunables-2.6-rhel6.patch
-export-2.6.32-vanilla.patch
 bh_lru_size_config.patch
 quota-replace-dqptr-sem.patch
 quota-avoid-dqget-calls.patch
index 4cfc467..a513429 100644 (file)
@@ -1,7 +1,5 @@
 raid5-mmp-unplug-dev-sles11sp1.patch
 dev_read_only-2.6.32-sles11.patch
-quota-support-64-bit-quota-format.patch
-export-2.6.32-vanilla.patch
 bh_lru_size_config.patch
 quota-replace-dqptr-sem-sles11.patch
 quota-avoid-dqget-calls.patch