I've been told that dm multipath does not support trespassing LUNs on Clariion, but after looking through the hardware handler for EMC Clariion devices, I believe it does. However, I'm confused about how it determines when to issue the trespass command. Since we are using RHEL 5.3, I am looking at the 2.6.18.8 version of the hardware handler, dm-emc.c (http://lxr.linux.no/#linux+v2.6.18.8/drivers/md/dm-emc.c). Looking at emc_pg_init(), which, according to the documentation, is called "when a Priority Group is selected for use, but before any I/O is sent to it" (http://lwn.net/Articles/123134), it looks like the only way out of this function is by either failing the path via dm_pg_init_complete(), or issuing a switch-over command. So either a path is failed or a trespass occurs every time that a priority group is selected? What am I missing here? Any guidance would be appreciated. Thanks! Martin 192static void emc_pg_init(struct hw_handler *hwh, unsigned bypassed, 193 struct path *path) 194{ 195 struct request *rq; 196 struct request_queue *q = bdev_get_queue(path->dev->bdev); 197 198 /* 199 * We can either blindly init the pg (then look at the sense), 200 * or we can send some commands to get the state here (then 201 * possibly send the fo cmnd), or we can also have the 202 * initial state passed into us and then get an update here. 203 */ 204 if (!q) { 205 DMINFO("emc_pg_init: no queue"); 206 goto fail_path; 207 } 208 209 /* FIXME: The request should be pre-allocated. */ 210 rq = emc_trespass_get(hwh->context, path); 211 if (!rq) { 212 DMERR("emc_pg_init: no rq"); 213 goto fail_path; 214 } 215 216 DMINFO("emc_pg_init: sending switch-over command"); 217 elv_add_request(q, rq, ELEVATOR_INSERT_FRONT, 1); 218 return; 219 220fail_path: 221 dm_pg_init_complete(path, MP_FAIL_PATH); 222} -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel