X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fliblustre%2Fllite_cl.c;h=d6fc89820173adae7c961083670b0f550c0230fc;hb=31db8f9cf048ef93477951e12a166722e777a2da;hp=98ae334b01039e7a6a2a33b3f519f32feefb32a9;hpb=490fd542a9bc8e8dafd22a8f4ca7b186f87ab21c;p=fs%2Flustre-release.git diff --git a/lustre/liblustre/llite_cl.c b/lustre/liblustre/llite_cl.c index 98ae334..d6fc898 100644 --- a/lustre/liblustre/llite_cl.c +++ b/lustre/liblustre/llite_cl.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * Copyright (c) 2007 Cluster File Systems, Inc. * Author: Nikita Danilov * @@ -36,16 +34,6 @@ # include #endif -#include -#ifdef HAVE_XTIO_H -#include -#endif -#include -#include -#include -#ifdef HAVE_FILE_H -#include -#endif #include #include @@ -451,14 +439,14 @@ static int slp_io_rw_lock(const struct lu_env *env, } -static int slp_io_trunc_iter_init(const struct lu_env *env, - const struct cl_io_slice *ios) +static int slp_io_setattr_iter_init(const struct lu_env *env, + const struct cl_io_slice *ios) { return 0; } -static int slp_io_trunc_start(const struct lu_env *env, - const struct cl_io_slice *ios) +static int slp_io_setattr_start(const struct lu_env *env, + const struct cl_io_slice *ios) { return 0; } @@ -487,6 +475,7 @@ static void llu_free_user_page(struct page *page) OBD_FREE_PTR(page); } + static int llu_queue_pio(const struct lu_env *env, struct cl_io *io, struct llu_io_group *group, char *buf, size_t count, loff_t pos) @@ -497,7 +486,6 @@ static int llu_queue_pio(const struct lu_env *env, struct cl_io *io, struct obd_export *exp = llu_i2obdexp(inode); struct page *page; int rc = 0, ret_bytes = 0; - int local_lock; struct cl_page *clp; struct cl_2queue *queue; ENTRY; @@ -505,8 +493,6 @@ static int llu_queue_pio(const struct lu_env *env, struct cl_io *io, if (!exp) RETURN(-EINVAL); - local_lock = group->lig_params->lrp_lock_mode != LCK_NL; - queue = &io->ci_queue; cl_2queue_init(queue); @@ -572,7 +558,7 @@ static int llu_queue_pio(const struct lu_env *env, struct cl_io *io, if (rc == 0) { enum cl_req_type iot; iot = io->ci_type == CIT_READ ? CRT_READ : CRT_WRITE; - rc = cl_io_submit_sync(env, io, iot, queue, CRP_NORMAL, 0); + rc = cl_io_submit_sync(env, io, iot, queue, 0); } group->lig_rc = rc; @@ -609,15 +595,23 @@ void put_io_group(struct llu_io_group *group) OBD_FREE_PTR(group); } +/** + * True, if \a io is a normal io, False for sendfile() / splice_{read|write} + */ +int cl_is_normalio(const struct lu_env *env, const struct cl_io *io) +{ + return 1; +} + static int slp_io_start(const struct lu_env *env, const struct cl_io_slice *ios) { struct ccc_io *cio = cl2ccc_io(env, ios); struct cl_io *io = ios->cis_io; struct cl_object *obj = io->ci_obj; struct inode *inode = ccc_object_inode(obj); - int err, ret; - loff_t pos; - size_t cnt; + int err, ret; + loff_t pos; + long cnt; struct llu_io_group *iogroup; struct lustre_rw_params p = {0}; int iovidx; @@ -647,13 +641,13 @@ static int slp_io_start(const struct lu_env *env, const struct cl_io_slice *ios) if (IS_ERR(iogroup)) RETURN(PTR_ERR(iogroup)); - err = ccc_prep_size(env, obj, io, pos, cnt, 0, &exceed); + err = ccc_prep_size(env, obj, io, pos, cnt, &exceed); if (err != 0 || (write == 0 && exceed != 0)) GOTO(out, err); CDEBUG(D_INODE, - "%s ino %lu, "LPSZ" bytes, offset %lld, i_size %llu\n", - write?"Write":"Read", (unsigned long)st->st_ino, + "%s ino %lu, %lu bytes, offset "LPU64", i_size "LPU64"\n", + write ? "Write" : "Read", (unsigned long)st->st_ino, cnt, (__u64)pos, (__u64)st->st_size); if (write && io->u.ci_wr.wr_append) @@ -662,7 +656,7 @@ static int slp_io_start(const struct lu_env *env, const struct cl_io_slice *ios) for (iovidx = 0; iovidx < cio->cui_nrsegs; iovidx++) { char *buf = (char *) cio->cui_iov[iovidx].iov_base; - size_t count = cio->cui_iov[iovidx].iov_len; + long count = cio->cui_iov[iovidx].iov_len; if (!count) continue; @@ -730,10 +724,10 @@ static const struct cl_io_operations ccc_io_ops = { .cio_end = ccc_io_end, .cio_advance = ccc_io_advance }, - [CIT_TRUNC] = { + [CIT_SETATTR] = { .cio_fini = ccc_io_fini, - .cio_iter_init = slp_io_trunc_iter_init, - .cio_start = slp_io_trunc_start + .cio_iter_init = slp_io_setattr_iter_init, + .cio_start = slp_io_setattr_start }, [CIT_MISC] = { .cio_fini = ccc_io_fini