summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2016-10-05 22:48:09 -0800
committerKent Overstreet <kent.overstreet@gmail.com>2017-01-18 21:40:33 -0900
commitb9aadd59175a6475eb2e8b5e21bd38bb9454b099 (patch)
tree3c429b2ddb87f66afeecdb0f47dc4644662328b7
parent7c7b47ad101263b8931184d0dbaa09d8193f46d9 (diff)
bcache: add a journal error check to __bch_btree_reserve_get()
-rw-r--r--drivers/md/bcache/btree_update.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/md/bcache/btree_update.c b/drivers/md/bcache/btree_update.c
index ad7e3d9790d4..bfbc2964394f 100644
--- a/drivers/md/bcache/btree_update.c
+++ b/drivers/md/bcache/btree_update.c
@@ -503,6 +503,14 @@ static struct btree_reserve *__bch_btree_reserve_get(struct cache_set *c,
if (!check_enospc)
flags |= BCH_DISK_RESERVATION_NOFAIL;
+ /*
+ * This check isn't necessary for correctness - it's just to potentially
+ * prevent us from doing a lot of work that'll end up being wasted:
+ */
+ ret = bch_journal_error(&c->journal);
+ if (ret)
+ return ERR_PTR(ret);
+
if (bch_disk_reservation_get(c, &disk_res, sectors, flags))
return ERR_PTR(-ENOSPC);