Fix the output of 'lfs quota' when '-h' option is specified:
- total allocated block limit should be converted after calculation;
- show 1~3 digit after the decimal point;
Signed-off-by: Niu Yawei <yawei.niu@intel.com>
Change-Id: I90a8087dc15153c1b0b895c8081fe2882d6d01e6
Reviewed-on: http://review.whamcloud.com/8407
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Johann Lombardi <johann.lombardi@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
error "lfs setquota failed"
limit=$($LFS quota -u $TSTID -v -h $DIR | grep $DIR | awk '{print $3}')
error "lfs setquota failed"
limit=$($LFS quota -u $TSTID -v -h $DIR | grep $DIR | awk '{print $3}')
- [ $limit != "30M" ] && error "softlimit isn't human-readable"
+ [ $limit != "30M" ] && error "softlimit $limit isn't human-readable"
limit=$($LFS quota -u $TSTID -v -h $DIR | grep $DIR | awk '{print $4}')
limit=$($LFS quota -u $TSTID -v -h $DIR | grep $DIR | awk '{print $4}')
- [ $limit != "3T" ] && error "hardlimit isn't human-readable"
+ [ $limit != "3T" ] && error "hardlimit $limit isn't human-readable"
+
+ $LFS setquota -u $TSTID -b 1500M -B 18500G $DIR ||
+ error "lfs setquota for $TSTID failed"
+
+ limit=$($LFS quota -u $TSTID -v -h $DIR | grep $DIR | awk '{print $3}')
+ [ $limit != "1.465G" ] && error "wrong softlimit $limit"
+ limit=$($LFS quota -u $TSTID -v -h $DIR | grep $DIR | awk '{print $4}')
+ [ $limit != "18.07T" ] && error "wrong hardlimit $limit"
$LFS quota -u $TSTID -v -h $DIR | grep -q "Total allocated" ||
error "total allocated inode/block limit not printed"
$LFS quota -u $TSTID -v -h $DIR | grep -q "Total allocated" ||
error "total allocated inode/block limit not printed"
sprintf(buf, LPU64, num);
} else {
if (num >> 30)
sprintf(buf, LPU64, num);
} else {
if (num >> 30)
- sprintf(buf, LPU64"%s", num >> 30, "T");
+ sprintf(buf, "%5.4gT", (double)num / (1 << 30));
- sprintf(buf, LPU64"%s", num >> 20, "G");
+ sprintf(buf, "%5.4gG", (double)num / (1 << 20));
- sprintf(buf, LPU64"%s", num >> 10, "M");
+ sprintf(buf, "%5.4gM", (double)num / (1 << 10));
- sprintf(buf, LPU64"%s", num, "K");
+ sprintf(buf, LPU64"%s", num, "k");
verbose) {
char strbuf[32];
verbose) {
char strbuf[32];
- kbytes2str(total_balloc, strbuf, human_readable);
rc2 = print_obd_quota(mnt, &qctl, 1, human_readable,
&total_ialloc);
rc3 = print_obd_quota(mnt, &qctl, 0, human_readable,
&total_balloc);
rc2 = print_obd_quota(mnt, &qctl, 1, human_readable,
&total_ialloc);
rc3 = print_obd_quota(mnt, &qctl, 0, human_readable,
&total_balloc);
+ kbytes2str(total_balloc, strbuf, human_readable);
printf("Total allocated inode limit: "LPU64", total "
"allocated block limit: %s\n", total_ialloc, strbuf);
}
printf("Total allocated inode limit: "LPU64", total "
"allocated block limit: %s\n", total_ialloc, strbuf);
}