Whamcloud - gitweb
LU-12355 llite: Lustre specific iov_for_each broken (removed)
[fs/lustre-release.git] / libcfs / include / libcfs / linux / linux-misc.h
index 4901053..bc3b5ee 100644 (file)
@@ -36,6 +36,7 @@
 #include <linux/fs.h>
 #include <linux/mutex.h>
 #include <linux/user_namespace.h>
+#include <linux/uio.h>
 
 #ifdef HAVE_SYSCTL_CTLNAME
 #define INIT_CTL_NAME  .ctl_name = CTL_UNNUMBERED,
 #define INIT_STRATEGY
 #endif
 
+#ifndef HAVE_IOV_ITER_TYPE
+#ifdef HAVE_IOV_ITER_HAS_TYPE_MEMBER
+#define iter_is_iovec(iter)            ((iter)->type & ITER_IOVEC)
+#define iov_iter_is_kvec(iter)         ((iter)->type & ITER_KVEC)
+#define iov_iter_is_bvec(iter)         ((iter)->type & ITER_BVEC)
+#define iov_iter_is_pipe(iter)         ((iter)->type & ITER_PIPE)
+#define iov_iter_is_discard(iter)      ((iter)->type & ITER_DISCARD)
+#else
+#define iter_is_iovec(iter)            1
+#define iov_iter_is_kvec(iter)         0
+#define iov_iter_is_bvec(iter)         0
+#define iov_iter_is_pipe(iter)         0
+#define iov_iter_is_discard(iter)      0
+#endif
+#endif /* HAVE_IOV_ITER_TYPE */
+
 #ifndef HAVE_MODULE_PARAM_LOCKING
 static DEFINE_MUTEX(param_lock);
 #endif
@@ -113,12 +130,10 @@ static inline bool gid_valid(kgid_t gid)
 
 int cfs_get_environ(const char *key, char *value, int *val_len);
 
-#ifndef HAVE_WAIT_QUEUE_ENTRY
-#define wait_queue_entry_t wait_queue_t
-#endif
-
 int cfs_kernel_write(struct file *filp, const void *buf, size_t count,
                     loff_t *pos);
+ssize_t cfs_kernel_read(struct file *file, void *buf, size_t count,
+                       loff_t *pos);
 
 /*
  * For RHEL6 struct kernel_parm_ops doesn't exist. Also