summaryrefslogtreecommitdiffstats
path: root/lib/libcam
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2013-03-24 10:14:25 +0000
committermav <mav@FreeBSD.org>2013-03-24 10:14:25 +0000
commit6cd6934fad2bb1e5222172d623c764679f7b186c (patch)
treead8fd6e02a6d3f87f11e58856a31bc5248bef759 /lib/libcam
parent8ce3236c14a8165ab3ad39cd54569a42282a7e3d (diff)
downloadFreeBSD-src-6cd6934fad2bb1e5222172d623c764679f7b186c.zip
FreeBSD-src-6cd6934fad2bb1e5222172d623c764679f7b186c.tar.gz
Fix long known deadlock between geom dev destruction and d_close() call.
Use destroy_dev_sched_cb() to not wait for device destruction while holding GEOM topology lock (that actually caused deadlock). Use request counting protected by mutex to properly wait for outstanding requests completion in cases of device closing and geom destruction. Unlike r227009, this code does not block taskqueue thread for indefinite time, waiting for completion.
Diffstat (limited to 'lib/libcam')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud