diff --git a/.cvsignore b/.cvsignore index ae9f320..f42f02b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -multipath-tools-080804.tgz +multipath-tools-090429.tgz diff --git a/config_files.patch b/config_files.patch deleted file mode 100644 index ea5b1c3..0000000 --- a/config_files.patch +++ /dev/null @@ -1,936 +0,0 @@ -diff -urpN multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-clean/multipath.conf.annotated multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-patched/multipath.conf.annotated ---- multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-clean/multipath.conf.annotated 2008-04-30 06:25:16.000000000 -0500 -+++ multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-patched/multipath.conf.annotated 2008-05-02 18:22:48.000000000 -0500 -@@ -19,6 +19,7 @@ - # # name : polling_interval - # # scope : multipathd - # # desc : interval between two path checks in seconds -+# # values : n > 0 - # # default : 5 - # # - # polling_interval 10 -@@ -38,6 +39,13 @@ - # # scope : multipath - # # desc : the default path grouping policy to apply to unspecified - # # multipaths -+# # values : failover = 1 path per priority group -+# # multibus = all valid paths in 1 priority group -+# # group_by_serial = 1 priority group per detected serial -+# # number -+# # group_by_prio = 1 priority group per path priority -+# # value -+# # group_by_node_name = 1 priority group per target node name - # # default : failover - # # - # path_grouping_policy multibus -@@ -59,16 +67,27 @@ - # # exploitable prio value for example. - # # default : (null) - # # --# #prio "alua" -+# prio "alua" - # - # # --# # name : path_checker -+# # name : features -+# # scope : multipath -+# # desc : The default extra features of multipath devices. The -+# # only existing feature currently is queue_if_no_path, which -+# # is the same as setting no_path_retry to queue. -+# # values : "1 queue_if_no_path" -+# # default : (null) -+# # -+# features "1 queue_if_no_path" -+# -+# # -+# # name : path_checker, checker - # # scope : multipath & multipathd - # # desc : the default method used to determine the paths' state --# # values : readsector0|tur|emc_clariion|hp_sw|directio -+# # values : readsector0|tur|emc_clariion|hp_sw|directio|rdac|cciss_tur - # # default : directio - # # --# #path_checker directio -+# path_checker directio - # - # # - # # name : rr_min_io -@@ -103,8 +122,8 @@ - # # name : failback - # # scope : multipathd - # # desc : tell the daemon to manage path group failback, or not to. --# # 0 means immediate failback, values >0 means deffered failback --# # expressed in seconds. -+# # 0 means immediate failback, values >0 means deffered -+# # failback expressed in seconds. - # # values : manual|immediate|n > 0 - # # default : manual - # # -@@ -119,7 +138,7 @@ - # # values : queue|fail|n (>0) - # # default : (null) - # # --# #no_path_retry queue -+# no_path_retry queue - # - # # - # # name : user_friendly_names -@@ -140,13 +159,16 @@ - ## name : blacklist - ## scope : multipath & multipathd - ## desc : list of device names to discard as not multipath candidates --## default : cciss, fd, hd, md, dm, sr, scd, st, ram, raw, loop -+## Devices can be identified by their device node name "devnode", -+## their WWID "wwid", or their vender and product strings -+## "device" -+## default : fd, hd, md, dm, sr, scd, st, ram, raw, loop, dcssblk - ## - #blacklist { - # wwid 26353900f02796769 - # devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" --# devnode "^hd[a-z][[0-9]*]" --# devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]" -+# devnode "^hd[a-z]" -+# devnode "^dcssblk[0-9]*" - # device { - # vendor DEC.* - # product MSA[15]00 -@@ -199,57 +221,59 @@ - # # name : path_grouping_policy - # # scope : multipath - # # desc : path grouping policy to apply to this multipath --# # values : failover, multibus, group_by_serial --# # default : failover -+# # multibus = all valid paths in 1 priority -+# # group -+# # group_by_serial = 1 priority group per detected -+# # serial number -+# # group_by_prio = 1 priority group per path -+# # priority value -+# # group_by_node_name = 1 priority group per target -+# # node name - # # --# path_grouping_policy multibus -+# path_grouping_policy failover - # - # # --# # name : path_checker --# # scope : multipathd --# # desc : path checking alorithm to use to check path state --# # values : readsector0|tur|emc_clariion|hp_sw|directio --# # default : directio --# # --# # path_checker directio --# --# # - # # name : path_selector - # # desc : the path selector algorithm to use for this mpath - # # these algo are offered by the kernel mpath target - # # values : "round-robin 0" --# # default : "round-robin 0" - # # - # path_selector "round-robin 0" - # - # # - # # name : failback - # # scope : multipathd --# # desc : tell the daemon to manage path group failback, or not to. --# # 0 means immediate failback, values >0 means deffered failback --# # expressed in seconds. -+# # desc : tell the daemon to manage path group failback, or -+# # not to. 0 means immediate failback, values >0 means -+# # deffered failback expressed in seconds. - # # values : manual|immediate|n > 0 --# # default : manual - # # --# failback immediate -+# failback manual -+# -+# # -+# # name : rr_weight -+# # scope : multipath -+# # desc : if set to priorities the multipath configurator will -+# # assign path weights as "path prio * rr_min_io" -+# # values : priorities|uniform -+# # -+# rr_weight priorities - # - # # - # # name : no_path_retry - # # scope : multipath & multipathd --# # desc : tell the number of retries until disable queueing, or --# # "fail" means immediate failure (no queueing), -+# # desc : tell the number of retries until disable queueing, -+# # or "fail" means immediate failure (no queueing), - # # "queue" means never stop queueing - # # values : queue|fail|n (>0) --# # default : (null) - # # --# #no_path_retry queue -+# no_path_retry queue - # - # # - # # name : rr_min_io - # # scope : multipath - # # desc : the number of IO to route to a path before switching - # # to the next in the same path group --# # default : 1000 - # # - # rr_min_io 100 - # } -@@ -283,83 +307,120 @@ - # product "HSV110 (C)COMPAQ" - # - # # -+# # name : product_blacklist -+# # scope : multipath & multipathd -+# # desc : product strings to blacklist for this vendor -+# # default : none -+# # -+# product_blacklist LUNZ -+# -+# # - # # name : path_grouping_policy - # # scope : multipath - # # desc : path grouping policy to apply to multipath hosted - # # by this storage controller --# # values : failover = 1 path per priority group --# # multibus = all valid paths in 1 priority --# # group --# # group_by_serial = 1 priority group per detected --# # serial number --# # default : failover -+# # values : failover = 1 path per priority group -+# # multibus = all valid paths in 1 priority -+# # group -+# # group_by_serial = 1 priority group per detected -+# # serial number -+# # group_by_prio = 1 priority group per path -+# # priority value -+# # group_by_node_name = 1 priority group per target - # # --# path_grouping_policy multibus -+# path_grouping_policy failover - # - # # - # # name : getuid_callout - # # scope : multipath - # # desc : the program and args to callout to obtain a unique - # # path identifier. Absolute path required --# # default : /lib/udev/scsi_id -g -u -s - # # - # getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" - # - # # --# # name : prio --# # scope : multipath --# # desc : the function to call to obtain a path --# # weight. Weights are summed for each path group to --# # determine the next PG to use case of failure. --# # default : no callout, all paths equals -+# # name : path_selector -+# # desc : the path selector algorithm to use for this mpath -+# # these algo are offered by the kernel mpath target -+# # values : "round-robin 0" - # # --# prio "hp_sw" -+# path_selector "round-robin 0" - # - # # --# # name : path_checker -+# # name : path_checker, checker - # # scope : multipathd - # # desc : path checking alorithm to use to check path state --# # values : readsector0|tur|emc_clariion|hp_sw|directio --# # default : directio -+# # values : readsector0|tur|emc_clariion|hp_sw|directio|rdac| -+# # cciss_tur - # # - # path_checker directio - # - # # --# # name : path_selector --# # desc : the path selector algorithm to use for this mpath --# # these algo are offered by the kernel mpath target --# # values : "round-robin 0" --# # default : "round-robin 0" -+# # name : features -+# # scope : multipath -+# # desc : The extra features of multipath devices. The only -+# # existing feature currently is queue_if_no_path, -+# # which is the same as setting no_path_retry to queue. -+# # values : "1 queue_if_no_path" - # # --# path_selector "round-robin 0" -+# features "1 queue_if_no_path" -+# -+# # -+# # name : hardware_handler -+# # scope : multipath -+# # desc : If set, it specifies a module that will be used to -+# # perform hardware specific actions when switching -+# # path groups or handling IO errors -+# # values : "0"|"1 emc" -+# # default : "0" -+# # -+# hardware_handler "1 emc" -+# -+# # -+# # name : prio -+# # scope : multipath -+# # desc : the function to call to obtain a path -+# # weight. Weights are summed for each path group to -+# # determine the next PG to use case of failure. -+# # -+# prio "hp_sw" - # - # # - # # name : failback - # # scope : multipathd --# # desc : tell the daemon to manage path group failback, or not to. --# # 0 means immediate failback, values >0 means deffered failback --# # expressed in seconds. -+# # desc : tell the daemon to manage path group failback, or -+# # not to. 0 means immediate failback, values >0 means -+# # deffered failback expressed in seconds. - # # values : manual|immediate|n > 0 --# # default : manual - # # - # failback 30 - # - # # --# # name : rr_min_io -+# # name : rr_weight - # # scope : multipath --# # desc : the number of IO to route to a path before switching --# # to the next in the same path group --# # default : 1000 -+# # desc : if set to priorities the multipath configurator will -+# # assign path weights as "path prio * rr_min_io" -+# # values : priorities|uniform - # # --# rr_min_io 100 -+# rr_weight priorities - # - # # --# # name : product_blacklist -+# # name : no_path_retry - # # scope : multipath & multipathd --# # desc : product strings to blacklist for this vendor --# # default : none -+# # desc : tell the number of retries until disable queueing, -+# # or "fail" means immediate failure (no queueing), -+# # "queue" means never stop queueing -+# # values : queue|fail|n (>0) - # # --# product_blacklist LUN_Z -+# no_path_retry queue -+# -+# # -+# # name : rr_min_io -+# # scope : multipath -+# # desc : the number of IO to route to a path before switching -+# # to the next in the same path group -+# # -+# rr_min_io 100 - # } - # device { - # vendor "COMPAQ " -diff -urpN multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-clean/multipath.conf.defaults multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-patched/multipath.conf.defaults ---- multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-clean/multipath.conf.defaults 1969-12-31 18:00:00.000000000 -0600 -+++ multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-patched/multipath.conf.defaults 2008-05-02 18:54:06.000000000 -0500 -@@ -0,0 +1,574 @@ -+# These are the compiled in default settings. They will be used unless you -+# overwrite these values in your config file. -+ -+#defaults { -+# udev_dir /dev -+# polling_interval 5 -+# selector "round-robin 0" -+# path_grouping_policy failover -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# prio const -+# path_checker directio -+# rr_min_io 1000 -+# rr_weight uniform -+# failback manual -+# no_path_retry fail -+# user_friendly_names no -+#} -+# -+#blacklist { -+# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" -+# devnode "^hd[a-z]" -+# devnode "^dcssblk[0-9]*" -+#} -+# -+#devices { -+# device { -+# vendor "APPLE*" -+# product "Xserve RAID" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker directio -+# prio const -+# } -+# device { -+# vendor "3PARdata" -+# product "VV" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker directio -+# prio const -+# } -+# device { -+# vendor "DEC" -+# product "HSG80" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "1 hp-sw" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker hp_sw -+# prio hp_sw -+# } -+# device { -+# vendor "HP" -+# product "A6189A" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# no_path_retry 12 -+# rr_min_io 1000 -+# path_checker directio -+# prio const -+# } -+# device { -+# vendor "(COMPAQ|HP)" -+# product "(MSA|HSV)1.0.*" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "1 hp-sw" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# rr_weight uniform -+# no_path_retry 12 -+# rr_min_io 1000 -+# path_checker hp_sw -+# prio hp_sw -+# } -+# device { -+# vendor "HP" -+# product "MSA VOLUME" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry 12 -+# rr_min_io 1000 -+# path_checker tur -+# prio alua -+# } -+# device { -+# vendor "HP" -+# product "MSA2000s*" -+# getuid_callout "/sbin/cciss_id %n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry 12 -+# rr_min_io 1000 -+# path_checker tur -+# prio const -+# } -+# device { -+# vendor "(COMPAQ|HP)" -+# product "HSV1[01]1|HSV2[01]0|HSV300" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry 12 -+# rr_min_io 1000 -+# path_checker tur -+# prio alua -+# } -+# device { -+# vendor "HP" -+# product "MSA2[02]12*" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# failback immediate -+# rr_weight uniform -+# no_path_retry 12 -+# rr_min_io 1000 -+# path_checker tur -+# prio const -+# } -+# device { -+# vendor "HP" -+# product "LOGICAL VOLUME.*" -+# getuid_callout "/lib/udev/scsi_id -n -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# failback immediate -+# rr_weight uniform -+# no_path_retry 12 -+# rr_min_io 1000 -+# path_checker tur -+# prio const -+# } -+# device { -+# vendor "DDN" -+# product "SAN DataDirector" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker directio -+# prio const -+# } -+# device { -+# vendor "EMC" -+# product "SYMMETRIX" -+# getuid_callout "/lib/udev/scsi_id -g -u -ppre-spc3-83 -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker directio -+# prio const -+# } -+# device { -+# vendor "DGC" -+# product ".*" -+# product_blacklist "LUNZ" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# prio_callout "/sbin/mpath_prio_emc /dev/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "1 emc" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry 60 -+# rr_min_io 1000 -+# path_checker emc_clariion -+# prio emc -+# } -+# device { -+# vendor "FSC" -+# product "CentricStor" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_serial -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker directio -+# prio const -+# } -+# device { -+# vendor "(HITACHI|HP)" -+# product "OPEN-.*" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 100 -+# path_checker tur -+# prio const -+# } -+# device { -+# vendor "HITACHI" -+# product "DF.*" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker tur -+# prio hds -+# } -+# device { -+# vendor "IBM" -+# product "ProFibre 4000R" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker readsector0 -+# prio const -+# } -+# device { -+# vendor "IBM" -+# product "1722-600" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry 300 -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } -+# device { -+# vendor "IBM" -+# product "1742" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry queue -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } -+# device { -+# vendor "IBM" -+# product "1814" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry queue -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } -+# device { -+# vendor "IBM" -+# product "1815" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry queue -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } -+# device { -+# vendor "IBM" -+# product "3526" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry queue -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } -+# device { -+# vendor "IBM" -+# product "3542" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_serial -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker tur -+# prio const -+# } -+# device { -+# vendor "IBM" -+# product "2105(800|F20)" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_serial -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker tur -+# prio const -+# } -+# device { -+# vendor "IBM" -+# product "1750500" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker tur -+# prio alua -+# } -+# device { -+# vendor "IBM" -+# product "2107900" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker tur -+# prio const -+# } -+# device { -+# vendor "IBM" -+# product "2145" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker tur -+# prio alua -+# } -+# device { -+# vendor "IBM" -+# product "S/390 DASD ECKD" -+# product_blacklist "S/390.*" -+# getuid_callout "/sbin/dasdinfo -u -b %n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker directio -+# prio const -+# } -+# device { -+# vendor "NETAPP" -+# product "LUN.*" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# rr_min_io 128 -+# path_checker directio -+# prio netapp -+# } -+# device { -+# vendor "IBM" -+# product "Nseries.*" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# rr_min_io 128 -+# path_checker directio -+# prio netapp -+# } -+# device { -+# vendor "Pillar" -+# product "Axiom.*" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker tur -+# prio alua -+# } -+# device { -+# vendor "SGI" -+# product "TP9[13]00" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker directio -+# prio const -+# } -+# device { -+# vendor "SGI" -+# product "TP9[45]00" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry queue -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } -+# device { -+# vendor "SGI" -+# product "IS.*" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry queue -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } -+# device { -+# vendor "STK" -+# product "OPENstorage D280" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker tur -+# prio rdac -+# } -+# device { -+# vendor "SUN" -+# product "(StorEdge 3510|T4)" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker directio -+# prio const -+# } -+# device { -+# vendor "PIVOT3" -+# product "RAIGE VOLUME" -+# getuid_callout "/sbin/scsi_id -p 0x80 -g -u -s /block/%n" -+# features "1 queue_if_no_path" -+# hardware_handler "0" -+# path_selector "round-robin 0" -+# path_grouping_policy multibus -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker tur -+# prio const -+# } -+# device { -+# vendor "SUN" -+# product "CSM200_R" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry queue -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } -+# device { -+# vendor "SUN" -+# product "LCSM100_F" -+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback immediate -+# rr_weight uniform -+# no_path_retry queue -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } -+#} -diff -urpN multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-clean/multipath.conf.synthetic multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-patched/multipath.conf.synthetic ---- multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-clean/multipath.conf.synthetic 2008-04-30 06:25:16.000000000 -0500 -+++ multipath-tools-cf94ef0ee3f8046aa2b8dc90aee14edf76d4bbf7-patched/multipath.conf.synthetic 2008-05-02 18:56:12.000000000 -0500 -@@ -21,7 +21,6 @@ - # wwid 26353900f02796769 - # devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" - # devnode "^hd[a-z][[0-9]*]" --# devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]" - # device { - # vendor DEC.* - # product MSA[15]00 -@@ -61,7 +60,7 @@ - # rr_weight priorities - # no_path_retry queue - # rr_min_io 100 --# product_blacklist LUN_Z -+# product_blacklist LUNZ - # } - # device { - # vendor "COMPAQ " diff --git a/config_space_fix.patch b/config_space_fix.patch deleted file mode 100644 index c8f4b4b..0000000 --- a/config_space_fix.patch +++ /dev/null @@ -1,27 +0,0 @@ -Index: multipath-tools/libmultipath/parser.c -=================================================================== ---- multipath-tools.orig/libmultipath/parser.c -+++ multipath-tools/libmultipath/parser.c -@@ -239,12 +239,20 @@ alloc_strvec(char *string) - in_string = 0; - else - in_string = 1; -+ } else if (!in_string && (*cp == '{' || *cp == '}')) { -+ token = MALLOC(2); - -+ if (!token) -+ goto out; -+ -+ *(token) = *cp; -+ *(token + 1) = '\0'; -+ cp++; - } else { - while ((in_string || - (!isspace((int) *cp) && isascii((int) *cp) && -- *cp != '!' && *cp != '#')) && -- *cp != '\0' && *cp != '"') -+ *cp != '!' && *cp != '#' && *cp != '{' && -+ *cp != '}')) && *cp != '\0' && *cp != '"') - cp++; - strlen = cp - start; - token = MALLOC(strlen + 1); diff --git a/device-mapper-multipath.spec b/device-mapper-multipath.spec index 44275b7..33c422b 100644 --- a/device-mapper-multipath.spec +++ b/device-mapper-multipath.spec @@ -1,31 +1,29 @@ Summary: Tools to manage multipath devices using device-mapper Name: device-mapper-multipath -Version: 0.4.8 -Release: 10%{?dist} +Version: 0.4.9 +Release: 1%{?dist} License: GPL+ Group: System Environment/Base URL: http://christophe.varoqui.free.fr/ -Source0: multipath-tools-080804.tgz -Patch0: linking_change.patch -Patch1: uevent_fix.patch -Patch2: sparc64fix.patch -Patch3: config_files.patch -Patch4: redhatification.patch -Patch5: mpath_wait.patch -Patch6: multipath_rules.patch -Patch7: cciss_id.patch -Patch8: scsi_id_change.patch -Patch9: config_space_fix.patch -Patch10: fix_devt.patch -Patch11: directio_message_cleanup.patch -Patch12: binding_error.patch -Patch13: fix_kpartx.patch -Patch14: fix_umask.patch -Requires: kpartx = %{version}-%{release} + +Source0: multipath-tools-090429.tgz +Patch0: lib64_multipath.patch +Patch1: redhatification.patch +Patch2: mpath_wait.patch +Patch3: multipath_rules.patch +Patch4: cciss_id.patch +Patch5: directio_message_cleanup.patch +Patch6: binding_error.patch +Patch7: fix_kpartx.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Requires: %{name}-libs = %{version}-%{release} +Requires: kpartx = %{version}-%{release} +Requires: device-mapper >= 1.02.02-2 Requires(post): chkconfig Requires(preun): chkconfig -Requires: device-mapper >= 1.02.02-2 +Requires(preun): initscripts +Requires(postun): initscripts BuildRequires: libaio-devel, device-mapper-devel BuildRequires: libselinux-devel, libsepol-devel BuildRequires: readline-devel, ncurses-devel @@ -37,6 +35,15 @@ The tools are : * multipath : Scan the system for multipath devices and assemble them. * multipathd : Detects when paths fail and execs multipath to update things. +%package libs +Summary: %{name} modules and shared library +License: GPL+ +Group: System Environment/Libraries + +%description libs +%{name}-libs provides the path checker and prioritizer modules. It also +contains the multipath shared library, libmultipath. + %package -n kpartx Summary: Partition device manager for device-mapper devices Group: System Environment/Base @@ -47,28 +54,29 @@ kpartx manages partition creation and removal for device-mapper devices. %prep %setup -q -n multipath-tools -%patch0 -p1 -b .linking_change -%patch1 -p1 -b .uevent_fix -%patch2 -p1 -b .sparc64fix -%patch3 -p1 -b .config_files -%patch4 -p1 -b .redhatification -%patch5 -p1 -b .mpath_wait -%patch6 -p1 -b .multipath_rules -%patch7 -p1 -b .cciss_id -%patch8 -p1 -b .scsi_id_change -%patch9 -p1 -b .config_space_fix -%patch10 -p1 -b .fix_devt -%patch11 -p1 -b .directio_message -%patch12 -p1 -b .binding_error -%patch13 -p1 -b .ext_part -%patch14 -p1 -b .umask +%if %{_lib} == "lib64" +%patch0 -p1 -b .lib64_multipath +%endif +%patch1 -p1 -b .redhatification +%patch2 -p1 -b .mpath_wait +%patch3 -p1 -b .multipath_rules +%patch4 -p1 -b .cciss_id +%patch5 -p1 -b .directio_message +%patch6 -p1 -b .binding_error +%patch7 -p1 -b .fix_kpartx %build -make %{?_smp_mflags} DESTDIR=$RPM_BUILD_ROOT +%define _sbindir /sbin +%define _libdir /%{_lib} +%define _libmpathdir %{_libdir}/multipath +make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT bindir=/sbin rcdir=/etc/rc.d/init.d +make install DESTDIR=$RPM_BUILD_ROOT bindir=%{_sbindir} syslibdir=%{_libdir} libdir=%{_libmpathdir} rcdir=%{_initrddir} +install -m 0644 multipath/multipath.conf.redhat $RPM_BUILD_ROOT/etc/multipath.conf +install -m 0755 multipathd/multipathd.init.redhat $RPM_BUILD_ROOT/%{_initrddir}/multipathd +install -d $RPM_BUILD_ROOT/var/lib/multipath %clean rm -rf $RPM_BUILD_ROOT @@ -79,25 +87,23 @@ rm -rf $RPM_BUILD_ROOT %preun if [ "$1" = 0 ]; then - /sbin/service multipathd stop /dev/null 2>&1 + /sbin/service multipathd stop /dev/null 2>&1 /sbin/chkconfig --del multipathd fi %postun /sbin/ldconfig if [ "$1" -ge "1" ]; then - /sbin/service multipathd condrestart >/dev/null 2>&1 || : + /sbin/service multipathd condrestart >/dev/null 2>&1 || : fi %files %defattr(-,root,root,-) -/sbin/multipath -/sbin/multipathd -/sbin/cciss_id -/sbin/mpath_wait -/lib/libmultipath.so -/lib/multipath -/etc/rc.d/init.d/multipathd +%{_sbindir}/multipath +%{_sbindir}/multipathd +%{_sbindir}/cciss_id +%{_sbindir}/mpath_wait +%{_initrddir}/multipathd %{_mandir}/man5/multipath.conf.5.gz %{_mandir}/man8/multipath.8.gz %{_mandir}/man8/multipathd.8.gz @@ -106,6 +112,11 @@ fi %doc AUTHOR COPYING README* FAQ multipath.conf.annotated multipath.conf.defaults multipath.conf.synthetic %dir /var/lib/multipath +%files libs +%defattr(-,root,root,-) +%{_libdir}/libmultipath.so +%{_libmpathdir} +%dir %{_libmpathdir} %files -n kpartx %defattr(-,root,root,-) @@ -113,6 +124,12 @@ fi %{_mandir}/man8/kpartx.8.gz %changelog +* Thu Apr 29 2009 Mike Snitzer - 0.4.9-1 +- Updated to latest upstream 0.4.9 code: multipath-tools-090429.tgz + (git commit id: 7395bcda3a218df2eab1617df54628af0dc3456e) +- split the multipath libs out to a device-mapper-multipath-libs package +- if appropriate, install multipath libs in /lib64 and /lib64/multipath + * Thu Apr 7 2009 Milan Broz - 0.4.8-10 - Fix insecure permissions on multipathd.sock (CVE-2009-0115) @@ -144,7 +161,7 @@ fi * Mon May 19 2008 Benjamin Marzinksi 0.4.8-3 - Fixed ownership build error. - + * Mon May 19 2008 Benjamin Marzinksi 0.4.8-2 - Forgot to commit some patches. diff --git a/directio_message_cleanup.patch b/directio_message_cleanup.patch index c215996..c507d97 100644 --- a/directio_message_cleanup.patch +++ b/directio_message_cleanup.patch @@ -1,15 +1,17 @@ -Index: multipath-tools/libmultipath/checkers/directio.c -=================================================================== ---- multipath-tools.orig/libmultipath/checkers/directio.c -+++ multipath-tools/libmultipath/checkers/directio.c -@@ -148,8 +148,9 @@ check_state(int fd, struct directio_cont +diff --git a/libmultipath/checkers/directio.c b/libmultipath/checkers/directio.c +index 4728424..7624c4e 100644 +--- a/libmultipath/checkers/directio.c ++++ b/libmultipath/checkers/directio.c +@@ -148,10 +148,11 @@ check_state(int fd, struct directio_context *ct, int sync) } ct->running++; + errno = 0; r = io_getevents(ct->ioctx, 1L, 1L, &event, &timeout); -- LOG(3, "async io getevents returns %li (errno=%s)", r, strerror(errno)); -+ LOG(3, "async io_getevents returns %li (%s)", r, strerror(errno)); - if (r < 1L) { - if (ct->running > ASYNC_TIMEOUT_SEC || sync) { + if (r < 0 ) { +- LOG(3, "async io getevents returned %li (errno=%s)", r, ++ LOG(3, "async io getevents returned %li (%s)", r, + strerror(errno)); + rc = PATH_UNCHECKED; + } else if (r < 1L) { diff --git a/fix_devt.patch b/fix_devt.patch deleted file mode 100644 index 26239a2..0000000 --- a/fix_devt.patch +++ /dev/null @@ -1,25 +0,0 @@ -Index: multipath-tools/libmultipath/discovery.c -=================================================================== ---- multipath-tools.orig/libmultipath/discovery.c -+++ multipath-tools/libmultipath/discovery.c -@@ -252,7 +252,11 @@ devt2devname (char *devname, char *devt) - continue; - - if ((major == tmpmaj) && (minor == tmpmin)) { -- sprintf(block_path, "/sys/block/%s", dev); -+ if (snprintf(block_path, FILE_NAME_SIZE, "/sys/block/%s", dev) >= FILE_NAME_SIZE) { -+ condlog(0, "device name %s is too long\n", dev); -+ fclose(fd); -+ return 1; -+ } - break; - } - } -@@ -270,6 +274,7 @@ devt2devname (char *devname, char *devt) - condlog(0, "sysfs entry %s is not a directory\n", block_path); - return 1; - } -+ basename(block_path, devname); - return 0; - } - diff --git a/fix_umask.patch b/fix_umask.patch deleted file mode 100644 index 035fb9e..0000000 --- a/fix_umask.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- multipath-tools.old/multipathd/main.c 2009-04-02 12:22:37.000000000 +0200 -+++ multipath-tools/multipathd/main.c 2009-04-02 12:25:13.000000000 +0200 -@@ -718,6 +718,7 @@ uxlsnrloop (void * ap) - set_handler_callback(REINSTATE+PATH, cli_reinstate); - set_handler_callback(FAIL+PATH, cli_fail); - -+ umask(077); - uxsock_listen(&uxsock_trigger, ap); - - return NULL; -@@ -1436,7 +1437,6 @@ daemonize(void) - close(in_fd); - close(out_fd); - chdir("/"); -- umask(0); - return 0; - } diff --git a/lib64_multipath.patch b/lib64_multipath.patch new file mode 100644 index 0000000..ebd22ed --- /dev/null +++ b/lib64_multipath.patch @@ -0,0 +1,12 @@ +diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h +index d7f93cb..357c519 100644 +--- a/libmultipath/defaults.h ++++ b/libmultipath/defaults.h +@@ -1,6 +1,6 @@ + #define DEFAULT_GETUID "/lib/udev/scsi_id --whitelisted --device=/dev/%n" + #define DEFAULT_UDEVDIR "/dev" +-#define DEFAULT_MULTIPATHDIR "/lib/multipath" ++#define DEFAULT_MULTIPATHDIR "/lib64/multipath" + #define DEFAULT_SELECTOR "round-robin 0" + #define DEFAULT_FEATURES "0" + #define DEFAULT_HWHANDLER "0" diff --git a/linking_change.patch b/linking_change.patch deleted file mode 100644 index 887504a..0000000 --- a/linking_change.patch +++ /dev/null @@ -1,68 +0,0 @@ -Index: multipath-tools/libmultipath/Makefile -=================================================================== ---- multipath-tools.orig/libmultipath/Makefile -+++ multipath-tools/libmultipath/Makefile -@@ -23,14 +23,15 @@ endif - all: $(LIBS) - - $(LIBS): $(OBJS) -- $(CC) $(SHARED_FLAGS) $(CFLAGS) -o $@ $(OBJS) -+ $(CC) $(SHARED_FLAGS) -Wl,-soname,$@ $(CFLAGS) -o $@ $(OBJS) - - install: -+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(prefix)/lib -+ $(INSTALL_PROGRAM) -m 755 $(LIBS) $(DESTDIR)$(prefix)/lib/$(LIBS) - $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(libdir) -- $(INSTALL_PROGRAM) -m 755 $(LIBS) $(DESTDIR)$(libdir)/$(LIBS) - - uninstall: -- rm -f $(DESTDIR)$(libdir)/$(LIBS) -+ rm -f $(DESTDIR)$(prefix)/lib/$(LIBS) - - clean: - rm -f core *.a *.o *.gz *.so -Index: multipath-tools/multipath/Makefile -=================================================================== ---- multipath-tools.orig/multipath/Makefile -+++ multipath-tools/multipath/Makefile -@@ -6,9 +6,8 @@ include ../Makefile.inc - - OBJS = main.o - --CFLAGS += -I$(multipathdir) -Wl,-rpath,$(libdir) --LDFLAGS += -lpthread -ldevmapper -laio -ldl \ -- -lmultipath -L$(multipathdir) -+CFLAGS += -I$(multipathdir) -+LDFLAGS += -lpthread -ldevmapper -ldl -lmultipath -L$(multipathdir) - - EXEC = multipath - -Index: multipath-tools/multipathd/Makefile -=================================================================== ---- multipath-tools.orig/multipathd/Makefile -+++ multipath-tools/multipathd/Makefile -@@ -5,8 +5,8 @@ include ../Makefile.inc - # - # basic flags setting - # --CFLAGS += -I$(multipathdir) -Wl,-rpath,$(libdir) --LDFLAGS += -lpthread -ldevmapper -lreadline -lncurses -laio -ldl \ -+CFLAGS += -I$(multipathdir) -+LDFLAGS += -lpthread -ldevmapper -lreadline -lncurses -ldl \ - -lmultipath -L$(multipathdir) - - # -Index: multipath-tools/libmultipath/checkers/Makefile -=================================================================== ---- multipath-tools.orig/libmultipath/checkers/Makefile -+++ multipath-tools/libmultipath/checkers/Makefile -@@ -17,6 +17,9 @@ CFLAGS += -I.. - - all: $(LIBS) - -+libcheckdirectio.so: libsg.o directio.o -+ $(CC) $(SHARED_FLAGS) -o $@ $^ -laio -+ - libcheck%.so: libsg.o %.o - $(CC) $(SHARED_FLAGS) -o $@ $^ - diff --git a/mpath_wait.patch b/mpath_wait.patch index ab48908..44e14d7 100644 --- a/mpath_wait.patch +++ b/mpath_wait.patch @@ -1,8 +1,8 @@ -Index: multipath-tools-080515/multipath/Makefile -=================================================================== ---- multipath-tools-080515.orig/multipath/Makefile -+++ multipath-tools-080515/multipath/Makefile -@@ -21,7 +21,7 @@ $(EXEC): $(OBJS) +diff --git a/multipath/Makefile b/multipath/Makefile +index e0031a2..fe377d8 100644 +--- a/multipath/Makefile ++++ b/multipath/Makefile +@@ -20,7 +20,7 @@ $(EXEC): $(OBJS) install: $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) @@ -11,7 +11,7 @@ Index: multipath-tools-080515/multipath/Makefile $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)/etc/udev/rules.d/ $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir) -@@ -36,6 +36,7 @@ install: +@@ -31,6 +31,7 @@ install: uninstall: rm $(DESTDIR)/etc/udev/rules.d/multipath.rules rm $(DESTDIR)$(bindir)/$(EXEC) @@ -19,10 +19,11 @@ Index: multipath-tools-080515/multipath/Makefile rm $(DESTDIR)$(mandir)/$(EXEC).8.gz rm $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz -Index: multipath-tools-080515/multipath/mpath_wait -=================================================================== +diff --git a/multipath/mpath_wait b/multipath/mpath_wait +new file mode 100644 +index 0000000..d4047cc --- /dev/null -+++ multipath-tools-080515/multipath/mpath_wait ++++ b/multipath/mpath_wait @@ -0,0 +1,17 @@ +#!/bin/bash + diff --git a/multipath_rules.patch b/multipath_rules.patch index 56e0bb9..6cdd4bc 100644 --- a/multipath_rules.patch +++ b/multipath_rules.patch @@ -1,8 +1,8 @@ -Index: multipath-tools/multipath/Makefile -=================================================================== ---- multipath-tools.orig/multipath/Makefile -+++ multipath-tools/multipath/Makefile -@@ -23,7 +23,7 @@ install: +diff --git a/multipath/Makefile b/multipath/Makefile +index fe377d8..b2c4fa6 100644 +--- a/multipath/Makefile ++++ b/multipath/Makefile +@@ -22,14 +22,14 @@ install: $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) $(INSTALL_PROGRAM) -m 755 $(EXEC) mpath_wait $(DESTDIR)$(bindir)/ $(INSTALL_PROGRAM) -d $(DESTDIR)/etc/udev/rules.d @@ -11,8 +11,7 @@ Index: multipath-tools/multipath/Makefile $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir) $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir) $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir) -@@ -34,7 +34,7 @@ install: - $(INSTALL_PROGRAM) -d $(DESTDIR)/var/lib/multipath + $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir) uninstall: - rm $(DESTDIR)/etc/udev/rules.d/multipath.rules @@ -20,10 +19,10 @@ Index: multipath-tools/multipath/Makefile rm $(DESTDIR)$(bindir)/$(EXEC) rm $(DESTDIR)$(bindir)/mpath_wait rm $(DESTDIR)$(mandir)/$(EXEC).8.gz -Index: multipath-tools/multipath/multipath.rules -=================================================================== ---- multipath-tools.orig/multipath/multipath.rules -+++ multipath-tools/multipath/multipath.rules +diff --git a/multipath/multipath.rules b/multipath/multipath.rules +index ac97749..ad2ff2a 100644 +--- a/multipath/multipath.rules ++++ b/multipath/multipath.rules @@ -1,7 +1,8 @@ -# -# udev rules for multipathing. @@ -31,10 +30,11 @@ Index: multipath-tools/multipath/multipath.rules -# - -# socket for uevents +-SUBSYSTEM=="block", RUN+="socket:/org/kernel/dm/multipath_event" +# multipath wants the devmaps presented as meaninglful device names +# so name them after their devmap name +SUBSYSTEM!="block", GOTO="end_mpath" - RUN+="socket:/org/kernel/dm/multipath_event" ++RUN+="socket:/org/kernel/dm/multipath_event" +KERNEL!="dm-[0-9]*", GOTO="end_mpath" +PROGRAM!="/sbin/mpath_wait %M %m", GOTO="end_mpath" +ACTION=="add", RUN+="/sbin/dmsetup ls --target multipath --exec '/sbin/kpartx -a -p p' -j %M -m %m" diff --git a/redhatification.patch b/redhatification.patch index 455c291..79e73da 100644 --- a/redhatification.patch +++ b/redhatification.patch @@ -1,36 +1,8 @@ -Index: multipath-tools/libmultipath/defaults.h +Index: multipath-tools-090407/libmultipath/hwtable.c =================================================================== ---- multipath-tools.orig/libmultipath/defaults.h -+++ multipath-tools/libmultipath/defaults.h -@@ -1,4 +1,4 @@ --#define DEFAULT_GETUID "/lib/udev/scsi_id -g -u -s /block/%n" -+#define DEFAULT_GETUID "/sbin/scsi_id -g -u -s /block/%n" - #define DEFAULT_UDEVDIR "/dev" - #define DEFAULT_MULTIPATHDIR "/lib/multipath" - #define DEFAULT_SELECTOR "round-robin 0" -Index: multipath-tools/libmultipath/hwtable.c -=================================================================== ---- multipath-tools.orig/libmultipath/hwtable.c -+++ multipath-tools/libmultipath/hwtable.c -@@ -172,7 +172,7 @@ static struct hwentry default_hw[] = { - /* HP Smart Array */ - .vendor = "HP", - .product = "LOGICAL VOLUME.*", -- .getuid = "/lib/udev/scsi_id -n -g -u -s /block/%n", -+ .getuid = "/sbin/scsi_id -n -g -u -s /block/%n", - .features = DEFAULT_FEATURES, - .hwhandler = DEFAULT_HWHANDLER, - .selector = DEFAULT_SELECTOR, -@@ -214,7 +214,7 @@ static struct hwentry default_hw[] = { - { - .vendor = "EMC", - .product = "SYMMETRIX", -- .getuid = "/lib/udev/scsi_id -g -u -ppre-spc3-83 -s /block/%n", -+ .getuid = "/sbin/scsi_id -g -u -ppre-spc3-83 -s /block/%n", - .features = DEFAULT_FEATURES, - .hwhandler = DEFAULT_HWHANDLER, - .selector = DEFAULT_SELECTOR, -@@ -485,7 +485,7 @@ static struct hwentry default_hw[] = { +--- multipath-tools-090407.orig/libmultipath/hwtable.c 2009-04-07 15:21:33.000000000 -0500 ++++ multipath-tools-090407/libmultipath/hwtable.c 2009-04-07 09:16:31.000000000 -0500 +@@ -554,7 +554,7 @@ static struct hwentry default_hw[] = { .vendor = "IBM", .product = "S/390 DASD ECKD", .bl_product = "S/390.*", @@ -39,558 +11,21 @@ Index: multipath-tools/libmultipath/hwtable.c .features = "1 queue_if_no_path", .hwhandler = DEFAULT_HWHANDLER, .selector = DEFAULT_SELECTOR, -@@ -722,6 +722,22 @@ static struct hwentry default_hw[] = { - .checker_name = RDAC, - .prio_name = PRIO_RDAC, - }, -+ /* DELL arrays */ -+ { -+ .vendor = "DELL", -+ .product = "MD3000", -+ .getuid = DEFAULT_GETUID, -+ .features = DEFAULT_FEATURES, -+ .hwhandler = "1 rdac", -+ .selector = DEFAULT_SELECTOR, -+ .pgpolicy = GROUP_BY_PRIO, -+ .pgfailback = -FAILBACK_MANUAL, -+ .rr_weight = RR_WEIGHT_NONE, -+ .no_path_retry = NO_PATH_RETRY_UNDEF, -+ .minio = DEFAULT_MINIO, -+ .checker_name = RDAC, -+ .prio_name = PRIO_RDAC, -+ }, - /* - * EOL - */ -Index: multipath-tools/multipath.conf.annotated +Index: multipath-tools-090407/multipath/multipath.conf.redhat =================================================================== ---- multipath-tools.orig/multipath.conf.annotated -+++ multipath-tools/multipath.conf.annotated -@@ -55,9 +55,9 @@ - # # scope : multipath - # # desc : the default program and args to callout to obtain a unique - # # path identifier. Absolute path required --# # default : /lib/udev/scsi_id -g -u -s -+# # default : /sbin/scsi_id -g -u -s - # # --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # - # # - # # name : prio -@@ -336,7 +336,7 @@ - # # desc : the program and args to callout to obtain a unique - # # path identifier. Absolute path required - # # --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # - # # - # # name : path_selector -Index: multipath-tools/multipath.conf.defaults -=================================================================== ---- multipath-tools.orig/multipath.conf.defaults -+++ multipath-tools/multipath.conf.defaults -@@ -6,7 +6,7 @@ - # polling_interval 5 - # selector "round-robin 0" - # path_grouping_policy failover --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # prio const - # path_checker directio - # rr_min_io 1000 -@@ -26,7 +26,7 @@ - # device { - # vendor "APPLE*" - # product "Xserve RAID" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -39,7 +39,7 @@ - # device { - # vendor "3PARdata" - # product "VV" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -52,7 +52,7 @@ - # device { - # vendor "DEC" - # product "HSG80" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "1 hp-sw" - # path_selector "round-robin 0" -@@ -65,7 +65,7 @@ - # device { - # vendor "HP" - # product "A6189A" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -79,7 +79,7 @@ - # device { - # vendor "(COMPAQ|HP)" - # product "(MSA|HSV)1.0.*" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "1 hp-sw" - # path_selector "round-robin 0" -@@ -93,7 +93,7 @@ - # device { - # vendor "HP" - # product "MSA VOLUME" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -123,7 +123,7 @@ - # device { - # vendor "(COMPAQ|HP)" - # product "HSV1[01]1|HSV2[01]0|HSV300" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -138,7 +138,7 @@ - # device { - # vendor "HP" - # product "MSA2[02]12*" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -153,7 +153,7 @@ - # device { - # vendor "HP" - # product "LOGICAL VOLUME.*" --# getuid_callout "/lib/udev/scsi_id -n -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -n -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -168,7 +168,7 @@ - # device { - # vendor "DDN" - # product "SAN DataDirector" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -181,7 +181,7 @@ - # device { - # vendor "EMC" - # product "SYMMETRIX" --# getuid_callout "/lib/udev/scsi_id -g -u -ppre-spc3-83 -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -ppre-spc3-83 -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -195,7 +195,7 @@ - # vendor "DGC" - # product ".*" - # product_blacklist "LUNZ" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # prio_callout "/sbin/mpath_prio_emc /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "1 emc" -@@ -211,7 +211,7 @@ - # device { - # vendor "FSC" - # product "CentricStor" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -224,7 +224,7 @@ - # device { - # vendor "(HITACHI|HP)" - # product "OPEN-.*" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -237,7 +237,7 @@ - # device { - # vendor "HITACHI" - # product "DF.*" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -251,7 +251,7 @@ - # device { - # vendor "IBM" - # product "ProFibre 4000R" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -264,7 +264,7 @@ - # device { - # vendor "IBM" - # product "1722-600" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -279,7 +279,7 @@ - # device { - # vendor "IBM" - # product "1742" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -294,7 +294,7 @@ - # device { - # vendor "IBM" - # product "1814" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -309,7 +309,7 @@ - # device { - # vendor "IBM" - # product "1815" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -324,7 +324,7 @@ - # device { - # vendor "IBM" - # product "3526" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -339,7 +339,7 @@ - # device { - # vendor "IBM" - # product "3542" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -352,7 +352,7 @@ - # device { - # vendor "IBM" - # product "2105(800|F20)" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -365,7 +365,7 @@ - # device { - # vendor "IBM" - # product "1750500" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -379,7 +379,7 @@ - # device { - # vendor "IBM" - # product "2107900" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -392,7 +392,7 @@ - # device { - # vendor "IBM" - # product "2145" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -407,7 +407,7 @@ - # vendor "IBM" - # product "S/390 DASD ECKD" - # product_blacklist "S/390.*" --# getuid_callout "/sbin/dasdinfo -u -b %n" -+# getuid_callout "/sbin/dasd_id /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -420,7 +420,7 @@ - # device { - # vendor "NETAPP" - # product "LUN.*" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -434,7 +434,7 @@ - # device { - # vendor "IBM" - # product "Nseries.*" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -448,7 +448,7 @@ - # device { - # vendor "Pillar" - # product "Axiom.*" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -461,7 +461,7 @@ - # device { - # vendor "SGI" - # product "TP9[13]00" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -474,7 +474,7 @@ - # device { - # vendor "SGI" - # product "TP9[45]00" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -489,7 +489,7 @@ - # device { - # vendor "SGI" - # product "IS.*" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -504,7 +504,7 @@ - # device { - # vendor "STK" - # product "OPENstorage D280" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -518,7 +518,7 @@ - # device { - # vendor "SUN" - # product "(StorEdge 3510|T4)" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -544,7 +544,7 @@ - # device { - # vendor "SUN" - # product "CSM200_R" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -559,7 +559,7 @@ - # device { - # vendor "SUN" - # product "LCSM100_F" --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -571,4 +571,18 @@ - # path_checker rdac - # prio rdac - # } -+# device { -+# vendor "DELL" -+# product "MD3000" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# features "0" -+# hardware_handler "1 rdac" -+# path_selector "round-robin 0" -+# path_grouping_policy group_by_prio -+# failback manual -+# rr_weight uniform -+# rr_min_io 1000 -+# path_checker rdac -+# prio rdac -+# } - #} -Index: multipath-tools/multipath.conf.synthetic -=================================================================== ---- multipath-tools.orig/multipath.conf.synthetic -+++ multipath-tools/multipath.conf.synthetic -@@ -7,7 +7,7 @@ - # polling_interval 10 - # selector "round-robin 0" - # path_grouping_policy multibus --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # prio const - # path_checker directio - # rr_min_io 100 -@@ -52,7 +52,7 @@ - # vendor "COMPAQ " - # product "HSV110 (C)COMPAQ" - # path_grouping_policy multibus --# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" - # path_checker directio - # path_selector "round-robin 0" - # hardware_handler "0" -Index: multipath-tools/Makefile.inc -=================================================================== ---- multipath-tools.orig/Makefile.inc -+++ multipath-tools/Makefile.inc -@@ -20,7 +20,7 @@ libudevdir = ${prefix}/lib/udev - multipathdir = $(TOPDIR)/libmultipath - mandir = $(prefix)/usr/share/man/man8 - man5dir = $(prefix)/usr/share/man/man5 --rcdir = $(prefix)/etc/init.d -+rcdir = $(prefix)/etc/rc.d/init.d - libdir = $(prefix)/lib/multipath - - GZIP = /bin/gzip -9 -c -Index: multipath-tools/multipathd/Makefile -=================================================================== ---- multipath-tools.orig/multipathd/Makefile -+++ multipath-tools/multipathd/Makefile -@@ -35,6 +35,7 @@ install: - $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir) - $(INSTALL_PROGRAM) -d $(DESTDIR)$(rcdir) -+ $(INSTALL_PROGRAM) -m 755 multipathd.init.redhat $(DESTDIR)$(rcdir)/$(EXEC) - $(INSTALL_PROGRAM) -d $(DESTDIR)$(mandir) - $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir) - -Index: multipath-tools/multipathd/multipathd.init.redhat -=================================================================== ---- multipath-tools.orig/multipathd/multipathd.init.redhat -+++ multipath-tools/multipathd/multipathd.init.redhat -@@ -1,13 +1,9 @@ - #!/bin/bash -- --# --# /etc/rc.d/init.d/multipathd - # --# Starts the multipath daemon -+# multipathd Starts the multipath daemon - # - # chkconfig: - 13 87 --# description: Manage device-mapper multipath devices --# processname: multipathd -+# description: Manages device-mapper multipath devices - - DAEMON=/sbin/multipathd - prog=`basename $DAEMON` -@@ -16,14 +12,8 @@ lockdir=/var/lock/subsys - sysconfig=/etc/sysconfig - - --system=redhat -- --if [ $system = redhat ]; then -- # Source function library. -- . $initdir/functions --fi -+. $initdir/functions - --test -x $DAEMON || exit 0 - test -r $sysconfig/$prog && . $sysconfig/$prog - - RETVAL=0 -@@ -33,6 +23,7 @@ RETVAL=0 - # - - start() { -+ test -x $DAEMON || exit 5 - echo -n $"Starting $prog daemon: " - daemon $DAEMON - RETVAL=$? -@@ -74,7 +65,7 @@ reload) - restart) - restart - ;; --condrestart) -+condrestart|try-restart) - if [ -f $lockdir/$prog ]; then - restart - fi -@@ -85,7 +76,7 @@ status) - ;; - *) - echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}" -- RETVAL=1 -+ RETVAL=2 - esac - - exit $RETVAL -Index: multipath-tools/multipath/Makefile -=================================================================== ---- multipath-tools.orig/multipath/Makefile -+++ multipath-tools/multipath/Makefile -@@ -28,6 +28,10 @@ install: - $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(mandir) - $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir) - $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5.gz $(DESTDIR)$(man5dir) -+ if [ ! -e $(DESTDIR)//etc/multipath.conf ]; then \ -+ $(INSTALL_PROGRAM) -m 644 multipath.conf.redhat $(DESTDIR)/etc/multipath.conf; \ -+ fi -+ $(INSTALL_PROGRAM) -d $(DESTDIR)/var/lib/multipath - - uninstall: - rm $(DESTDIR)/etc/udev/rules.d/multipath.rules -Index: multipath-tools/multipath/multipath.conf.redhat -=================================================================== ---- /dev/null -+++ multipath-tools/multipath/multipath.conf.redhat +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ multipath-tools-090407/multipath/multipath.conf.redhat 2009-04-07 09:16:31.000000000 -0500 @@ -0,0 +1,97 @@ +# This is a basic configuration file with some examples, for device mapper +# multipath. +# For a complete list of the default configuration values, see -+# /usr/share/doc/device-mapper-multipath-0.4.8/multipath.conf.defaults ++# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults +# For a list of configuration options with descriptions, see -+# /usr/share/doc/device-mapper-multipath-0.4.8/multipath.conf.annotated ++# /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.annotated + + +# Blacklist all devices by default. Remove this to enable multipathing -+# on the default devices. ++# on the default devices. +blacklist { + devnode "*" +} @@ -618,7 +53,7 @@ Index: multipath-tools/multipath/multipath.conf.redhat +# polling_interval 10 +# selector "round-robin 0" +# path_grouping_policy multibus -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" ++# getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" +# prio alua +# path_checker readsector0 +# rr_min_io 100 @@ -664,7 +99,7 @@ Index: multipath-tools/multipath/multipath.conf.redhat +# vendor "COMPAQ " +# product "HSV110 (C)COMPAQ" +# path_grouping_policy multibus -+# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" ++# getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" +# path_checker readsector0 +# path_selector "round-robin 0" +# hardware_handler "0" @@ -678,10 +113,10 @@ Index: multipath-tools/multipath/multipath.conf.redhat +# path_grouping_policy multibus +# } +#} -Index: multipath-tools/kpartx/Makefile +Index: multipath-tools-090407/kpartx/Makefile =================================================================== ---- multipath-tools.orig/kpartx/Makefile -+++ multipath-tools/kpartx/Makefile +--- multipath-tools-090407.orig/kpartx/Makefile 2009-04-07 15:21:33.000000000 -0500 ++++ multipath-tools-090407/kpartx/Makefile 2009-04-07 09:16:31.000000000 -0500 @@ -20,10 +20,10 @@ $(EXEC): $(OBJS) install: $(EXEC) $(EXEC).8 $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir) diff --git a/scsi_id_change.patch b/scsi_id_change.patch deleted file mode 100644 index dcb3936..0000000 --- a/scsi_id_change.patch +++ /dev/null @@ -1,478 +0,0 @@ -Index: multipath-tools/libmultipath/defaults.h -=================================================================== ---- multipath-tools.orig/libmultipath/defaults.h -+++ multipath-tools/libmultipath/defaults.h -@@ -1,4 +1,4 @@ --#define DEFAULT_GETUID "/sbin/scsi_id -g -u -s /block/%n" -+#define DEFAULT_GETUID "/sbin/scsi_id --whitelisted /dev/%n" - #define DEFAULT_UDEVDIR "/dev" - #define DEFAULT_MULTIPATHDIR "/lib/multipath" - #define DEFAULT_SELECTOR "round-robin 0" -Index: multipath-tools/libmultipath/hwtable.c -=================================================================== ---- multipath-tools.orig/libmultipath/hwtable.c -+++ multipath-tools/libmultipath/hwtable.c -@@ -172,7 +172,7 @@ static struct hwentry default_hw[] = { - /* HP Smart Array */ - .vendor = "HP", - .product = "LOGICAL VOLUME.*", -- .getuid = "/sbin/scsi_id -n -g -u -s /block/%n", -+ .getuid = "/sbin/scsi_id --whitelisted /dev/%n", - .features = DEFAULT_FEATURES, - .hwhandler = DEFAULT_HWHANDLER, - .selector = DEFAULT_SELECTOR, -@@ -214,7 +214,7 @@ static struct hwentry default_hw[] = { - { - .vendor = "EMC", - .product = "SYMMETRIX", -- .getuid = "/sbin/scsi_id -g -u -ppre-spc3-83 -s /block/%n", -+ .getuid = "/sbin/scsi_id --page=pre-spc3-83 --whitelisted /dev/%n", - .features = DEFAULT_FEATURES, - .hwhandler = DEFAULT_HWHANDLER, - .selector = DEFAULT_SELECTOR, -@@ -679,7 +679,7 @@ static struct hwentry default_hw[] = { - { - .vendor = "PIVOT3", - .product = "RAIGE VOLUME", -- .getuid = "/sbin/scsi_id -p 0x80 -g -u -s /block/%n", -+ .getuid = "/sbin/scsi_id --page=0x80 --whitelisted /dev/%n", - .features = "1 queue_if_no_path", - .hwhandler = DEFAULT_HWHANDLER, - .selector = DEFAULT_SELECTOR, -Index: multipath-tools/multipath.conf.annotated -=================================================================== ---- multipath-tools.orig/multipath.conf.annotated -+++ multipath-tools/multipath.conf.annotated -@@ -55,9 +55,9 @@ - # # scope : multipath - # # desc : the default program and args to callout to obtain a unique - # # path identifier. Absolute path required --# # default : /sbin/scsi_id -g -u -s -+# # default : /sbin/scsi_id --whitelisted - # # --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # - # # - # # name : prio -@@ -336,7 +336,7 @@ - # # desc : the program and args to callout to obtain a unique - # # path identifier. Absolute path required - # # --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # - # # - # # name : path_selector -Index: multipath-tools/multipath.conf.defaults -=================================================================== ---- multipath-tools.orig/multipath.conf.defaults -+++ multipath-tools/multipath.conf.defaults -@@ -6,7 +6,7 @@ - # polling_interval 5 - # selector "round-robin 0" - # path_grouping_policy failover --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # prio const - # path_checker directio - # rr_min_io 1000 -@@ -26,7 +26,7 @@ - # device { - # vendor "APPLE*" - # product "Xserve RAID" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -39,7 +39,7 @@ - # device { - # vendor "3PARdata" - # product "VV" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -52,7 +52,7 @@ - # device { - # vendor "DEC" - # product "HSG80" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "1 hp-sw" - # path_selector "round-robin 0" -@@ -65,7 +65,7 @@ - # device { - # vendor "HP" - # product "A6189A" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -79,7 +79,7 @@ - # device { - # vendor "(COMPAQ|HP)" - # product "(MSA|HSV)1.0.*" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "1 hp-sw" - # path_selector "round-robin 0" -@@ -93,7 +93,7 @@ - # device { - # vendor "HP" - # product "MSA VOLUME" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -123,7 +123,7 @@ - # device { - # vendor "(COMPAQ|HP)" - # product "HSV1[01]1|HSV2[01]0|HSV300" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -138,7 +138,7 @@ - # device { - # vendor "HP" - # product "MSA2[02]12*" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -153,7 +153,7 @@ - # device { - # vendor "HP" - # product "LOGICAL VOLUME.*" --# getuid_callout "/sbin/scsi_id -n -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -168,7 +168,7 @@ - # device { - # vendor "DDN" - # product "SAN DataDirector" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -181,7 +181,7 @@ - # device { - # vendor "EMC" - # product "SYMMETRIX" --# getuid_callout "/sbin/scsi_id -g -u -ppre-spc3-83 -s /block/%n" -+# getuid_callout "/sbin/scsi_id --page=pre-spc3-83 --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -195,7 +195,7 @@ - # vendor "DGC" - # product ".*" - # product_blacklist "LUNZ" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # prio_callout "/sbin/mpath_prio_emc /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "1 emc" -@@ -211,7 +211,7 @@ - # device { - # vendor "FSC" - # product "CentricStor" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -224,7 +224,7 @@ - # device { - # vendor "(HITACHI|HP)" - # product "OPEN-.*" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -237,7 +237,7 @@ - # device { - # vendor "HITACHI" - # product "DF.*" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -251,7 +251,7 @@ - # device { - # vendor "IBM" - # product "ProFibre 4000R" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -264,7 +264,7 @@ - # device { - # vendor "IBM" - # product "1722-600" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -279,7 +279,7 @@ - # device { - # vendor "IBM" - # product "1742" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -294,7 +294,7 @@ - # device { - # vendor "IBM" - # product "1814" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -309,7 +309,7 @@ - # device { - # vendor "IBM" - # product "1815" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -324,7 +324,7 @@ - # device { - # vendor "IBM" - # product "3526" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -339,7 +339,7 @@ - # device { - # vendor "IBM" - # product "3542" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -352,7 +352,7 @@ - # device { - # vendor "IBM" - # product "2105(800|F20)" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -365,7 +365,7 @@ - # device { - # vendor "IBM" - # product "1750500" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -379,7 +379,7 @@ - # device { - # vendor "IBM" - # product "2107900" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -392,7 +392,7 @@ - # device { - # vendor "IBM" - # product "2145" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -420,7 +420,7 @@ - # device { - # vendor "NETAPP" - # product "LUN.*" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -434,7 +434,7 @@ - # device { - # vendor "IBM" - # product "Nseries.*" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -448,7 +448,7 @@ - # device { - # vendor "Pillar" - # product "Axiom.*" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -461,7 +461,7 @@ - # device { - # vendor "SGI" - # product "TP9[13]00" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -474,7 +474,7 @@ - # device { - # vendor "SGI" - # product "TP9[45]00" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -489,7 +489,7 @@ - # device { - # vendor "SGI" - # product "IS.*" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -504,7 +504,7 @@ - # device { - # vendor "STK" - # product "OPENstorage D280" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -518,7 +518,7 @@ - # device { - # vendor "SUN" - # product "(StorEdge 3510|T4)" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -531,7 +531,7 @@ - # device { - # vendor "PIVOT3" - # product "RAIGE VOLUME" --# getuid_callout "/sbin/scsi_id -p 0x80 -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --page=0x80 --whitelisted /dev/%n" - # features "1 queue_if_no_path" - # hardware_handler "0" - # path_selector "round-robin 0" -@@ -544,7 +544,7 @@ - # device { - # vendor "SUN" - # product "CSM200_R" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -559,7 +559,7 @@ - # device { - # vendor "SUN" - # product "LCSM100_F" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -@@ -574,7 +574,7 @@ - # device { - # vendor "DELL" - # product "MD3000" --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # features "0" - # hardware_handler "1 rdac" - # path_selector "round-robin 0" -Index: multipath-tools/multipath.conf.synthetic -=================================================================== ---- multipath-tools.orig/multipath.conf.synthetic -+++ multipath-tools/multipath.conf.synthetic -@@ -7,7 +7,7 @@ - # polling_interval 10 - # selector "round-robin 0" - # path_grouping_policy multibus --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # prio const - # path_checker directio - # rr_min_io 100 -@@ -52,7 +52,7 @@ - # vendor "COMPAQ " - # product "HSV110 (C)COMPAQ" - # path_grouping_policy multibus --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id -whitelisted /block/%n" - # path_checker directio - # path_selector "round-robin 0" - # hardware_handler "0" -Index: multipath-tools/multipath/multipath.conf.5 -=================================================================== ---- multipath-tools.orig/multipath/multipath.conf.5 -+++ multipath-tools/multipath/multipath.conf.5 -@@ -109,7 +109,7 @@ Default value is \fImultibus\fR. - The default program and args to callout to obtain a unique path - identifier. Should be specified with an absolute path. Default value - is --.I /lib/udev/scsi_id -g -u -s -+.I /lib/udev/scsi_id --whitelisted - .TP - .B prio_callout - The default program and args to callout to obtain a path priority -Index: multipath-tools/multipath/multipath.conf.redhat -=================================================================== ---- multipath-tools.orig/multipath/multipath.conf.redhat -+++ multipath-tools/multipath/multipath.conf.redhat -@@ -35,7 +35,7 @@ defaults { - # polling_interval 10 - # selector "round-robin 0" - # path_grouping_policy multibus --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # prio alua - # path_checker readsector0 - # rr_min_io 100 -@@ -81,7 +81,7 @@ defaults { - # vendor "COMPAQ " - # product "HSV110 (C)COMPAQ" - # path_grouping_policy multibus --# getuid_callout "/sbin/scsi_id -g -u -s /block/%n" -+# getuid_callout "/sbin/scsi_id --whitelisted /dev/%n" - # path_checker readsector0 - # path_selector "round-robin 0" - # hardware_handler "0" diff --git a/sources b/sources index 3ef0dff..6db3245 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3ffa9a7f768fab9749689fe2624a8551 multipath-tools-080804.tgz +450d0715048f3a8c82082ad2b9e5a2b3 multipath-tools-090429.tgz diff --git a/sparc64fix.patch b/sparc64fix.patch deleted file mode 100644 index 6e50bf8..0000000 --- a/sparc64fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: multipath-tools-080515/kpartx/lopart.c -=================================================================== ---- multipath-tools-080515.orig/kpartx/lopart.c -+++ multipath-tools-080515/kpartx/lopart.c -@@ -30,7 +30,7 @@ - #if defined(__hppa__) || defined(__powerpc64__) || defined (__alpha__) \ - || defined (__x86_64__) - typedef unsigned long __kernel_old_dev_t; --#elif defined(__powerpc__) || defined(__ia64__) -+#elif defined(__powerpc__) || defined(__ia64__) || (defined(__sparc__) && defined (__arch64__)) - typedef unsigned int __kernel_old_dev_t; - #else - typedef unsigned short __kernel_old_dev_t; diff --git a/uevent_fix.patch b/uevent_fix.patch deleted file mode 100644 index 78c47e8..0000000 --- a/uevent_fix.patch +++ /dev/null @@ -1,28 +0,0 @@ -Index: multipath-tools/multipathd/main.c -=================================================================== ---- multipath-tools.orig/multipathd/main.c -+++ multipath-tools/multipathd/main.c -@@ -602,14 +602,20 @@ uxsock_trigger (char * str, char ** repl - static int - uev_discard(char * devpath) - { -+ char *tmp; - char a[10], b[10]; - - /* - * keep only block devices, discard partitions - */ -- if (sscanf(devpath, "/block/%10s", a) != 1 || -- sscanf(devpath, "/block/%10[^/]/%10s", a, b) == 2) { -- condlog(4, "discard event on %s", devpath); -+ tmp = strstr(devpath, "/block/"); -+ if (tmp == NULL){ -+ condlog(0, "no /block/ in '%s'", devpath); -+ return 1; -+ } -+ if (sscanf(tmp, "/block/%10s", a) != 1 || -+ sscanf(tmp, "/block/%10[^/]/%10s", a, b) == 2) { -+ condlog(0, "discard event on %s", devpath); - return 1; - } - return 0;