mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 07:33:19 +02:00
bcachefs: Move bch_sb_field_crypt code to checksum.c
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
fb8e5b4cae
commit
0ec3985694
|
|
@ -460,6 +460,48 @@ int bch2_rechecksum_bio(struct bch_fs *c, struct bio *bio,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* BCH_SB_FIELD_crypt: */
|
||||
|
||||
static int bch2_sb_crypt_validate(struct bch_sb *sb,
|
||||
struct bch_sb_field *f,
|
||||
struct printbuf *err)
|
||||
{
|
||||
struct bch_sb_field_crypt *crypt = field_to_type(f, crypt);
|
||||
|
||||
if (vstruct_bytes(&crypt->field) < sizeof(*crypt)) {
|
||||
prt_printf(err, "wrong size (got %zu should be %zu)",
|
||||
vstruct_bytes(&crypt->field), sizeof(*crypt));
|
||||
return -BCH_ERR_invalid_sb_crypt;
|
||||
}
|
||||
|
||||
if (BCH_CRYPT_KDF_TYPE(crypt)) {
|
||||
prt_printf(err, "bad kdf type %llu", BCH_CRYPT_KDF_TYPE(crypt));
|
||||
return -BCH_ERR_invalid_sb_crypt;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void bch2_sb_crypt_to_text(struct printbuf *out, struct bch_sb *sb,
|
||||
struct bch_sb_field *f)
|
||||
{
|
||||
struct bch_sb_field_crypt *crypt = field_to_type(f, crypt);
|
||||
|
||||
prt_printf(out, "KFD: %llu", BCH_CRYPT_KDF_TYPE(crypt));
|
||||
prt_newline(out);
|
||||
prt_printf(out, "scrypt n: %llu", BCH_KDF_SCRYPT_N(crypt));
|
||||
prt_newline(out);
|
||||
prt_printf(out, "scrypt r: %llu", BCH_KDF_SCRYPT_R(crypt));
|
||||
prt_newline(out);
|
||||
prt_printf(out, "scrypt p: %llu", BCH_KDF_SCRYPT_P(crypt));
|
||||
prt_newline(out);
|
||||
}
|
||||
|
||||
const struct bch_sb_field_ops bch_sb_field_ops_crypt = {
|
||||
.validate = bch2_sb_crypt_validate,
|
||||
.to_text = bch2_sb_crypt_to_text,
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
static int __bch2_request_key(char *key_description, struct bch_key *key)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -72,6 +72,8 @@ static inline int bch2_encrypt_bio(struct bch_fs *c, unsigned type,
|
|||
: 0;
|
||||
}
|
||||
|
||||
extern const struct bch_sb_field_ops bch_sb_field_ops_crypt;
|
||||
|
||||
int bch2_decrypt_sb_key(struct bch_fs *, struct bch_sb_field_crypt *,
|
||||
struct bch_key *);
|
||||
|
||||
|
|
|
|||
|
|
@ -1016,48 +1016,6 @@ void __bch2_check_set_feature(struct bch_fs *c, unsigned feat)
|
|||
mutex_unlock(&c->sb_lock);
|
||||
}
|
||||
|
||||
/* BCH_SB_FIELD_crypt: */
|
||||
|
||||
static int bch2_sb_crypt_validate(struct bch_sb *sb,
|
||||
struct bch_sb_field *f,
|
||||
struct printbuf *err)
|
||||
{
|
||||
struct bch_sb_field_crypt *crypt = field_to_type(f, crypt);
|
||||
|
||||
if (vstruct_bytes(&crypt->field) < sizeof(*crypt)) {
|
||||
prt_printf(err, "wrong size (got %zu should be %zu)",
|
||||
vstruct_bytes(&crypt->field), sizeof(*crypt));
|
||||
return -BCH_ERR_invalid_sb_crypt;
|
||||
}
|
||||
|
||||
if (BCH_CRYPT_KDF_TYPE(crypt)) {
|
||||
prt_printf(err, "bad kdf type %llu", BCH_CRYPT_KDF_TYPE(crypt));
|
||||
return -BCH_ERR_invalid_sb_crypt;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void bch2_sb_crypt_to_text(struct printbuf *out, struct bch_sb *sb,
|
||||
struct bch_sb_field *f)
|
||||
{
|
||||
struct bch_sb_field_crypt *crypt = field_to_type(f, crypt);
|
||||
|
||||
prt_printf(out, "KFD: %llu", BCH_CRYPT_KDF_TYPE(crypt));
|
||||
prt_newline(out);
|
||||
prt_printf(out, "scrypt n: %llu", BCH_KDF_SCRYPT_N(crypt));
|
||||
prt_newline(out);
|
||||
prt_printf(out, "scrypt r: %llu", BCH_KDF_SCRYPT_R(crypt));
|
||||
prt_newline(out);
|
||||
prt_printf(out, "scrypt p: %llu", BCH_KDF_SCRYPT_P(crypt));
|
||||
prt_newline(out);
|
||||
}
|
||||
|
||||
static const struct bch_sb_field_ops bch_sb_field_ops_crypt = {
|
||||
.validate = bch2_sb_crypt_validate,
|
||||
.to_text = bch2_sb_crypt_to_text,
|
||||
};
|
||||
|
||||
/* BCH_SB_FIELD_clean: */
|
||||
|
||||
int bch2_sb_clean_validate_late(struct bch_fs *c, struct bch_sb_field_clean *clean, int write)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user