Whamcloud - gitweb
LU-2800 build: fix compilation issue with is_compat_task
[fs/lustre-release.git] / lustre / llite / llite_internal.h
index 0915797..912b04d 100644 (file)
@@ -46,6 +46,7 @@
 #include <lclient.h>
 #include <lustre_mdc.h>
 #include <linux/lustre_intent.h>
+#include <linux/compat.h>
 
 #ifndef FMODE_EXEC
 #define FMODE_EXEC 0
@@ -615,12 +616,16 @@ struct ll_readahead_state {
 extern struct kmem_cache *ll_file_data_slab;
 struct lustre_handle;
 struct ll_file_data {
-        struct ll_readahead_state fd_ras;
-        int fd_omode;
-        struct ccc_grouplock fd_grouplock;
+       struct ll_readahead_state fd_ras;
+       struct ccc_grouplock fd_grouplock;
        __u64 lfd_pos;
-        __u32 fd_flags;
-        struct file *fd_file;
+       __u32 fd_flags;
+       fmode_t fd_omode;
+       /* openhandle if lease exists for this file.
+        * Borrow lli->lli_och_mutex to protect assignment */
+       struct obd_client_handle *fd_lease_och;
+       struct obd_client_handle *fd_och;
+       struct file *fd_file;
        /* Indicate whether need to report failure when close.
         * true: failure is known, not report again.
         * false: unknown failure, should report. */
@@ -652,7 +657,12 @@ static inline int ll_need_32bit_api(struct ll_sb_info *sbi)
 #if BITS_PER_LONG == 32
         return 1;
 #else
-        return unlikely(cfs_curproc_is_32bit() || (sbi->ll_flags & LL_SBI_32BIT_API));
+       return unlikely(
+#ifdef CONFIG_COMPAT
+               is_compat_task() ||
+#endif
+               (sbi->ll_flags & LL_SBI_32BIT_API)
+       );
 #endif
 }
 
@@ -808,6 +818,11 @@ int ll_put_grouplock(struct inode *inode, struct file *file, unsigned long arg);
 int ll_fid2path(struct inode *inode, void *arg);
 int ll_data_version(struct inode *inode, __u64 *data_version, int extent_lock);
 
+struct obd_client_handle *ll_lease_open(struct inode *inode, struct file *file,
+                                       fmode_t mode);
+int ll_lease_close(struct obd_client_handle *och, struct inode *inode,
+                  bool *lease_broken);
+
 /* llite/dcache.c */
 
 int ll_dops_init(struct dentry *de, int block, int init_sa);
@@ -977,9 +992,7 @@ struct vvp_io_args {
 
         union {
                 struct {
-#ifndef HAVE_FILE_WRITEV
                         struct kiocb      *via_iocb;
-#endif
                         struct iovec      *via_iov;
                         unsigned long      via_nrsegs;
                 } normal;