firewire: cdev: remove unneeded idr_find() from complete_transaction()
Outbound transactions are never aborted with release_client_resource(), so it is not necessary for complete_transaction() to check whether the resource is still registered. Only shutdown_resource() can abort such an transaction, and this is already handled with the in_shutdown check. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: "Stefan Richter" <stefanr@s5r6.in-berlin.de>
This commit is contained in:
parent
f117a3e300
commit
3e204dfcaf
@ -544,14 +544,8 @@ static void complete_transaction(struct fw_card *card, int rcode,
|
||||
* 1. If called while in shutdown, the idr tree must be left untouched.
|
||||
* The idr handle will be removed and the client reference will be
|
||||
* dropped later.
|
||||
* 2. If the call chain was release_client_resource ->
|
||||
* release_transaction -> complete_transaction (instead of a normal
|
||||
* conclusion of the transaction), i.e. if this resource was already
|
||||
* unregistered from the idr, the client reference will be dropped
|
||||
* by release_client_resource and we must not drop it here.
|
||||
*/
|
||||
if (!client->in_shutdown &&
|
||||
idr_find(&client->resource_idr, e->r.resource.handle)) {
|
||||
if (!client->in_shutdown) {
|
||||
idr_remove(&client->resource_idr, e->r.resource.handle);
|
||||
/* Drop the idr's reference */
|
||||
client_put(client);
|
||||
|
Loading…
Reference in New Issue
Block a user