[lustre-devel] [PATCH 14/38] lustre: llite: don't handle success case for kbyte* sysfs code

NeilBrown neilb at suse.com
Thu Aug 16 23:32:20 PDT 2018


On Thu, Aug 16 2018, James Simmons wrote:

> The proper thing to due is return on failure so reverse the logic
> to conform to kernel standards.
>
> Signed-off-by: James Simmons <uja.ornl at yahoo.com>
> WC-bug-id: https://jira.whamcloud.com/browse/LU-8066
> Reviewed-on: https://review.whamcloud.com/32497
> Reviewed-by: John L. Hammond <jhammond at whamcloud.com>
> Reviewed-by: Andreas Dilger <adilger at whamcloud.com>
> Reviewed-by: Oleg Drokin <green at whamcloud.com>
> Signed-off-by: James Simmons <jsimmons at infradead.org>
> ---
>  drivers/staging/lustre/lustre/llite/lproc_llite.c | 51 ++++++++++++-----------
>  1 file changed, 27 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c
> index 7bd557b..72a8f8d 100644
> --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c
> +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c
> @@ -154,22 +154,23 @@ static ssize_t kbytestotal_show(struct kobject *kobj, struct attribute *attr,
>  	struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info,
>  					      ll_kset.kobj);
>  	struct obd_statfs osfs;
> +	u32 blk_size;
> +	u64 result;
>  	int rc;
>  
>  	rc = ll_statfs_internal(sbi, &osfs,
>  				get_jiffies_64() - OBD_STATFS_CACHE_SECONDS * HZ,
>  				OBD_STATFS_NODELAY);
> -	if (!rc) {
> -		__u32 blk_size = osfs.os_bsize >> 10;
> -		__u64 result = osfs.os_blocks;
> +	if (rc)
> +		return rc;
>  
> -		while (blk_size >>= 1)
> -			result <<= 1;
> +	blk_size = osfs.os_bsize >> 10;
> +	result = osfs.os_blocks;
>  
> -		rc = sprintf(buf, "%llu\n", result);
> -	}
> +	while (blk_size >>= 1)
> +		result <<= 1;

I had to think 2 or 3 times to be sure this code was correct.
I think it is, but it is odd.
I assume blk_size is always a power of 2?
So why not
   result *= blk_size;
??
It is obvious what that does.
This is for printing out a sysfs file, so speed does not trump
readability.
If it might not be a power of 2, then
   result <<= log2(blk_size);

it fairly obvious..

(I know you didn't introduce this strange code, I just felt the need to
comment)

NeilBrown
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20180817/33aed3a6/attachment.sig>


More information about the lustre-devel mailing list