Compare commits

..

1 Commits

Author SHA1 Message Date
Tom Marshall 2fab692cdf Implement cbd tune plus some cleanup and rearranging
Still need to implement cbd tune --repack.
2019-11-18 00:47:10 +01:00
3 changed files with 11 additions and 9 deletions

View File

@ -539,7 +539,7 @@ do_tune(int argc, char** argv)
uint64_t optval;
uint level = 0;
bool repack = false;
bool zero_detect = false;
tristate_t zero_detect = t_none;
char dev[PATH_MAX];
@ -564,7 +564,7 @@ do_tune(int argc, char** argv)
error("Failed to parse \"%s\"\n", optarg);
}
}
zero_detect = (optval != 0);
zero_detect = (optval ? t_true : t_false);
break;
default:
usage();

View File

@ -85,6 +85,6 @@ int cbd_check(const char* dev,
int cbd_resize(const char* dev,
uint64_t lsize);
int cbd_tune(const char* dev,
bool zero_detect, uint level, bool repack);
tristate_t zero_detect, uint level, bool repack);
#endif

View File

@ -6,7 +6,7 @@
int
cbd_tune(const char* dev,
bool zero_detect, uint level, bool repack)
tristate_t zero_detect, uint level, bool repack)
{
int fd;
uint8_t header_buf[SECTOR_SIZE];
@ -20,11 +20,13 @@ cbd_tune(const char* dev,
cbd_header_get(header_buf, &header);
cbd_check_header(&header);
if (zero_detect) {
header.params.flags |= CBD_FLAG_DETECT_ZEROS;
}
else {
header.params.flags &= ~CBD_FLAG_DETECT_ZEROS;
if (zero_detect != t_none) {
if (zero_detect == t_true) {
header.params.flags |= CBD_FLAG_DETECT_ZEROS;
}
else {
header.params.flags &= ~CBD_FLAG_DETECT_ZEROS;
}
}
if (level) {
cbd_compression_level_put(&header.params, level);