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

View File

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

View File

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