On Wed, Sep 13, 2017 at 08:36:10PM -0700, Philip Guenther wrote: > On Wed, 13 Sep 2017, Patrick Wildt wrote: > > I think softraid is leaking vnodes. When taking a device offline with > > bioctl -O /dev/sd0a sd2, then wiping the disk with dd (including the > > disklabel), I cannot change sd0's disklabel as it would say "open part- > > ition would change/shrink". This is because on assembly (and rebuild) > > the device is VOP_OPEN()d, but never closed. > > > > With this diff, whenever a disk goes offline (I/O error or bioctl -O), > > we actively close the vnode. One thing I wonder is, this still works > > when the backing device has already detached (USB drive being pulled). > > The logic of this idea makes sense to me, though I cannot confirm the > placement of these bits. Joel? > > I will note that the exact same chunk of non-trivial code in four > different places certainly calls for a function. Indeed, if the inside of > the 'if' was a function ("sr_entry_close"?), that could be reused in > sr_chunks_unwind()...and the XXX comment there moves to this new function. > > > Philip Guenther >
Yep, agreed, that calls for a function. Especially since that piece was copied from sr_chunks_unwind() and is now used a few times. Will send a new diff with that changed as soon as Joel commented on this as well. Thanks, Patrick