The commit is pushed to "branch-rh7-3.10.0-862.14.4.vz7.72.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh7-3.10.0-862.14.4.vz7.72.9 ------> commit b7f9b4aaa9c9828f40c79d496cfe4dc3e9c04db4 Author: Kirill Tkhai <ktk...@virtuozzo.com> Date: Tue Oct 16 18:04:29 2018 +0300
fuse kio: Use __maybe_unused Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com> Reviewed-by: Pavel Butsykin <pbutsy...@virtuozzo.com> ===================== Patchset description: Order pcs_rpc and pcs_sockio destruction and close leaked socket https://pmc.acronis.com/browse/VSTOR-15305 Ploop can asynchronously unmap regions by sending IOCB_CMD_UNMAP_ITER, but this command isn't quite correctly interpreted in Fuse. Moreover, in Fast-path mode, fallocate(FALLOC_FL_PUNCH_HOLE|FALLOC_FL_ZERO_RANGE) falls to fuse user daemon and it can lead to data corruption. Let's fix it. Kirill Tkhai (9): fuse kio: Use __maybe_unused fuse kio: Use sio eof instead of parent to determ abort fuse kio: Reorder callback assignment fuse kio: Add pcs_cleanup_wq fuse kio: Destroy rpc in work func fuse kio: Introduce pcs_sk_kick_queue() fuse kio: Dereference sk_user_data under rcu fuse kio: Fix rpc socket leak on rpc_abort() fuse kio: Hold pcs_rpc counter till sio may be freed --- fs/fuse/kio/pcs/pcs_sock_io.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fs/fuse/kio/pcs/pcs_sock_io.c b/fs/fuse/kio/pcs/pcs_sock_io.c index 0cf392fb4703..18b66f99e018 100644 --- a/fs/fuse/kio/pcs/pcs_sock_io.c +++ b/fs/fuse/kio/pcs/pcs_sock_io.c @@ -212,7 +212,6 @@ static void pcs_sockio_recv(struct pcs_sockio *sio) u32 msg_size; unsigned long loop_timeout = jiffies + PCS_SIO_SLICE; - (void)ep; TRACE("ENTER:" PEER_FMT " sio:%p cur_msg:%p\n", PEER_ARGS(ep), sio, sio->current_msg); while(!test_bit(PCS_IOCONN_BF_DEAD, &conn->flags)) { @@ -316,14 +315,13 @@ static void pcs_sockio_recv(struct pcs_sockio *sio) static void pcs_sockio_send(struct pcs_sockio *sio) { + struct pcs_rpc *ep __maybe_unused = sio->parent; struct pcs_ioconn* conn = &sio->ioconn; struct iov_iter *it = &sio->write_iter; unsigned long loop_timeout = jiffies + PCS_SIO_SLICE; struct pcs_msg * msg; int done = 0; int count = 0; - struct pcs_rpc *ep = sio->parent; - (void)ep; while (!list_empty(&sio->write_queue)) { msg = list_first_entry(&sio->write_queue, struct pcs_msg, list); _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel