mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-12-10 00:00:24 +03:00
Update bcachefs sources to 6fc0b31163ea workqueue: Basic memory allocation profiling support
Some checks failed
Nix Flake actions / nix-matrix (push) Has been cancelled
build / bcachefs-tools-deb (ubuntu-22.04) (push) Has been cancelled
build / bcachefs-tools-deb (ubuntu-24.04) (push) Has been cancelled
build / bcachefs-tools-rpm (push) Has been cancelled
build / bcachefs-tools-msrv (push) Has been cancelled
Nix Flake actions / ${{ matrix.name }} (${{ matrix.system }}) (push) Has been cancelled
Some checks failed
Nix Flake actions / nix-matrix (push) Has been cancelled
build / bcachefs-tools-deb (ubuntu-22.04) (push) Has been cancelled
build / bcachefs-tools-deb (ubuntu-24.04) (push) Has been cancelled
build / bcachefs-tools-rpm (push) Has been cancelled
build / bcachefs-tools-msrv (push) Has been cancelled
Nix Flake actions / ${{ matrix.name }} (${{ matrix.system }}) (push) Has been cancelled
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
25c580652a
commit
4e973f190c
@ -1 +1 @@
|
||||
4e917bf40142dc75c838d42f787189b06c23ffa3
|
||||
6fc0b31163ea24a1478550a2f91945a87fb81cbf
|
||||
|
||||
@ -336,7 +336,7 @@ static int attempt_compress(struct bch_fs *c,
|
||||
void *workspace,
|
||||
void *dst, size_t dst_len,
|
||||
void *src, size_t src_len,
|
||||
struct bch_compression_opt compression)
|
||||
union bch_compression_opt compression)
|
||||
{
|
||||
enum bch_compression_type compression_type =
|
||||
__bch2_compression_opt_to_type[compression.type];
|
||||
@ -426,7 +426,7 @@ static int attempt_compress(struct bch_fs *c,
|
||||
static unsigned __bio_compress(struct bch_fs *c,
|
||||
struct bio *dst, size_t *dst_len,
|
||||
struct bio *src, size_t *src_len,
|
||||
struct bch_compression_opt compression)
|
||||
union bch_compression_opt compression)
|
||||
{
|
||||
struct bbuf src_data = { NULL }, dst_data = { NULL };
|
||||
void *workspace;
|
||||
@ -553,7 +553,7 @@ unsigned bch2_bio_compress(struct bch_fs *c,
|
||||
|
||||
compression_type =
|
||||
__bio_compress(c, dst, dst_len, src, src_len,
|
||||
bch2_compression_decode(compression_opt));
|
||||
(union bch_compression_opt){ .value = compression_opt });
|
||||
|
||||
dst->bi_iter.bi_size = orig_dst;
|
||||
src->bi_iter.bi_size = orig_src;
|
||||
@ -602,7 +602,8 @@ static int __bch2_check_set_has_compressed_data(struct bch_fs *c, u64 f)
|
||||
int bch2_check_set_has_compressed_data(struct bch_fs *c,
|
||||
unsigned compression_opt)
|
||||
{
|
||||
unsigned compression_type = bch2_compression_decode(compression_opt).type;
|
||||
unsigned int compression_type = ((union bch_compression_opt){ .value = compression_opt })
|
||||
.type;
|
||||
|
||||
BUG_ON(compression_type >= ARRAY_SIZE(bch2_compression_opt_to_feature));
|
||||
|
||||
@ -683,7 +684,7 @@ static int __bch2_fs_compress_init(struct bch_fs *c, u64 features)
|
||||
|
||||
static u64 compression_opt_to_feature(unsigned v)
|
||||
{
|
||||
unsigned type = bch2_compression_decode(v).type;
|
||||
unsigned int type = ((union bch_compression_opt){ .value = v }).type;
|
||||
|
||||
return BIT_ULL(bch2_compression_opt_to_feature[type]);
|
||||
}
|
||||
@ -703,7 +704,7 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
|
||||
{
|
||||
char *val = kstrdup(_val, GFP_KERNEL);
|
||||
char *p = val, *type_str, *level_str;
|
||||
struct bch_compression_opt opt = { 0 };
|
||||
union bch_compression_opt opt = { 0 };
|
||||
int ret;
|
||||
|
||||
if (!val)
|
||||
@ -736,7 +737,7 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
|
||||
opt.level = level;
|
||||
}
|
||||
|
||||
*res = bch2_compression_encode(opt);
|
||||
*res = opt.value;
|
||||
err:
|
||||
kfree(val);
|
||||
return ret;
|
||||
@ -744,7 +745,7 @@ err:
|
||||
|
||||
void bch2_compression_opt_to_text(struct printbuf *out, u64 v)
|
||||
{
|
||||
struct bch_compression_opt opt = bch2_compression_decode(v);
|
||||
union bch_compression_opt opt = { .value = v };
|
||||
|
||||
if (opt.type < BCH_COMPRESSION_OPT_NR)
|
||||
prt_str(out, bch2_compression_opts[opt.type]);
|
||||
|
||||
@ -10,41 +10,27 @@ static const unsigned __bch2_compression_opt_to_type[] = {
|
||||
#undef x
|
||||
};
|
||||
|
||||
struct bch_compression_opt {
|
||||
u8 type:4,
|
||||
level:4;
|
||||
};
|
||||
|
||||
static inline struct bch_compression_opt __bch2_compression_decode(unsigned v)
|
||||
{
|
||||
return (struct bch_compression_opt) {
|
||||
.type = v & 15,
|
||||
.level = v >> 4,
|
||||
union bch_compression_opt {
|
||||
u8 value;
|
||||
struct {
|
||||
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
u8 type:4, level:4;
|
||||
#elif defined(__BIG_ENDIAN_BITFIELD)
|
||||
u8 level:4, type:4;
|
||||
#endif
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
static inline bool bch2_compression_opt_valid(unsigned v)
|
||||
{
|
||||
struct bch_compression_opt opt = __bch2_compression_decode(v);
|
||||
union bch_compression_opt opt = { .value = v };
|
||||
|
||||
return opt.type < ARRAY_SIZE(__bch2_compression_opt_to_type) && !(!opt.type && opt.level);
|
||||
}
|
||||
|
||||
static inline struct bch_compression_opt bch2_compression_decode(unsigned v)
|
||||
{
|
||||
return bch2_compression_opt_valid(v)
|
||||
? __bch2_compression_decode(v)
|
||||
: (struct bch_compression_opt) { 0 };
|
||||
}
|
||||
|
||||
static inline unsigned bch2_compression_encode(struct bch_compression_opt opt)
|
||||
{
|
||||
return opt.type|(opt.level << 4);
|
||||
}
|
||||
|
||||
static inline enum bch_compression_type bch2_compression_opt_to_type(unsigned v)
|
||||
{
|
||||
return __bch2_compression_opt_to_type[bch2_compression_decode(v).type];
|
||||
return __bch2_compression_opt_to_type[((union bch_compression_opt){ .value = v }).type];
|
||||
}
|
||||
|
||||
struct bch_write_op;
|
||||
|
||||
@ -637,7 +637,9 @@ err:
|
||||
* log_fsck_err()s: that would require us to track for every error type
|
||||
* which recovery pass corrects it, to get the fsck exit status correct:
|
||||
*/
|
||||
if (bch2_err_matches(ret, BCH_ERR_fsck_fix)) {
|
||||
if (bch2_err_matches(ret, BCH_ERR_transaction_restart)) {
|
||||
/* nothing */
|
||||
} else if (bch2_err_matches(ret, BCH_ERR_fsck_fix)) {
|
||||
set_bit(BCH_FS_errors_fixed, &c->flags);
|
||||
} else {
|
||||
set_bit(BCH_FS_errors_not_fixed, &c->flags);
|
||||
|
||||
@ -1524,7 +1524,7 @@ int bch2_bkey_ptrs_validate(struct bch_fs *c, struct bkey_s_c k,
|
||||
const struct bch_extent_rebalance *r = &entry->rebalance;
|
||||
|
||||
if (!bch2_compression_opt_valid(r->compression)) {
|
||||
struct bch_compression_opt opt = __bch2_compression_decode(r->compression);
|
||||
union bch_compression_opt opt = { .value = r->compression };
|
||||
prt_printf(err, "invalid compression opt %u:%u",
|
||||
opt.type, opt.level);
|
||||
return bch_err_throw(c, invalid_bkey);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user