Whamcloud - gitweb
LU-2470 procfs: Remove unused lu_time code.
[fs/lustre-release.git] / lustre / liblustre / llite_cl.c
index 98ae334..f906613 100644 (file)
@@ -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 <nikita@clusterfs.com>
  *
@@ -18,6 +16,8 @@
  *   You should have received a copy of the GNU General Public License
  *   along with Lustre; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *   Copyright (c) 2011, 2012, Intel Corporation.
  */
 
 #define DEBUG_SUBSYSTEM S_LLITE
 # include <sys/statfs.h>
 #endif
 
-#include <sysio.h>
-#ifdef HAVE_XTIO_H
-#include <xtio.h>
-#endif
-#include <fs.h>
-#include <mount.h>
-#include <inode.h>
-#ifdef HAVE_FILE_H
-#include <file.h>
-#endif
 #include <liblustre.h>
 
 #include <obd.h>
@@ -451,14 +441,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 +477,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 +488,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 +495,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 +560,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 +597,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 +643,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 +658,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 +726,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