I went through this in detail, and the odd patch split that splits one change up into muliple patches, but then also mixes up other changes makes it hard to read. So I started rebasing the tree to understand it moving your various cleanups to the front of the series. Of coure while reading through it the number of cleanups grew, so there are a few more now. Based on that I don't think this series will work very well, RCU works when replacing strutures in a lookup data structure, but not when changing the content of it, so the new locking scheme doesn't work very well, as the device_list array is static, it's just the content that changes. Fortunately there is the old patch from Andy to make the se_dev_entry dynamically allocated, which comes in useful here. With that we might only change the rdonly flag on a live dev entry, or assign an ACL when it previously was NULL, something that RCU can handle nicely. I've pushed a git tree to git://git.infradead.org/users/hch/scsi.git target-rcu-hch Gitweb: http://git.infradead.org/users/hch/scsi.git/shortlog/refs/heads/target-rcu-hch that implements this scheme. Note that I dropped the percpu refcount changes - the reference is only taken in the SCSI3-PR slow path, and the percpu refcount API is extremly cumbersome. This survives I/O testing nicely, but I couldn't find a good test suite for the control path. -- 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