projects
/
linux-2.6-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6988e85
)
bcachefs: Fix __bch2_buffered_write() returning -ENOMEM
author
Kent Overstreet
<kent.overstreet@gmail.com>
Tue, 1 Oct 2019 22:51:10 +0000
(18:51 -0400)
committer
Kent Overstreet
<kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:28 +0000
(17:08 -0400)
When grab_cache_page_write_begin() fails but we did pin some pages, we
shouldn't return -ENOMEM, we should do a partial write.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/fs-io.c
patch
|
blob
|
blame
|
history
diff --git
a/fs/bcachefs/fs-io.c
b/fs/bcachefs/fs-io.c
index 13e7b78423678f8fb6296cd4052f2c2fec57c154..be121b755fc7345cfaf9888a50a4f2fb17db34ec 100644
(file)
--- a/
fs/bcachefs/fs-io.c
+++ b/
fs/bcachefs/fs-io.c
@@
-1606,8
+1606,13
@@
static int __bch2_buffered_write(struct bch_inode_info *inode,
pages[i] = grab_cache_page_write_begin(mapping, index + i);
if (!pages[i]) {
nr_pages = i;
- ret = -ENOMEM;
- goto out;
+ if (!i) {
+ ret = -ENOMEM;
+ goto out;
+ }
+ len = min_t(unsigned, len,
+ nr_pages * PAGE_SIZE - offset);
+ break;
}
}