Loading fs/bcachefs/bcachefs.h +0 −4 Original line number Diff line number Diff line Loading @@ -896,10 +896,6 @@ struct bch_fs { struct bch_fs_usage __percpu *usage_gc; u64 __percpu *online_reserved; /* single element mempool: */ struct mutex usage_scratch_lock; struct bch_fs_usage_online *usage_scratch; struct io_clock io_clock[2]; /* JOURNAL SEQ BLACKLIST */ Loading fs/bcachefs/buckets.c +0 −34 Original line number Diff line number Diff line Loading @@ -64,40 +64,6 @@ u64 bch2_fs_usage_read_one(struct bch_fs *c, u64 *v) return ret; } struct bch_fs_usage_online *bch2_fs_usage_read(struct bch_fs *c) { struct bch_fs_usage_online *ret; unsigned nr_replicas = READ_ONCE(c->replicas.nr); unsigned seq, i; retry: ret = kmalloc(__fs_usage_online_u64s(nr_replicas) * sizeof(u64), GFP_KERNEL); if (unlikely(!ret)) return NULL; percpu_down_read(&c->mark_lock); if (nr_replicas != c->replicas.nr) { nr_replicas = c->replicas.nr; percpu_up_read(&c->mark_lock); kfree(ret); goto retry; } ret->online_reserved = percpu_u64_get(c->online_reserved); do { seq = read_seqcount_begin(&c->usage_lock); unsafe_memcpy(&ret->u, c->usage_base, __fs_usage_u64s(nr_replicas) * sizeof(u64), "embedded variable length struct"); for (i = 0; i < ARRAY_SIZE(c->usage); i++) acc_u64s_percpu((u64 *) &ret->u, (u64 __percpu *) c->usage[i], __fs_usage_u64s(nr_replicas)); } while (read_seqcount_retry(&c->usage_lock, seq)); return ret; } void bch2_fs_usage_acc_to_base(struct bch_fs *c, unsigned idx) { unsigned u64s = fs_usage_u64s(c); Loading fs/bcachefs/buckets.h +0 −2 Original line number Diff line number Diff line Loading @@ -300,8 +300,6 @@ static inline unsigned dev_usage_u64s(void) u64 bch2_fs_usage_read_one(struct bch_fs *, u64 *); struct bch_fs_usage_online *bch2_fs_usage_read(struct bch_fs *); void bch2_fs_usage_acc_to_base(struct bch_fs *, unsigned); void bch2_fs_usage_to_text(struct printbuf *, Loading fs/bcachefs/chardev.c +12 −13 Original line number Diff line number Diff line Loading @@ -518,9 +518,7 @@ static long bch2_ioctl_fs_usage(struct bch_fs *c, struct bch_ioctl_fs_usage __user *user_arg) { struct bch_ioctl_fs_usage arg; struct bch_fs_usage_online *src = NULL; darray_char replicas = {}; unsigned i; u32 replica_entries_bytes; int ret = 0; Loading @@ -536,25 +534,26 @@ static long bch2_ioctl_fs_usage(struct bch_fs *c, if (ret) goto err; struct bch_fs_usage_short u = bch2_fs_usage_read_short(c); arg.capacity = c->capacity; arg.used = bch2_fs_sectors_used(c, src); arg.online_reserved = src->online_reserved; arg.used = u.used; arg.online_reserved = percpu_u64_get(c->online_reserved); arg.replica_entries_bytes = replicas.nr; src = bch2_fs_usage_read(c); if (!src) { ret = -ENOMEM; goto err; } for (unsigned i = 0; i < BCH_REPLICAS_MAX; i++) { struct disk_accounting_pos k = { .type = BCH_DISK_ACCOUNTING_persistent_reserved, .persistent_reserved.nr_replicas = i, }; for (i = 0; i < BCH_REPLICAS_MAX; i++) arg.persistent_reserved[i] = src->u.persistent_reserved[i]; percpu_up_read(&c->mark_lock); bch2_accounting_mem_read(c, disk_accounting_pos_to_bpos(&k), &arg.persistent_reserved[i], 1); } ret = copy_to_user_errcode(user_arg, &arg, sizeof(arg)); err: darray_exit(&replicas); kfree(src); return ret; } Loading fs/bcachefs/disk_accounting.c +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ * replay). * * To do a disk accounting update: * - initialize a disk_accounting_key, to specify which counter is being update * - initialize a disk_accounting_pos, to specify which counter is being update * - initialize counter deltas, as an array of 1-3 s64s * - call bch2_disk_accounting_mod() * Loading Loading
fs/bcachefs/bcachefs.h +0 −4 Original line number Diff line number Diff line Loading @@ -896,10 +896,6 @@ struct bch_fs { struct bch_fs_usage __percpu *usage_gc; u64 __percpu *online_reserved; /* single element mempool: */ struct mutex usage_scratch_lock; struct bch_fs_usage_online *usage_scratch; struct io_clock io_clock[2]; /* JOURNAL SEQ BLACKLIST */ Loading
fs/bcachefs/buckets.c +0 −34 Original line number Diff line number Diff line Loading @@ -64,40 +64,6 @@ u64 bch2_fs_usage_read_one(struct bch_fs *c, u64 *v) return ret; } struct bch_fs_usage_online *bch2_fs_usage_read(struct bch_fs *c) { struct bch_fs_usage_online *ret; unsigned nr_replicas = READ_ONCE(c->replicas.nr); unsigned seq, i; retry: ret = kmalloc(__fs_usage_online_u64s(nr_replicas) * sizeof(u64), GFP_KERNEL); if (unlikely(!ret)) return NULL; percpu_down_read(&c->mark_lock); if (nr_replicas != c->replicas.nr) { nr_replicas = c->replicas.nr; percpu_up_read(&c->mark_lock); kfree(ret); goto retry; } ret->online_reserved = percpu_u64_get(c->online_reserved); do { seq = read_seqcount_begin(&c->usage_lock); unsafe_memcpy(&ret->u, c->usage_base, __fs_usage_u64s(nr_replicas) * sizeof(u64), "embedded variable length struct"); for (i = 0; i < ARRAY_SIZE(c->usage); i++) acc_u64s_percpu((u64 *) &ret->u, (u64 __percpu *) c->usage[i], __fs_usage_u64s(nr_replicas)); } while (read_seqcount_retry(&c->usage_lock, seq)); return ret; } void bch2_fs_usage_acc_to_base(struct bch_fs *c, unsigned idx) { unsigned u64s = fs_usage_u64s(c); Loading
fs/bcachefs/buckets.h +0 −2 Original line number Diff line number Diff line Loading @@ -300,8 +300,6 @@ static inline unsigned dev_usage_u64s(void) u64 bch2_fs_usage_read_one(struct bch_fs *, u64 *); struct bch_fs_usage_online *bch2_fs_usage_read(struct bch_fs *); void bch2_fs_usage_acc_to_base(struct bch_fs *, unsigned); void bch2_fs_usage_to_text(struct printbuf *, Loading
fs/bcachefs/chardev.c +12 −13 Original line number Diff line number Diff line Loading @@ -518,9 +518,7 @@ static long bch2_ioctl_fs_usage(struct bch_fs *c, struct bch_ioctl_fs_usage __user *user_arg) { struct bch_ioctl_fs_usage arg; struct bch_fs_usage_online *src = NULL; darray_char replicas = {}; unsigned i; u32 replica_entries_bytes; int ret = 0; Loading @@ -536,25 +534,26 @@ static long bch2_ioctl_fs_usage(struct bch_fs *c, if (ret) goto err; struct bch_fs_usage_short u = bch2_fs_usage_read_short(c); arg.capacity = c->capacity; arg.used = bch2_fs_sectors_used(c, src); arg.online_reserved = src->online_reserved; arg.used = u.used; arg.online_reserved = percpu_u64_get(c->online_reserved); arg.replica_entries_bytes = replicas.nr; src = bch2_fs_usage_read(c); if (!src) { ret = -ENOMEM; goto err; } for (unsigned i = 0; i < BCH_REPLICAS_MAX; i++) { struct disk_accounting_pos k = { .type = BCH_DISK_ACCOUNTING_persistent_reserved, .persistent_reserved.nr_replicas = i, }; for (i = 0; i < BCH_REPLICAS_MAX; i++) arg.persistent_reserved[i] = src->u.persistent_reserved[i]; percpu_up_read(&c->mark_lock); bch2_accounting_mem_read(c, disk_accounting_pos_to_bpos(&k), &arg.persistent_reserved[i], 1); } ret = copy_to_user_errcode(user_arg, &arg, sizeof(arg)); err: darray_exit(&replicas); kfree(src); return ret; } Loading
fs/bcachefs/disk_accounting.c +1 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ * replay). * * To do a disk accounting update: * - initialize a disk_accounting_key, to specify which counter is being update * - initialize a disk_accounting_pos, to specify which counter is being update * - initialize counter deltas, as an array of 1-3 s64s * - call bch2_disk_accounting_mod() * Loading