rpms/kernel/FC-6 linux-2.6-raid-autorun.patch, NONE, 1.1 kernel-2.6.spec, 1.2920, 1.2921
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Tue Feb 20 22:50:20 UTC 2007
- Previous message (by thread): rpms/setroubleshoot/devel .cvsignore, 1.66, 1.67 setroubleshoot.spec, 1.80, 1.81 sources, 1.76, 1.77
- Next message (by thread): rpms/samba/devel samba-3.0.24-msdfs-root-no.patch, NONE, 1.1 samba-3.0.24-vista-patchset.patch, NONE, 1.1 samba.spec, 1.72, 1.73
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: davej
Update of /cvs/dist/rpms/kernel/FC-6
In directory cvs.devel.redhat.com:/tmp/cvs-serv25038
Modified Files:
kernel-2.6.spec
Added Files:
linux-2.6-raid-autorun.patch
Log Message:
* Tue Feb 20 2007 Dave Jones <davej at redhat.com>
- restore START_ARRAY ioctl.
linux-2.6-raid-autorun.patch:
drivers/md/md.c | 82 +++++++++++++++++++++++++++++++++++++++++++
include/linux/compat_ioctl.h | 1
include/linux/raid/md_u.h | 2 -
3 files changed, 84 insertions(+), 1 deletion(-)
--- NEW FILE linux-2.6-raid-autorun.patch ---
--- vanilla/include/linux/raid/md_u.h.md 2006-11-29 16:57:37.000000000 -0500
+++ vanilla/include/linux/raid/md_u.h 2007-01-23 16:12:28.000000000 -0500
@@ -41,7 +41,7 @@
/* usage */
#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
-/* 0x31 was START_ARRAY */
+#define START_ARRAY _IO (MD_MAJOR, 0x31)
#define STOP_ARRAY _IO (MD_MAJOR, 0x32)
#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
--- vanilla/include/linux/compat_ioctl.h.md 2006-11-29 16:57:37.000000000 -0500
+++ vanilla/include/linux/compat_ioctl.h 2007-01-23 16:12:28.000000000 -0500
@@ -128,6 +128,7 @@
ULONG_IOCTL(HOT_ADD_DISK)
ULONG_IOCTL(SET_DISK_FAULTY)
COMPATIBLE_IOCTL(RUN_ARRAY)
+ULONG_IOCTL(START_ARRAY)
COMPATIBLE_IOCTL(STOP_ARRAY)
COMPATIBLE_IOCTL(STOP_ARRAY_RO)
COMPATIBLE_IOCTL(RESTART_ARRAY_RW)
--- vanilla/drivers/md/md.c.md 2006-11-29 16:57:37.000000000 -0500
+++ vanilla/drivers/md/md.c 2007-01-23 16:12:28.000000000 -0500
@@ -3486,6 +3486,67 @@
printk(KERN_INFO "md: ... autorun DONE.\n");
}
+/*
+ * import RAID devices based on one partition
+ * if possible, the array gets run as well.
+ */
+
+static int autostart_array(dev_t startdev)
+{
+ char b[BDEVNAME_SIZE];
+ int err = -EINVAL, i;
+ mdp_super_t *sb = NULL;
+ mdk_rdev_t *start_rdev = NULL, *rdev;
+
+ start_rdev = md_import_device(startdev, 0, 0);
+ if (IS_ERR(start_rdev))
+ return err;
+
+
+ /* NOTE: this can only work for 0.90.0 superblocks */
+ sb = (mdp_super_t*)page_address(start_rdev->sb_page);
+ if (sb->major_version != 0 ||
+ sb->minor_version != 90 ) {
+ printk(KERN_WARNING "md: can only autostart 0.90.0 arrays\n");
+ export_rdev(start_rdev);
+ return err;
+ }
+
+ if (test_bit(Faulty, &start_rdev->flags)) {
+ printk(KERN_WARNING
+ "md: can not autostart based on faulty %s!\n",
+ bdevname(start_rdev->bdev,b));
+ export_rdev(start_rdev);
+ return err;
+ }
+ list_add(&start_rdev->same_set, &pending_raid_disks);
+
+ for (i = 0; i < MD_SB_DISKS; i++) {
+ mdp_disk_t *desc = sb->disks + i;
+ dev_t dev = MKDEV(desc->major, desc->minor);
+
+ if (!dev)
+ continue;
+ if (dev == startdev)
+ continue;
+ if (MAJOR(dev) != desc->major || MINOR(dev) != desc->minor)
+ continue;
+ rdev = md_import_device(dev, 0, 0);
+ if (IS_ERR(rdev))
+ continue;
+
+ list_add(&rdev->same_set, &pending_raid_disks);
+ }
+
+ /*
+ * possibly return codes
+ */
+ autorun_devices(0);
+ return 0;
+
+}
+
+
static int get_version(void __user * arg)
{
mdu_version_t ver;
@@ -4243,6 +4304,27 @@
goto abort;
}
+
+ if (cmd == START_ARRAY) {
+ /* START_ARRAY doesn't need to lock the array as autostart_array
+ * does the locking, and it could even be a different array
+ */
+ static int cnt = 3;
+ if (cnt > 0 ) {
+ printk(KERN_WARNING
+ "md: %s(pid %d) used deprecated START_ARRAY ioctl. "
+ "This will not be supported beyond July 2006\n",
+ current->comm, current->pid);
+ cnt--;
+ }
+ err = autostart_array(new_decode_dev(arg));
+ if (err) {
+ printk(KERN_WARNING "md: autostart failed!\n");
+ goto abort;
+ }
+ goto done;
+ }
+
err = mddev_lock(mddev);
if (err) {
printk(KERN_INFO
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v
retrieving revision 1.2920
retrieving revision 1.2921
diff -u -r1.2920 -r1.2921
--- kernel-2.6.spec 20 Feb 2007 18:51:19 -0000 1.2920
+++ kernel-2.6.spec 20 Feb 2007 22:50:18 -0000 1.2921
@@ -444,6 +444,7 @@
Patch1770: linux-2.6-optimise-spinlock-debug.patch
Patch1771: linux-2.6-silence-noise.patch
Patch1780: linux-2.6-drivers-add-qlogic-firmware.patch
+Patch1790: linux-2.6-raid-autorun.patch
# 2.6.20 fixes for testing
Patch1787: linux-2.6-net_bcm43xx_1GB_DMA_fix.patch
@@ -1101,6 +1102,8 @@
%patch1771 -p1
# qlogic firmware
%patch1780 -p1
+# restore START_ARRAY ioctl
+%patch1790 -p1
# 2.6.20 fixes
%patch1787 -p1
@@ -2088,6 +2091,9 @@
%endif
%changelog
+* Tue Feb 20 2007 Dave Jones <davej at redhat.com>
+- restore START_ARRAY ioctl.
+
* Tue Feb 20 2007 Chuck Ebbert <cebbert at redhat.com>
- Rebase to upstream kernel 2.6.20 (davej)
- Add patch 2.6.20.1 (CVE-2007-0772)
- Previous message (by thread): rpms/setroubleshoot/devel .cvsignore, 1.66, 1.67 setroubleshoot.spec, 1.80, 1.81 sources, 1.76, 1.77
- Next message (by thread): rpms/samba/devel samba-3.0.24-msdfs-root-no.patch, NONE, 1.1 samba-3.0.24-vista-patchset.patch, NONE, 1.1 samba.spec, 1.72, 1.73
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list