[sheepdog] [PATCH] object cache: fix some fd_dir leak

Liu Yuan namei.unix at gmail.com
Mon Nov 26 06:41:17 CET 2012


On 11/26/2012 10:41 AM, Liu Yuan wrote:
> From: Liu Yuan <tailai.ly at taobao.com>
> 
> Signed-off-by: Liu Yuan <tailai.ly at taobao.com>
> ---
>  sheep/object_cache.c |    6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/sheep/object_cache.c b/sheep/object_cache.c
> index d5b6264..d8ff191 100644
> --- a/sheep/object_cache.c
> +++ b/sheep/object_cache.c
> @@ -932,12 +932,14 @@ static int object_cache_flush_and_delete(struct object_cache *oc)
>  			dprintf("failed to push %"PRIx64"\n",
>  				idx_to_oid(vid, idx));
>  			ret = -1;
> -			goto out;
> +			goto out_close_dir;
>  		}
>  	}
>  
>  	object_cache_delete(vid);
>  
> +out_close_dir:
> +	closedir(dir);
>  out:
>  	strbuf_release(&p);
>  	return ret;
> @@ -1170,6 +1172,7 @@ static int load_existing_cache_object(struct object_cache *cache)
>  			cache->vid, idx);
>  	}
>  
> +	closedir(dir);
>  out:
>  	strbuf_release(&idx_buf);
>  	return ret;
> @@ -1205,6 +1208,7 @@ static int load_existing_cache(void)
>  		load_existing_cache_object(cache);
>  	}
>  
> +	closedir(dir);
>  out:
>  	strbuf_release(&vid_buf);
>  	return ret;
> 

Applied.

Thanks,
Yuan



More information about the sheepdog mailing list