]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
bcache: Document shrinker reserve better
authorKent Overstreet <koverstreet@google.com>
Mon, 3 Jun 2013 20:04:56 +0000 (13:04 -0700)
committerKent Overstreet <kmo@daterainc.com>
Mon, 1 Jul 2013 21:42:48 +0000 (14:42 -0700)
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
drivers/md/bcache/btree.c

index a6ad49ac5f2ba80557b6a1255b1b190f5f1d41a8..04636a70ffaadece29f02874bd846741a8422fe1 100644 (file)
@@ -622,6 +622,13 @@ static int bch_mca_shrink(struct shrinker *shrink, struct shrink_control *sc)
        else if (!mutex_trylock(&c->bucket_lock))
                return -1;
 
+       /*
+        * It's _really_ critical that we don't free too many btree nodes - we
+        * have to always leave ourselves a reserve. The reserve is how we
+        * guarantee that allocating memory for a new btree node can always
+        * succeed, so that inserting keys into the btree can always succeed and
+        * IO can always make forward progress:
+        */
        nr /= c->btree_pages;
        nr = min_t(unsigned long, nr, mca_can_free(c));