On Sat, 2005-09-10 at 19:35 +0200, Stefan Richter wrote: > James Bottomley wrote: > > scsi_add_device() returns an sdev on > > success with the refcount bumped up for you. If you don't do a put, > > you'll be stuck with a device you can't get rid of. > > > > However, all other users of scsi_add_device() make the same mistake ... > > Sbp2 was fixed recently, thanks to your advice. (Although the fix did > not make it into Linus' tree yet.) Yes, I forgot about that, we will eventually have one correct user ;-) > > I'll apply this patch and fix the API to return zero or error and not > > bump the sdev refcount. > > If you will do this, the now correct scsi_device_put() will become not > only incorrect but even dangerous, won't it? I've cc'd you on the patch (and it fixes sbp2 as it currently stands in the Linus tree, but it would conflict with the fix you have pending). It basically makes scsi_add_device return an int rather than a device pointer, so the compiler will now flag if something actually tries to use the return as a pointer. James - : 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