]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC r238171, r248679:
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Apr 2013 10:57:56 +0000 (10:57 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Apr 2013 10:57:56 +0000 (10:57 +0000)
commit1e23d3cbe0cb20ccc26123bc4df01bfea594236f
tree356ca1ace9084751fbe206782f5e5885beaddc66
parent70a0e77d74302d6c8e4e5bf5a4a61be3dd87f4f9
MFC r238171, r248679:
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.

git-svn-id: svn://svn.freebsd.org/base/stable/9@249620 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/geom/geom_dev.c