diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-05-28 00:59:26 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:10:03 -0400 |
commit | 5718fda0b5ef777ef56edbe53ef6a830b845c0fa (patch) | |
tree | 8b2d6c544f86691abbc5457cb46ed3e56a0caa52 /fs | |
parent | 78367aaa5af322b64d44a3a3354f4c75c499fef0 (diff) |
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')
-rw-r--r-- | fs/bcachefs/fs-io.c | 7 |
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); |