summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-01-11 16:31:55 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2021-01-13 13:12:24 -0500
commit6b4f8559476ab2f31959be0083b4eca547a2de56 (patch)
treeca126b714819541a8724ed5d2907d1524de38cac
parent93347f716249d5b2503bb7504fe9faac2bcd8d36 (diff)
add printkstintel-debug
-rw-r--r--fs/bcachefs/buckets.c21
-rw-r--r--fs/bcachefs/fs-io.c2
2 files changed, 22 insertions, 1 deletions
diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c
index ed07dfee0ae3..255551f31dae 100644
--- a/fs/bcachefs/buckets.c
+++ b/fs/bcachefs/buckets.c
@@ -2118,6 +2118,7 @@ int bch2_disk_reservation_add(struct bch_fs *c, struct disk_reservation *res,
unsigned sectors, int flags)
{
struct bch_fs_pcpu *pcpu;
+ struct bch_fs_usage_short usage;
u64 old, v, get;
s64 sectors_available;
int ret;
@@ -2156,7 +2157,8 @@ recalculate:
mutex_lock(&c->sectors_available_lock);
percpu_u64_set(&c->pcpu->sectors_available, 0);
- sectors_available = avail_factor(__bch2_fs_usage_read_short(c).free);
+ usage = __bch2_fs_usage_read_short(c);
+ sectors_available = avail_factor(usage.free);
if (sectors <= sectors_available ||
(flags & BCH_DISK_RESERVATION_NOFAIL)) {
@@ -2166,6 +2168,23 @@ recalculate:
res->sectors += sectors;
ret = 0;
} else {
+ bch_err(c, "-ENOSPC:\n"
+ "real capacity:\t%llu\n"
+ "hidden:\t%llu\n"
+ "btree:\t%llu\n"
+ "data:\t%llu\n"
+ "reserved:\t%llu\n"
+ "onlinereserved:\t%llu\n"
+ "exposed capacity:\t%llu\n"
+ "used:\t%llu\n",
+ c->capacity,
+ bch2_fs_usage_read_one(c, &c->usage_base->hidden),
+ bch2_fs_usage_read_one(c, &c->usage_base->btree),
+ bch2_fs_usage_read_one(c, &c->usage_base->data),
+ bch2_fs_usage_read_one(c, &c->usage_base->reserved),
+ bch2_fs_usage_read_one(c, &c->usage_base->online_reserved),
+ usage.capacity,
+ usage.used);
atomic64_set(&c->sectors_available, sectors_available);
ret = -ENOSPC;
}
diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c
index 959eff4c9258..98e1b61c24d2 100644
--- a/fs/bcachefs/fs-io.c
+++ b/fs/bcachefs/fs-io.c
@@ -1465,6 +1465,8 @@ static int __bch2_buffered_write(struct bch_inode_info *inode,
retry_reservation:
ret = bch2_page_reservation_get(c, inode, page, &res,
pg_offset, pg_len, true);
+ if (ret)
+ bch_err(c, "err %i from bch2_page_reservation_get", ret);
if (ret && !PageUptodate(page)) {
ret = bch2_read_single_page(page, mapping);