cam_xpt.c (431d3a5bfcf04e3b3b4f0ab77c7e83ddc70d0361) | cam_xpt.c (c33e40291b9d642929f63f6d595b8fdfc3c80252) |
---|---|
1/*- 2 * Implementation of the Common Access Method Transport (XPT) layer. 3 * 4 * Copyright (c) 1997, 1998, 1999 Justin T. Gibbs. 5 * Copyright (c) 1997, 1998, 1999 Kenneth D. Merry. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 3142 unchanged lines hidden (view full) --- 3151 if (ccb == NULL && 3152 (ccb = xpt_get_ccb_nowait(periph)) == NULL) { 3153 if (sleep) { 3154 ccb = xpt_get_ccb(periph); 3155 goto restart; 3156 } 3157 if (periph->flags & CAM_PERIPH_RUN_TASK) 3158 break; | 1/*- 2 * Implementation of the Common Access Method Transport (XPT) layer. 3 * 4 * Copyright (c) 1997, 1998, 1999 Justin T. Gibbs. 5 * Copyright (c) 1997, 1998, 1999 Kenneth D. Merry. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 3142 unchanged lines hidden (view full) --- 3151 if (ccb == NULL && 3152 (ccb = xpt_get_ccb_nowait(periph)) == NULL) { 3153 if (sleep) { 3154 ccb = xpt_get_ccb(periph); 3155 goto restart; 3156 } 3157 if (periph->flags & CAM_PERIPH_RUN_TASK) 3158 break; |
3159 xpt_lock_buses(); 3160 periph->refcount++; /* Unconditionally acquire */ 3161 xpt_unlock_buses(); | 3159 cam_periph_doacquire(periph); |
3162 periph->flags |= CAM_PERIPH_RUN_TASK; 3163 taskqueue_enqueue(xsoftc.xpt_taskq, 3164 &periph->periph_run_task); 3165 break; 3166 } 3167 xpt_setup_ccb(&ccb->ccb_h, periph->path, prio); 3168 if (prio == periph->immediate_priority) { 3169 periph->immediate_priority = CAM_PRIORITY_NONE; --- 2138 unchanged lines hidden --- | 3160 periph->flags |= CAM_PERIPH_RUN_TASK; 3161 taskqueue_enqueue(xsoftc.xpt_taskq, 3162 &periph->periph_run_task); 3163 break; 3164 } 3165 xpt_setup_ccb(&ccb->ccb_h, periph->path, prio); 3166 if (prio == periph->immediate_priority) { 3167 periph->immediate_priority = CAM_PRIORITY_NONE; --- 2138 unchanged lines hidden --- |