The commit is pushed to "branch-rh7-3.10.0-693.17.1.vz7.45.x-ovz" and will 
appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-693.17.1.vz7.43.7
------>
commit aa5dd928f638ec6701445f6821aa7fce3b78b52a
Author: Dmitry Monakhov <dmonak...@openvz.org>
Date:   Mon Feb 19 14:22:34 2018 +0300

    fio kio: PCS unblock writepath
    
    https://jira.sw.ru/browse/PSBM-80680
    Signed-off-by: Dmitry Monakhov <dmonak...@openvz.org>
---
 fs/fuse/kio/pcs/pcs_fuse_kdirect.c | 14 +++++---------
 fs/fuse/kio/pcs/pcs_map.c          |  2 --
 2 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/fs/fuse/kio/pcs/pcs_fuse_kdirect.c 
b/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
index f7226021d469..1b21fc9f9ffe 100644
--- a/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
+++ b/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
@@ -593,9 +593,9 @@ static void pcs_fuse_submit(struct pcs_fuse_cluster *pfc, 
struct fuse_req *req,
        switch (r->req.in.h.opcode) {
        case FUSE_WRITE: {
                struct fuse_write_in *in = &r->req.misc.write.in;
-               struct fuse_write_out *out = &r->req.misc.write.out;
-               out->size = in->size;
-               break;
+
+               pcs_fuse_prep_io(r, PCS_REQ_T_WRITE, in->offset, in->size);
+               goto submit;
        }
        case FUSE_READ: {
                struct fuse_read_in *in = &r->req.misc.read.in;
@@ -612,8 +612,8 @@ static void pcs_fuse_submit(struct pcs_fuse_cluster *pfc, 
struct fuse_req *req,
                goto submit;
        }
        case FUSE_FSYNC:
-               /*NOOP */
-               break;
+               pcs_fuse_prep_io(r, PCS_REQ_T_SYNC, 0, 0);
+               goto submit;
        }
        r->req.out.h.error = 0;
        DTRACE("do fuse_request_end req:%p op:%d err:%d\n", &r->req, 
r->req.in.h.opcode, r->req.out.h.error);
@@ -661,10 +661,6 @@ int kpcs_req_send(struct fuse_conn* fc, struct fuse_req 
*req, bool bg, bool lk)
        if (!fi->private)
                return 1;
 
-       /* TODO, fetch only read requests for now */
-       if (req->in.h.opcode != FUSE_READ)
-               return 1;
-
        __clear_bit(FR_BACKGROUND, &req->flags);
        __clear_bit(FR_PENDING, &req->flags);
        /* request_end below will do fuse_put_request() */
diff --git a/fs/fuse/kio/pcs/pcs_map.c b/fs/fuse/kio/pcs/pcs_map.c
index 32cfd073befd..98b8357c5c2b 100644
--- a/fs/fuse/kio/pcs/pcs_map.c
+++ b/fs/fuse/kio/pcs/pcs_map.c
@@ -2136,7 +2136,6 @@ int pcs_cslist_submit(struct pcs_int_request *ireq, 
struct pcs_cs_list *csl, int
        BUG_ON(!atomic_read(&csl->refcnt));
 
        if (ireq->type == PCS_IREQ_FLUSH) {
-               BUG();
                return pcs_cslist_submit_flush(ireq, csl, requeue);
        } else if (!ireq->iochunk.direction) {
                return pcs_cslist_submit_read(ireq, csl, requeue);
@@ -2144,7 +2143,6 @@ int pcs_cslist_submit(struct pcs_int_request *ireq, 
struct pcs_cs_list *csl, int
                BUG();
                return -EIO;
        } else {
-               BUG();
                return pcs_cslist_submit_write(ireq, csl, requeue);
        }
        BUG();
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to