From cc8df47c83504e0070ecfca08528dec51c5c8a3a Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 2 May 2019 13:19:01 -0400 Subject: [PATCH] debugfs: teach set_super_value how to set the s_encoding field Signed-off-by: Theodore Ts'o --- debugfs/set_fields.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/debugfs/set_fields.c b/debugfs/set_fields.c index 31356fd..5142554 100644 --- a/debugfs/set_fields.c +++ b/debugfs/set_fields.c @@ -70,6 +70,7 @@ static errcode_t parse_int(struct field_set_info *info, char *field, char *arg); static errcode_t parse_string(struct field_set_info *info, char *field, char *arg); static errcode_t parse_uuid(struct field_set_info *info, char *field, char *arg); static errcode_t parse_hashalg(struct field_set_info *info, char *field, char *arg); +static errcode_t parse_encoding(struct field_set_info *info, char *field, char *arg); static errcode_t parse_time(struct field_set_info *info, char *field, char *arg); static errcode_t parse_bmap(struct field_set_info *info, char *field, char *arg); static errcode_t parse_gd_csum(struct field_set_info *info, char *field, char *arg); @@ -181,6 +182,7 @@ static struct field_set_info super_fields[] = { { "encrypt_pw_salt", &set_sb.s_encrypt_pw_salt, NULL, 16, parse_uuid }, { "lpf_ino", &set_sb.s_lpf_ino, NULL, 4, parse_uint }, { "checksum_seed", &set_sb.s_checksum_seed, NULL, 4, parse_uint }, + { "encoding", &set_sb.s_encoding, NULL, 2, parse_encoding }, { 0, 0, 0, 0 } }; @@ -631,6 +633,19 @@ static errcode_t parse_hashalg(struct field_set_info *info, return 0; } +static errcode_t parse_encoding(struct field_set_info *info, + char *field EXT2FS_ATTR((unused)), char *arg) +{ + int encoding; + unsigned char *p = (unsigned char *) info->ptr; + + encoding = e2p_str2encoding(arg); + if (encoding < 0) + return parse_uint(info, field, arg); + *p = encoding; + return 0; +} + static errcode_t parse_bmap(struct field_set_info *info, char *field EXT2FS_ATTR((unused)), char *arg) { -- 1.8.3.1