bcachefs: fix memalloc_nofs_restore() usage
authorKent Overstreet <kent.overstreet@gmail.com>
Wed, 27 May 2020 18:10:27 +0000 (14:10 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:40 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_cache.c

index 4ff57925fb2ccc581c45d43ad3ee41e7c78b30f7..ef7ca552a0a38dc605ae55506b42502029ad33f4 100644 (file)
@@ -554,7 +554,6 @@ out_unlock:
 
        list_del_init(&b->list);
        mutex_unlock(&bc->lock);
-       memalloc_nofs_restore(flags);
 out:
        b->flags                = 0;
        b->written              = 0;
@@ -567,6 +566,7 @@ out:
        bch2_time_stats_update(&c->times[BCH_TIME_btree_node_mem_alloc],
                               start_time);
 
+       memalloc_nofs_restore(flags);
        return b;
 err:
        /* Try to cannibalize another cached btree node: */
@@ -582,6 +582,7 @@ err:
        }
 
        mutex_unlock(&bc->lock);
+       memalloc_nofs_restore(flags);
        return ERR_PTR(-ENOMEM);
 }