summaryrefslogtreecommitdiff
path: root/fs/bcachefs/reflink.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-05-20 15:49:23 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:09:04 -0400
commita6336910b1c30703fe0d5078ef1c656ea1d39096 (patch)
tree686bd59532ad256f9ee1f7c255f84a6a22853208 /fs/bcachefs/reflink.c
parent16ac8c9523a2744545bb773b41433a5007deeacb (diff)
bcachefs: Fix for buffered writes getting -ENOSPC
Buffered writes may have to increase their disk reservation at btree update time, due to compression and erasure coding being unpredictable: O_DIRECT writes should be checking for -ENOSPC, but buffered writes have already been accepted and should not. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/reflink.c')
-rw-r--r--fs/bcachefs/reflink.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/bcachefs/reflink.c b/fs/bcachefs/reflink.c
index ec8532b39a49..c624fabe1e1c 100644
--- a/fs/bcachefs/reflink.c
+++ b/fs/bcachefs/reflink.c
@@ -293,7 +293,8 @@ s64 bch2_remap_range(struct bch_fs *c,
ret = bch2_extent_update(&trans, dst_iter, new_dst.k,
&disk_res, journal_seq,
- new_i_size, i_sectors_delta);
+ new_i_size, i_sectors_delta,
+ true);
bch2_disk_reservation_put(c, &disk_res);
if (ret)
continue;