[Devel] [PATCH RHEL9 COMMIT] fs/fuse/kio: accidental preempt_count disbalance
Konstantin Khorenko
khorenko at virtuozzo.com
Thu Feb 13 21:53:35 MSK 2025
The commit is pushed to "branch-rh9-5.14.0-427.44.1.vz9.80.x-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh9-5.14.0-427.44.1.vz9.80.15
------>
commit a2378f1e33fbe2918e56c6082e5a2f6c893a0d48
Author: Alexey Kuznetsov <kuznet at virtuozzo.com>
Date: Wed Feb 12 02:44:08 2025 +0800
fs/fuse/kio: accidental preempt_count disbalance
One in pcs_cs_accel is proven to be fatal, another one in pcs_mr_get()
is just a finding while searching for the first one.
Signed-off-by: Alexey Kuznetsov <kuznet at virtuozzo.com>
Fixes: 48f7ae56ed7f ("fs/fuse kio: implement memory region to support zero-copy
between userspace and kernel.")
Feature: fuse: kRPC - single RPC for kernel and userspace
Fixes: 4a8ed153b982 ("fuse: cs acceleration for writes")
Feature: vStorage
---
fs/fuse/kio/pcs/pcs_cs_accel.c | 2 +-
fs/fuse/kio/pcs/pcs_mr.c | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/fuse/kio/pcs/pcs_cs_accel.c b/fs/fuse/kio/pcs/pcs_cs_accel.c
index 66a0e0f83bbe..036ca172e299 100644
--- a/fs/fuse/kio/pcs/pcs_cs_accel.c
+++ b/fs/fuse/kio/pcs/pcs_cs_accel.c
@@ -1128,8 +1128,8 @@ static void __complete_acr_work(struct work_struct * w)
for (i = 0; i < n; i++, ch++)
*ch = ireq->iochunk.acr.io_times[i];
}
+ FUSE_TRACE_COMMIT(fc->ktrace);
}
- FUSE_TRACE_COMMIT(fc->ktrace);
}
ireq_clear_acr(ireq);
diff --git a/fs/fuse/kio/pcs/pcs_mr.c b/fs/fuse/kio/pcs/pcs_mr.c
index c8efc1301bac..9d83782bd915 100644
--- a/fs/fuse/kio/pcs/pcs_mr.c
+++ b/fs/fuse/kio/pcs/pcs_mr.c
@@ -102,6 +102,7 @@ struct pcs_mr *pcs_mr_get(struct pcs_mr_set *mrs, int idx)
rcu_read_unlock();
return mr;
}
+ rcu_read_unlock();
return NULL;
}
More information about the Devel
mailing list