]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.suse/no-partition-scan
Imported linux-2.6.27.39 suse/xen patches.
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.suse / no-partition-scan
diff --git a/src/patches/suse-2.6.27.31/patches.suse/no-partition-scan b/src/patches/suse-2.6.27.31/patches.suse/no-partition-scan
deleted file mode 100644 (file)
index d880f02..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-From: Hannes Reinecke <hare@suse.de>
-Subject: Implement 'no_partition_scan' commandline option
-Refences: FATE#303697
-
-Under certain setups the partition table on the disk is not
-useable directly (eg for dmraid or multipathing). So we should
-be able to switch it off completely so as not to be flooded with
-pointless messages.
-
-Signed-off-by: Hannes Reinecke <hare@suse.de>
-
----
- block/genhd.c         |   38 ++++++++++++++++++++++++++++++++++++--
- fs/partitions/check.c |    2 ++
- include/linux/genhd.h |    1 +
- 3 files changed, 39 insertions(+), 2 deletions(-)
-
---- a/block/genhd.c
-+++ b/block/genhd.c
-@@ -173,6 +173,18 @@ static int exact_lock(dev_t devt, void *
-       return 0;
- }
-+static int __read_mostly no_partition_scan;
-+
-+static int __init no_partition_scan_setup(char *str)
-+{
-+      no_partition_scan = 1;
-+      printk(KERN_INFO "genhd: omit partition scan.\n");
-+
-+      return 1;
-+}
-+
-+__setup("no_partition_scan", no_partition_scan_setup);
-+
- /**
-  * add_disk - add partitioning information to kernel list
-  * @disk: per-device partitioning information
-@@ -186,6 +198,8 @@ void add_disk(struct gendisk *disk)
-       int retval;
-       disk->flags |= GENHD_FL_UP;
-+      if (no_partition_scan)
-+              disk->flags |= GENHD_FL_NO_PARTITION_SCAN;
-       blk_register_region(MKDEV(disk->major, disk->first_minor),
-                           disk->minors, NULL, exact_match, exact_lock, disk);
-       register_disk(disk);
-@@ -429,7 +443,27 @@ static ssize_t disk_range_show(struct de
- {
-       struct gendisk *disk = dev_to_disk(dev);
--      return sprintf(buf, "%d\n", disk->minors);
-+      return sprintf(buf, "%d\n",
-+                     (disk->flags & GENHD_FL_NO_PARTITION_SCAN ? 0 : disk->minors));
-+}
-+
-+static ssize_t disk_range_store(struct device *dev,
-+                              struct device_attribute *attr,
-+                              const char *buf, size_t count)
-+{
-+      struct gendisk *disk = dev_to_disk(dev);
-+      int i;
-+
-+      if (count > 0 && sscanf(buf, "%d", &i) > 0) {
-+              if (i == 0)
-+                      disk->flags |= GENHD_FL_NO_PARTITION_SCAN;
-+              else if (i <= disk->minors)
-+                      disk->flags &= ~GENHD_FL_NO_PARTITION_SCAN;
-+              else
-+                      count = -EINVAL;
-+      }
-+
-+      return count;
- }
- static ssize_t disk_removable_show(struct device *dev,
-@@ -519,7 +553,7 @@ static ssize_t disk_fail_store(struct de
- #endif
--static DEVICE_ATTR(range, S_IRUGO, disk_range_show, NULL);
-+static DEVICE_ATTR(range, S_IRUGO|S_IWUSR, disk_range_show, disk_range_store);
- static DEVICE_ATTR(removable, S_IRUGO, disk_removable_show, NULL);
- static DEVICE_ATTR(ro, S_IRUGO, disk_ro_show, NULL);
- static DEVICE_ATTR(size, S_IRUGO, disk_size_show, NULL);
---- a/fs/partitions/check.c
-+++ b/fs/partitions/check.c
-@@ -486,6 +486,8 @@ int rescan_partitions(struct gendisk *di
-               disk->fops->revalidate_disk(disk);
-       check_disk_size_change(disk, bdev);
-       bdev->bd_invalidated = 0;
-+      if (disk->flags & GENHD_FL_NO_PARTITION_SCAN)
-+              return 0;
-       if (!get_capacity(disk) || !(state = check_partition(disk, bdev)))
-               return 0;
-       if (IS_ERR(state))      /* I/O error reading the partition table */
---- a/include/linux/genhd.h
-+++ b/include/linux/genhd.h
-@@ -109,6 +109,7 @@ struct hd_struct {
- #define GENHD_FL_UP                           16
- #define GENHD_FL_SUPPRESS_PARTITION_INFO      32
- #define GENHD_FL_FAIL                         64
-+#define GENHD_FL_NO_PARTITION_SCAN            128
- struct gendisk {
-       int major;                      /* major number of driver */