SHA256
1
0
forked from pool/mdadm
mdadm/0152-udev-rules-introduce-rules-for-cluster-md-to-confirm.patch
Neil Brown 849a39cd07 Accepting request 548207 from home:colyli:branches:Base:System
- Update mdadm for SLE15, for bug fixes and new feature enhancement
- 1000-The-mdcheck-script-now-adds-messages-to-the-system.patch is
  removed because upstream has similar fix with almost identical
  funcationality.
- The following patches are not deleted indeed, they are renamed
  and added into all other new-added patches with different perfix
  numbers,
  0038-Create-Fixup-bad-placement-of-logical-in-multi-line-.patch
  0039-Create-Fixup-various-whitespace-issues.patch
  0040-mdadm.c-fix-compile-warning-mdfd-is-uninitialized.patch
  0041-mdopen-use-parameters-new_array-to-create-arrays-whe.patch
  0042-mdadm-manpage-update-manpage-for-readonly-parameter.patch
  0043-mdadm-manpage-clustered-arrays-don-t-support-array-s.patch
  0044-maps-Terminate-modes-map-correctly.patch
  0045-Grow_continue_command-ensure-content-is-properly-ini.patch
  0046-systemd-mdadm-last-resort-use-ConditionPathExists-in.patch
  0047-Detail-ensure-export-names-are-acceptable-as-shell-v.patch
  0048-Grow-set-component-size-prior-to-array-size.patch
  0049-Grow-don-t-allow-to-enable-PPL-when-reshape-is-in-pr.patch
  0050-Grow-don-t-allow-array-geometry-change-with-ppl-enab.patch
  0051-IMSM-Correct-examine-output-for-4k-disks.patch
  0052-imsm-allow-drives-in-a-container-regardless-of-secto.patch
  0053-imsm-allocate-buffer-to-support-maximum-sector-size.patch
  0054-imsm-don-t-allow-disks-with-different-sector-size-in.patch
  0055-Allow-more-spare-selection-criteria.patch
  0056-Add-sector-size-as-spare-selection-criterion.patch
  0057-super1-fix-sb-max_dev-when-adding-a-new-disk-in-line.patch
  0058-super1-only-set-clustered-flag-when-bitmap-is-presen.patch
  0059-To-support-clustered-raid10.patch
  0060-udev-rules-introduce-rules-for-cluster-md-to-confirm.patch
- The following patche set includes the above renamed patches,
  they have bug fixes for bsc#1068030, bsc#1069165, bsc#1069167,
  and some other fixes and enhancement for raid5 ppl, imsm, and
  general mdadm code,
  0038-mdadm-Create-declaring-an-existing-struct-within-sam.patch
  0039-Create-Fixup-bad-placement-of-logical-in-multi-line-.patch
  0040-Create-Fixup-various-whitespace-issues.patch
  0041-mdadm.c-fix-compile-warning-mdfd-is-uninitialized.patch
  0042-mdopen-use-parameters-new_array-to-create-arrays-whe.patch
  0043-mdadm-manpage-update-manpage-for-readonly-parameter.patch
  0044-mdadm-manpage-clustered-arrays-don-t-support-array-s.patch
  0045-maps-Terminate-modes-map-correctly.patch
  0046-Grow_continue_command-ensure-content-is-properly-ini.patch
  0047-systemd-mdadm-last-resort-use-ConditionPathExists-in.patch
  0048-Detail-ensure-export-names-are-acceptable-as-shell-v.patch
  0049-Grow-set-component-size-prior-to-array-size.patch
  0050-Grow-don-t-allow-to-enable-PPL-when-reshape-is-in-pr.patch
  0051-Grow-don-t-allow-array-geometry-change-with-ppl-enab.patch
  0052-IMSM-Correct-examine-output-for-4k-disks.patch
  0053-imsm-allow-drives-in-a-container-regardless-of-secto.patch
  0054-imsm-allocate-buffer-to-support-maximum-sector-size.patch
  0055-imsm-don-t-allow-disks-with-different-sector-size-in.patch
  0056-mdadm-mdmon-deleted-the-abort_reshape-never-invoked.patch
  0057-util-Introduce-md_get_array_info.patch
  0058-Incremental-Remove-redundant-call-for-GET_ARRAY_INFO.patch
  0059-util-Introduce-md_get_disk_info.patch
  0060-util-Introduce-md_set_array_info.patch
  0061-md_u-Remove-some-unused-ioctl-declarations.patch
  0062-mdadm-grow-reshape-would-be-stuck-from-raid1-to-raid.patch
  0063-sysfs-Use-the-presence-of-sys-block-dev-md-as-indica.patch
  0064-sysfs-Make-sysfs_init-return-an-error-code.patch
  0065-util-must_be_container-Use-sysfs_read-GET_VERSION-to.patch
  0066-util-set_array_info-Simplify-code-since-md_get_versi.patch
  0067-Assemble-Assemble-Stop-checking-kernel-md-driver-ver.patch
  0068-Build-Stop-bothering-about-supporting-md-driver-olde.patch
  0069-Grow-Stop-bothering-about-md-driver-versions-older-t.patch
  0070-Detail-Stop-bothering-about-md-drivers-older-than-0..patch
  0071-Create-Remove-all-attemps-to-handle-md-driver-older-.patch
  0072-Manage-Remove-all-references-to-md_get_version.patch
  0073-Query-Remove-all-references-to-md_get_version.patch
  0074-bitmap-Remove-use-of-md_get_version.patch
  0075-mdmon-Stop-bothering-about-md_get_version.patch
  0076-mdopen-open_mddev-Use-md_get_array_info-to-determine.patch
  0077-mdassemble-Use-md_get_array_info-to-check-for-valid-.patch
  0078-Assemble-Assemble-Get-rid-of-last-use-of-md_get_vers.patch
  0079-util-Finally-kill-off-md_get_version.patch
  0080-mdadm-Fail-for-kernels-older-than-2.6.15.patch
  0081-Revert-mdadm-grow-reshape-would-be-stuck-from-raid1-.patch
  0082-Retire-mdassemble.patch
  0083-super1-Clean-up-various-style-abuses.patch
  0084-Detail-Remove-pre-2.6-code-for-printing-info-on-rebu.patch
  0085-Assemble-Remove-obsolete-test-for-kernels-older-than.patch
  0086-Detail-Fixup-ugly-if-foo-abuse.patch
  0087-Query-Handle-error-returned-by-fstat.patch
  0088-Query-Use-sysfs-to-obtain-data-if-possible.patch
  0089-sysfs-Parse-array_state-in-sysfs_read.patch
  0090-util-Introduce-md_array_active-helper.patch
  0091-maps-Use-keyvalue-for-null-terminator-to-indicate-un.patch
  0092-util-Get-rid-of-unused-enough_fd.patch
  0093-mdadm-retire-mdassemble-in-make-everything.patch
  0094-Query-Quiet-gcc-since-it-cannot-know-errno-0-in-this.patch
  0095-Makefile-Default-to-O2-optimization.patch
  0096-maps-Simplify-implementation-of-map_name.patch
  0097-Don-t-use-UnSet-with-consistency_policy.patch
  0098-Detail-determine-array-state-from-sysfs.patch
  0099-Detail-Respect-code-lines-are-80-character-wide.patch
  0100-Detail-Reinstate-support-for-not-having-sysfs.patch
  0101-Incremental-Use-md_array_active-where-applicable.patch
  0102-Incremental-Cleanup-some-if-statement-spaghetti.patch
  0103-Create-tell-udev-md-device-is-not-ready-when-first-c.patch
  0104-Incremental-Use-md_array_active-to-determine-state-o.patch
  0105-Manage-Manage_ro-Use-md_array_active.patch
  0106-IMSM-Initialize-my_vol_raid_dev_num-during-vol-creat.patch
  0107-Grow-Grow_continue_command-Avoid-aliasing-array-vari.patch
  0108-change-back-0644-permission-for-Grow.c.patch
  0109-util-md_array_valid-Introduce-md_array_valid-helper.patch
  0110-kernel-patch-Remove-obsolete-kernel-patches-against-.patch
  0111-mdassemble-Kill-off-the-last-remains.patch
  0112-mdadm-util-unify-fstat-checking-blkdev-into-function.patch
  0113-mdadm-util-unify-stat-checking-blkdev-into-function.patch
  0114-Fix-typo-in-new-udev-rule.patch
  0115-Incremental-return-is-not-a-function.patch
  0116-sysfs-sysfs_read-Count-active_disks-and-failed_disks.patch
  0117-container_members_max_degradation-Switch-to-using-sy.patch
  0118-IncrementalScan-Use-md_array_active-instead-of-md_ge.patch
  0119-Mention-endian-in-documentation-for-update-byte-orde.patch
  0120-Monitor-Use-md_array_active-instead-of-manually-fidd.patch
  0121-Monitor-Code-is-80-characters-per-line.patch
  0122-mdadm-md.4-set-page-length-as-1000-to-avoid-warnings.patch
  0123-Allow-more-spare-selection-criteria.patch
  0124-Add-sector-size-as-spare-selection-criterion.patch
  0125-Monitor-check_array-Centralize-exit-path.patch
  0126-Monitor-check_array-Reduce-duplicated-error-handling.patch
  0127-Monitor-check_array-Declate-mdinfo-instance-globally.patch
  0128-Monitor-check_array-Read-sysfs-entry-earlier.patch
  0129-Monitor-check_array-Obtain-RAID-level-from-syfs.patch
  0130-Monitor-check_array-Get-failed_disks-from-sysfs.patch
  0131-Monitor-check_array-Get-array_disks-from-sysfs.patch
  0132-Monitor-check_array-Get-nr_disks-active_disks-and-sp.patch
  0133-sysfs-sysfs_read-Count-working_disks.patch
  0134-Monitor-check_array-Use-working_disks-from-sysfs.patch
  0135-retire-the-APIs-that-driver-no-longer-supports.patch
  0136-Monitor-Not-much-point-declaring-mdlist-in-both-fork.patch
  0137-Monitor-mailfrom-is-initialized-correctly.patch
  0138-Monitor-Fixup-a-pile-of-whitespace-issues.patch
  0139-mdadm-Uninitialized-variable-rdev.patch
  0140-super-ddf-sysfs_read-takes-a-pointer-as-device-name-.patch
  0141-mdadm-Fixup-a-large-number-of-bad-formatting-of-logi.patch
  0142-mdadm-Fixup-more-broken-logical-operator-formatting.patch
  0143-mdadm-Fix-broken-formatting.patch
  0144-mdadm-Fixup-broken-formatting.patch
  0145-Detail-don-t-exit-if-ioctl-has-been-successful.patch
  0146-super1-fix-sb-max_dev-when-adding-a-new-disk-in-line.patch
  0147-md_u-Remove-unused-ioctl-declaration-of-START_ARRAY.patch
  0148-Get-failed-disk-count-from-array-state.patch
  0149-Monitor-don-t-assume-mdadm-parameter-is-a-block-devi.patch
  0150-super1-Always-round-data-offset-to-1M.patch
  0151-mdadm-r5cache-allow-adding-journal-to-array-without-.patch 
  0152-udev-rules-introduce-rules-for-cluster-md-to-confirm.patch
  0153-Detail-correct-output-for-active-arrays.patch
  0154-imsm-rebuild-from-2-disk-RAID10.patch (bsc#1069165)
  0155-Error-messages-should-end-with-a-newline-character.patch
  0156-Use-correct-syntax-for-passing-DEVLINKS-to-mdadm-fro.patch
  0157-super1-only-set-clustered-flag-when-bitmap-is-presen.patch
  0158-Don-t-use-exit-ERANGE.patch
  0159-Monitor-containers-don-t-have-the-same-sysfs-propert.patch
  0160-Monitor-Include-containers-in-spare-migration.patch
  0161-Detail-differentiate-between-container-and-inactive-.patch
  0162-mdadm-install-two-more-udev-rules-in-mdadm.spec.patch
  0163-mdadm-set-journal_clean-after-scanning-all-disks.patch
  0164-mdadm-bitmap-examine-bitmap-failed-when-bitmap-is-ex.patch
  0165-mdopen-call-modprobe-md_mod-if-it-might-be-needed.patch
  0166-lib-devid2kname-should-take-a-dev_t.patch
  0167-sysfs_init_dev-take-a-dev_t-argument.patch
  0168-Manage_subdevs-Use-a-dev_t.patch
  0169-util-Code-is-80-characters-wide.patch
  0170-Close-mdfd-before-returning-main-function.patch
  0171-Grow-stop-previous-reshape-process-first.patch
  0172-imsm-New-disk-controller-domains.patch
  0173-Monitor-Check-redundancy-for-arrays.patch
  0174-mdadm-grow-Component-size-must-be-larger-than-chunk-.patch
  0175-mdadm-manpage-disable-bitmap_resize-for-external-fil.patch
  0176-mdadm-fixes-some-trivial-typos-in-comments.patch
  (The following 12 patches are specifically for bsc#1068030)
  0177-Don-t-abort-starting-the-array-if-kernel-does-not-su.patch
  0178-super1-Add-support-for-multiple-ppls.patch
  0179-imsm-Add-support-for-multiple-ppls.patch
  0180-imsm-validate-multiple-ppls-during-assemble.patch
  0181-Zeroout-whole-ppl-space-during-creation-force-assemb.patch
  0182-imsm-switch-to-multiple-ppls-automatically-during-as.patch
  0183-Grow-fix-switching-on-PPL-during-recovery.patch
  0184-imsm-don-t-skip-resync-when-an-invalid-ppl-header-is.patch
  0185-imsm-Write-empty-PPL-header-if-assembling-regular-cl.patch
  0186-imsm-always-do-ppl-recovery-when-starting-a-rebuildi.patch
  0187-imsm-use-correct-map-when-validating-ppl.patch
  0188-imsm-write-initial-ppl-on-a-disk-added-for-rebuild.patch
  0189-Grow-Use-all-80-characters.patch
  0190-imsm-Set-disk-slot-number.patch
  (The following 1 patch is specifically for bsc#1069167)
  0191-mdmon-get-safe-mode-delay-file-descriptor-early.patch
  0192-mdadm-mdstat-fixup-a-number-of-broken-formatting.patch
  0193-mdadm-mdstat-correct-the-strncmp-number-4-as-6.patch
  0194-mdcheck-add-some-logging.patch
  0195-mdcheck-improve-cleanup.patch
  0196-Move-mdadm_env.sh-out-of-usr-lib-systemd.patch
  0197-mdadm-grow-adding-a-test-to-ensure-resize-was-requir.patch
  0198-mdadm-mdopen-create-new-function-create_named_array-.patch
  0199-systemd-add-I-to-description-of-mdadm-last-resort-se.patch
  0200-Incremental-Use-validate_geometry-instead-of-avail_s.patch
  0201-imsm-fix-reading-scsi-serial.patch
  0202-To-support-clustered-raid10.patch
  0203-imsm-More-precise-message-when-spanned-raid-is-creat.patch
  0204-sysfs-include-faulty-drive-in-disk-count.patch
  0205-Monitor-msg-Don-t-print-error-message-if-mdmon-doesn.patch
  0206-imsm-continue-resync-on-3-disk-RAID10.patch

OBS-URL: https://build.opensuse.org/request/show/548207
OBS-URL: https://build.opensuse.org/package/show/Base:System/mdadm?expand=0&rev=156
2017-12-04 21:26:22 +00:00

72 lines
3.1 KiB
Diff

From 0e23c597188a65bdf6cd39fafbf596f2317344da Mon Sep 17 00:00:00 2001
From: Guoqing Jiang <gqjiang@suse.com>
Date: Wed, 2 Aug 2017 10:05:41 +0800
Subject: [PATCH] udev rules: introduce rules for cluster-md to confirm device
Git-commit: 0e23c597188a65bdf6cd39fafbf596f2317344da
Patch-mainline: mdadm-4.0+
References: bsc#1069165, bsc#1069167, bsc#1068030
For cluster scenario, add device is different with native raid.
When a node issues adds a device, then the node will broadcast
a message with UUID to other nodes in the cluster. If receiving
node can find the device with the specific UUID, it must confirm
the device, otherwise reports it is missing.
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
Signed-off-by: Coly Li <colyli@suse.de>
---
Makefile | 6 ++++--
udev-md-clustered-confirm-device.rules | 21 +++++++++++++++++++++
2 files changed, 25 insertions(+), 2 deletions(-)
create mode 100644 udev-md-clustered-confirm-device.rules
diff --git a/Makefile b/Makefile
index 021d3ad..0977f27 100644
--- a/Makefile
+++ b/Makefile
@@ -256,8 +256,10 @@ install-man: mdadm.8 md.4 mdadm.conf.5 mdmon.8
$(INSTALL) -D -m 644 md.4 $(DESTDIR)$(MAN4DIR)/md.4
$(INSTALL) -D -m 644 mdadm.conf.5 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5
-install-udev: udev-md-raid-arrays.rules udev-md-raid-assembly.rules udev-md-raid-creating.rules
- @for file in 01-md-raid-creating.rules 63-md-raid-arrays.rules 64-md-raid-assembly.rules ; \
+install-udev: udev-md-raid-arrays.rules udev-md-raid-assembly.rules udev-md-raid-creating.rules \
+ udev-md-clustered-confirm-device.rules
+ @for file in 01-md-raid-creating.rules 63-md-raid-arrays.rules 64-md-raid-assembly.rules \
+ 69-md-clustered-confirm-device.rules ; \
do sed -e 's,BINDIR,$(BINDIR),g' udev-$${file#??-} > .install.tmp.1 && \
$(ECHO) $(INSTALL) -D -m 644 udev-$${file#??-} $(DESTDIR)$(UDEVDIR)/rules.d/$$file ; \
$(INSTALL) -D -m 644 .install.tmp.1 $(DESTDIR)$(UDEVDIR)/rules.d/$$file ; \
diff --git a/udev-md-clustered-confirm-device.rules b/udev-md-clustered-confirm-device.rules
new file mode 100644
index 0000000..3e5381e
--- /dev/null
+++ b/udev-md-clustered-confirm-device.rules
@@ -0,0 +1,21 @@
+# do not edit this file, it will be overwritten on update
+
+SUBSYSTEM!="block", GOTO="clustermd_end"
+
+# handle md arrays
+KERNEL!="md*", GOTO="clustermd_end"
+ENV{DEVTYPE}!="disk", GOTO="clustermd_end"
+ACTION!="change", GOTO="clustermd_end"
+ENV{EVENT}!="ADD_DEVICE", GOTO="clustermd_end"
+ENV{DEVICE_UUID}!="?*", GOTO="clustermd_end"
+ENV{RAID_DISK}!="?*", GOTO="clustermd_end"
+
+# Based on the received UUID, node confirms the device if
+# it is found by blkid, otherwise the node reports it is
+# missing.
+PROGRAM="BINDIR/blkid -o device -t UUID_SUB=$env{DEVICE_UUID}", ENV{.md.newdevice} = "$result"
+
+ENV{.md.newdevice}!="", RUN+="BINDIR/mdadm --manage $env{DEVNAME} --cluster-confirm $env{RAID_DISK}:$env{.md.newdevice}"
+ENV{.md.newdevice}=="", RUN+="BINDIR/mdadm --manage $env{DEVNAME} --cluster-confirm $env{RAID_DISK}:missing"
+
+LABEL="clustermd_end"
--
2.13.6