Re: [PATCH] net/ceph/osd_client.c add sem to osdmap destroy

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

 



Hi,

  Do you think this is needed? 
The osdmap update need to hold this sem.As in function 
void ceph_osdc_handle_map(struct ceph_osd_client *osdc, struct ceph_msg *msg)
and 
function static int __map_request(), 
etc.

Thanks a lot for your reply!

thanks,
Guanjun

>>> On 6/15/2012 at 04:32 PM, in message
<1339749120-7007-1-git-send-email-gjhe@xxxxxxxx>, Guanjun He
<heguanbo@xxxxxxxxx> wrote: 
> From: Guanjun He <heguanbo@xxxxxxxxx>
> 
> 	I think the osdmap destroy code shoule be protected by map_sem.
> If I was wrong, please correct me, thanks!
> 
> Signed-off-by: Guanjun He <gjhe@xxxxxxxx>
> ---
>  net/ceph/osd_client.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
> index 1ffebed..718b100 100644
> --- a/net/ceph/osd_client.c
> +++ b/net/ceph/osd_client.c
> @@ -1872,11 +1872,13 @@ void ceph_osdc_stop(struct ceph_osd_client *osdc)
>  	destroy_workqueue(osdc->notify_wq);
>  	cancel_delayed_work_sync(&osdc->timeout_work);
>  	cancel_delayed_work_sync(&osdc->osds_timeout_work);
> +	down_write(&osdc->map_sem);
>  	if (osdc->osdmap) {
>  		ceph_osdmap_destroy(osdc->osdmap);
>  		osdc->osdmap = NULL;
>  	}
>  	remove_all_osds(osdc);
> +	up_write(&osdc->map_sem);
>  	mempool_destroy(osdc->req_mempool);
>  	ceph_msgpool_destroy(&osdc->msgpool_op);
>  	ceph_msgpool_destroy(&osdc->msgpool_op_reply);


--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux