Re: [PATCH 1/2] sunrpc: extract some common sunrpc_cache code from nfsd

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

 



On Thu, Aug 12, 2010 at 04:55:22PM +1000, NeilBrown wrote:
> Rather can duplicating this idiom twice, put it in an inline function.
> This reduces the usage of 'expiry_time' out side the sunrpc/cache.c
> code and thus the impact of a change that is about to be made to that
> field.

Thanks, applying for 2.6.37.

--b.

> 
> Signed-off-by: NeilBrown <neilb@xxxxxxx>
> ---
>  fs/nfsd/export.c             |    9 +++------
>  include/linux/sunrpc/cache.h |    6 ++++++
>  2 files changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> index c2a4f71..e56827b 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -935,10 +935,9 @@ static void exp_fsid_unhash(struct svc_export *exp)
>  
>  	ek = exp_get_fsid_key(exp->ex_client, exp->ex_fsid);
>  	if (!IS_ERR(ek)) {
> -		ek->h.expiry_time = get_seconds()-1;
> +		sunrpc_invalidate(&ek->h, &svc_expkey_cache);
>  		cache_put(&ek->h, &svc_expkey_cache);
>  	}
> -	svc_expkey_cache.nextcheck = get_seconds();
>  }
>  
>  static int exp_fsid_hash(svc_client *clp, struct svc_export *exp)
> @@ -973,10 +972,9 @@ static void exp_unhash(struct svc_export *exp)
>  
>  	ek = exp_get_key(exp->ex_client, inode->i_sb->s_dev, inode->i_ino);
>  	if (!IS_ERR(ek)) {
> -		ek->h.expiry_time = get_seconds()-1;
> +		sunrpc_invalidate(&ek->h, &svc_expkey_cache);
>  		cache_put(&ek->h, &svc_expkey_cache);
>  	}
> -	svc_expkey_cache.nextcheck = get_seconds();
>  }
>  	
>  /*
> @@ -1097,8 +1095,7 @@ out:
>  static void
>  exp_do_unexport(svc_export *unexp)
>  {
> -	unexp->h.expiry_time = get_seconds()-1;
> -	svc_export_cache.nextcheck = get_seconds();
> +	sunrpc_invalidate(&unexp->h, &svc_export_cache);
>  	exp_unhash(unexp);
>  	exp_fsid_unhash(unexp);
>  }
> diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h
> index 7bf3e84..0e1febf 100644
> --- a/include/linux/sunrpc/cache.h
> +++ b/include/linux/sunrpc/cache.h
> @@ -228,4 +228,10 @@ static inline time_t get_expiry(char **bpp)
>  	return rv;
>  }
>  
> +static inline void sunrpc_invalidate(struct cache_head *h,
> +				     struct cache_detail *detail)
> +{
> +	h->expiry_time = get_seconds() - 1;
> +	detail->nextcheck = get_seconds();
> +}
>  #endif /*  _LINUX_SUNRPC_CACHE_H_ */
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux