Re: [PATCH 31/32] target: Don't release and re-acquire some spinlocks in loops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2013-12-13 at 15:59 -0800, Andy Grover wrote:
> Here are some instances where we're looping, but then dropping the
> spinlock around the loop in the loop, because we need to be able to
> sleep in the calls. Since everything is refcounted now, this should no
> longer be needed and we can just hold the locks the whole time.
> 
> Signed-off-by: Andy Grover <agrover@xxxxxxxxxx>
> ---
>  drivers/target/target_core_device.c |    4 ----
>  drivers/target/target_core_tpg.c    |    5 -----
>  2 files changed, 0 insertions(+), 9 deletions(-)
> 

Ignoring, given the other NAKs.

--nab

> diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
> index a432d7b..3896c99 100644
> --- a/drivers/target/target_core_device.c
> +++ b/drivers/target/target_core_device.c
> @@ -463,7 +463,6 @@ void core_clear_lun_from_tpg(struct se_lun *lun, struct se_portal_group *tpg)
>  
>  	spin_lock_irq(&tpg->acl_node_lock);
>  	list_for_each_entry(nacl, &tpg->acl_node_list, acl_node) {
> -		spin_unlock_irq(&tpg->acl_node_lock);
>  
>  		spin_lock_irq(&nacl->device_list_lock);
>  		rbtree_postorder_for_each_entry_safe(deve, _tmp, &nacl->rb_device_list, rb_node) {
> @@ -473,7 +472,6 @@ void core_clear_lun_from_tpg(struct se_lun *lun, struct se_portal_group *tpg)
>  		}
>  		spin_unlock_irq(&nacl->device_list_lock);
>  
> -		spin_lock_irq(&tpg->acl_node_lock);
>  	}
>  	spin_unlock_irq(&tpg->acl_node_lock);
>  }
> @@ -1141,9 +1139,7 @@ int core_dev_add_lun(
>  			if (acl->dynamic_node_acl &&
>  			    (!tpg->se_tpg_tfo->tpg_check_demo_mode_login_only ||
>  			     !tpg->se_tpg_tfo->tpg_check_demo_mode_login_only(tpg))) {
> -				spin_unlock_irq(&tpg->acl_node_lock);
>  				core_tpg_add_node_to_devs(acl, tpg);
> -				spin_lock_irq(&tpg->acl_node_lock);
>  			}
>  		}
>  		spin_unlock_irq(&tpg->acl_node_lock);
> diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c
> index 30af019..1bcb665 100644
> --- a/drivers/target/target_core_tpg.c
> +++ b/drivers/target/target_core_tpg.c
> @@ -172,8 +172,6 @@ void core_tpg_add_node_to_devs(
>  	for (node = rb_first(&tpg->rb_tpg_lun_list); node; node = rb_next(node)) {
>  		struct se_lun *lun = rb_entry(node, struct se_lun, rb_node);
>  
> -		spin_unlock(&tpg->tpg_lun_lock);
> -
>  		dev = lun->lun_se_dev;
>  		/*
>  		 * By default in LIO-Target $FABRIC_MOD,
> @@ -201,7 +199,6 @@ void core_tpg_add_node_to_devs(
>  
>  		core_enable_device_list_for_node(lun, NULL, lun->unpacked_lun,
>  				lun_access, acl, tpg);
> -		spin_lock(&tpg->tpg_lun_lock);
>  	}
>  	spin_unlock(&tpg->tpg_lun_lock);
>  }
> @@ -299,9 +296,7 @@ void core_tpg_clear_object_luns(struct se_portal_group *tpg)
>  		if (!lun->lun_se_dev)
>  			continue;
>  
> -		spin_unlock(&tpg->tpg_lun_lock);
>  		core_dev_del_lun(tpg, lun);
> -		spin_lock(&tpg->tpg_lun_lock);
>  	}
>  	spin_unlock(&tpg->tpg_lun_lock);
>  }


--
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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux