summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/fs-io.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-05-28 06:59:26 +0200
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 23:10:03 +0200
commit5718fda0b5ef777ef56edbe53ef6a830b845c0fa (patch)
tree8b2d6c544f86691abbc5457cb46ed3e56a0caa52 /fs/bcachefs/fs-io.c
parentbcachefs: bch2_trans_kmalloc no longer allocates memory with btree locks held (diff)
downloadlinux-5718fda0b5ef777ef56edbe53ef6a830b845c0fa.tar.xz
linux-5718fda0b5ef777ef56edbe53ef6a830b845c0fa.zip
bcachefs: fs-io: Eliminate GFP_NOFS usage
GFP_NOFS doesn't ever make sense. If we're allocatingc memory it should be GFP_NOWAIT if btree locks are held, GFP_KERNEL otherwise. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/fs-io.c')
-rw-r--r--fs/bcachefs/fs-io.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c
index cf48f9a0d4e1..c864c271b7c2 100644
--- a/fs/bcachefs/fs-io.c
+++ b/fs/bcachefs/fs-io.c
@@ -1368,7 +1368,7 @@ void bch2_readahead(struct readahead_control *ractl)
BIO_MAX_VECS);
struct bch_read_bio *rbio =
rbio_init(bio_alloc_bioset(NULL, n, REQ_OP_READ,
- GFP_NOFS, &c->bio_read),
+ GFP_KERNEL, &c->bio_read),
opts);
readpage_iter_advance(&readpages_iter);
@@ -1379,6 +1379,7 @@ void bch2_readahead(struct readahead_control *ractl)
bchfs_read(&trans, rbio, inode_inum(inode),
&readpages_iter);
+ bch2_trans_unlock(&trans);
}
bch2_pagecache_add_put(inode);
@@ -1420,7 +1421,7 @@ static int bch2_read_single_folio(struct folio *folio,
bch2_inode_opts_get(&opts, c, &inode->ei_inode);
- rbio = rbio_init(bio_alloc_bioset(NULL, 1, REQ_OP_READ, GFP_NOFS, &c->bio_read),
+ rbio = rbio_init(bio_alloc_bioset(NULL, 1, REQ_OP_READ, GFP_KERNEL, &c->bio_read),
opts);
rbio->bio.bi_private = &done;
rbio->bio.bi_end_io = bch2_read_single_folio_end_io;
@@ -1555,7 +1556,7 @@ static void bch2_writepage_io_alloc(struct bch_fs *c,
w->io = container_of(bio_alloc_bioset(NULL, BIO_MAX_VECS,
REQ_OP_WRITE,
- GFP_NOFS,
+ GFP_KERNEL,
&c->writepage_bioset),
struct bch_writepage_io, op.wbio.bio);