summaryrefslogtreecommitdiff
path: root/libbcachefs/reflink.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-11-04 12:53:59 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2019-11-04 12:53:59 -0500
commit6016d33b801a5fe13e86e5be3abf68ed166c0796 (patch)
tree47a42030c705d19e6b74ea785e82f123a10015b0 /libbcachefs/reflink.c
parent61bc316a4da4831d8812eb5051732cca27652d8d (diff)
Update bcachefs sources to 9e76e8d98c bcachefs: Fix uninitialized field in hash_check_init()
Diffstat (limited to 'libbcachefs/reflink.c')
-rw-r--r--libbcachefs/reflink.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libbcachefs/reflink.c b/libbcachefs/reflink.c
index 4a4b17f9..6d45ae24 100644
--- a/libbcachefs/reflink.c
+++ b/libbcachefs/reflink.c
@@ -166,6 +166,9 @@ s64 bch2_remap_range(struct bch_fs *c,
u64 src_done, dst_done;
int ret = 0, ret2 = 0;
+ if (!percpu_ref_tryget(&c->writes))
+ return -EROFS;
+
if (!(c->sb.features & (1ULL << BCH_FEATURE_REFLINK))) {
mutex_lock(&c->sb_lock);
if (!(c->sb.features & (1ULL << BCH_FEATURE_REFLINK))) {
@@ -295,5 +298,7 @@ err:
ret = bch2_trans_exit(&trans) ?: ret;
+ percpu_ref_put(&c->writes);
+
return dst_done ?: ret ?: ret2;
}