svn commit: r241948 - stable/9/sys/cam
Alexander Motin
mav at FreeBSD.org
Tue Oct 23 15:36:24 UTC 2012
Author: mav
Date: Tue Oct 23 15:36:23 2012
New Revision: 241948
URL: http://svn.freebsd.org/changeset/base/241948
Log:
MFC r241510:
Don't exclude XPT SIM from locking in xpt_create_path_unlocked().
We don't want xpt periph, device, target or bus disappeared because of
incorrect reference counting.
Modified:
stable/9/sys/cam/cam_xpt.c
Directory Properties:
stable/9/sys/ (props changed)
Modified: stable/9/sys/cam/cam_xpt.c
==============================================================================
--- stable/9/sys/cam/cam_xpt.c Tue Oct 23 15:34:51 2012 (r241947)
+++ stable/9/sys/cam/cam_xpt.c Tue Oct 23 15:36:23 2012 (r241948)
@@ -3433,19 +3433,14 @@ xpt_create_path_unlocked(struct cam_path
struct cam_path *path;
struct cam_eb *bus = NULL;
cam_status status;
- int need_unlock = 0;
path = (struct cam_path *)malloc(sizeof(*path), M_CAMPATH, M_WAITOK);
- if (path_id != CAM_BUS_WILDCARD) {
- bus = xpt_find_bus(path_id);
- if (bus != NULL) {
- need_unlock = 1;
- CAM_SIM_LOCK(bus->sim);
- }
- }
+ bus = xpt_find_bus(path_id);
+ if (bus != NULL)
+ CAM_SIM_LOCK(bus->sim);
status = xpt_compile_path(path, periph, path_id, target_id, lun_id);
- if (need_unlock) {
+ if (bus != NULL) {
CAM_SIM_UNLOCK(bus->sim);
xpt_release_bus(bus);
}
More information about the svn-src-stable-9
mailing list