On Tue, 2012-02-28 at 16:42 +0000, Arnd Bergmann wrote: > On Tuesday 28 February 2012, James Bottomley wrote: > > On Tue, 2012-02-28 at 17:09 +0100, Stefan Richter wrote: > > > On Feb 28 James Bottomley wrote: > > > > > > While I do remove sr_mutex aroud scsi_cd_get/put() calls, these ones > > > internally use another lock: sr_ref_mutex. Always did, still do, since > > > neither Arnd's mechanical BKL pushdown and BKL-to-mutex conversions > > > patches nor my patch changed that. This sr_ref_mutex also protects sr's > > > reference counting outside of the three block_device_operations methods > > > which I changed. > > > > > > I suppose I could have mentioned right away in the changelog that the > > > sr driver's own reference counting serialization remains in place, via that > > > other mutex. > > > > OK, agreed ... the thing that caught my eye was the get/open and the > > release/put, but I think that's completely safe. > > I took another look and I believe the cdi->use_count in > cdrom_open/cdrom_release still requires some protection that is > currently provided by sr_mutex. So I think this is fine ... it's protected by the bdev->bd_mutex. > Some parts of cdrom_ioctl also > access this variable and things like cdi->options or cdi->keeplocked. This would be problematic because we no longer lock the ioctl. > I could imagine that you can get rid of the mutex if you turn those > into atomics and bitops, but there may be other parts of cdrom_device_info > that need locking. A safer option to solve the performance problems > could be to replace sr_mutex with a per-device mutex inside of > cdrom_device_info. I'd say the latter. James -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html