Whamcloud - gitweb
LU-6215 llite: make_request_fn returns blk_qc_t in kernel 4.4
[fs/lustre-release.git] / lustre / include / lustre_compat.h
index 9918a7a..4e9f3ac 100644 (file)
@@ -123,13 +123,9 @@ static inline void ll_set_fs_pwd(struct fs_struct *fs, struct vfsmount *mnt,
 #ifdef HAVE_INODE_DIO_WAIT
 /* inode_dio_wait(i) use as-is for write lock */
 # define inode_dio_write_done(i)       do {} while (0) /* for write unlock */
-# define inode_dio_read(i)             atomic_inc(&(i)->i_dio_count)
-/* inode_dio_done(i) use as-is for read unlock */
 #else
 # define inode_dio_wait(i)             down_write(&(i)->i_alloc_sem)
 # define inode_dio_write_done(i)       up_write(&(i)->i_alloc_sem)
-# define inode_dio_read(i)             down_read(&(i)->i_alloc_sem)
-# define inode_dio_done(i)             up_read(&(i)->i_alloc_sem)
 #endif
 
 #ifndef FS_HAS_FIEMAP
@@ -188,6 +184,7 @@ unsigned int ll_crypto_tfm_alg_min_keysize(struct crypto_blkcipher *tfm)
 #ifdef HAVE_BVEC_ITER
 #define bio_idx(bio)                   (bio->bi_iter.bi_idx)
 #define bio_set_sector(bio, sector)    (bio->bi_iter.bi_sector = sector)
+#define bvl_to_page(bvl)               (bvl.bv_page)
 #else
 #define bio_idx(bio)                   (bio->bi_idx)
 #define bio_set_sector(bio, sector)    (bio->bi_sector = sector)
@@ -195,7 +192,7 @@ unsigned int ll_crypto_tfm_alg_min_keysize(struct crypto_blkcipher *tfm)
 #ifndef HAVE_BIO_END_SECTOR
 #define bio_end_sector(bio)            (bio->bi_sector + bio_sectors(bio))
 #endif
-#define bvec_iter_page(bvec, iter)     (*bvec->bv_page)
+#define bvl_to_page(bvl)               (bvl->bv_page)
 #endif
 
 #ifndef HAVE_BLK_QUEUE_MAX_SEGMENTS
@@ -219,28 +216,36 @@ unsigned int ll_crypto_tfm_alg_min_keysize(struct crypto_blkcipher *tfm)
 #define clear_inode(i)         end_writeback(i)
 #endif
 
-#ifdef HAVE_DENTRY_D_ALIAS_HLIST
+#ifndef HAVE_DENTRY_D_CHILD
+#define d_child                        d_u.d_child
+#endif
+
+#ifdef HAVE_DENTRY_D_U_D_ALIAS
+#define d_alias                        d_u.d_alias
+#endif
+
+#ifndef DATA_FOR_LLITE_IS_LIST
 #define ll_d_hlist_node hlist_node
 #define ll_d_hlist_empty(list) hlist_empty(list)
 #define ll_d_hlist_entry(ptr, type, name) hlist_entry(ptr.first, type, name)
 #define ll_d_hlist_for_each(tmp, i_dentry) hlist_for_each(tmp, i_dentry)
-#ifdef HAVE_HLIST_FOR_EACH_3ARG
-#define ll_d_hlist_for_each_entry(dentry, p, i_dentry, alias) \
-       p = NULL; hlist_for_each_entry(dentry, i_dentry, alias)
-#else
-#define ll_d_hlist_for_each_entry(dentry, p, i_dentry, alias) \
-        hlist_for_each_entry(dentry, p, i_dentry, alias)
-#endif
+# ifdef HAVE_HLIST_FOR_EACH_3ARG
+# define ll_d_hlist_for_each_entry(dentry, p, i_dentry) \
+       p = NULL; hlist_for_each_entry(dentry, i_dentry, d_alias)
+# else
+# define ll_d_hlist_for_each_entry(dentry, p, i_dentry) \
+       hlist_for_each_entry(dentry, p, i_dentry, d_alias)
+# endif
 #define DECLARE_LL_D_HLIST_NODE_PTR(name) struct ll_d_hlist_node *name
 #else
 #define ll_d_hlist_node list_head
 #define ll_d_hlist_empty(list) list_empty(list)
 #define ll_d_hlist_entry(ptr, type, name) list_entry(ptr.next, type, name)
 #define ll_d_hlist_for_each(tmp, i_dentry) list_for_each(tmp, i_dentry)
-#define ll_d_hlist_for_each_entry(dentry, p, i_dentry, alias) \
-       list_for_each_entry(dentry, i_dentry, alias)
+#define ll_d_hlist_for_each_entry(dentry, p, i_dentry) \
+       list_for_each_entry(dentry, i_dentry, d_alias)
 #define DECLARE_LL_D_HLIST_NODE_PTR(name) /* nothing */
-#endif
+#endif /* !DATA_FOR_LLITE_IS_LIST */
 
 #ifndef QUOTA_OK
 # define QUOTA_OK 0
@@ -293,12 +298,17 @@ static inline int ll_namei_to_lookup_intent_flag(int flag)
        return flag;
 }
 
-#ifdef HAVE_VOID_MAKE_REQUEST_FN
-# define ll_mrf_ret void
-# define LL_MRF_RETURN(rc)
+#ifdef HAVE_QC_MAKE_REQUEST_FN
+# define ll_mrf_ret blk_qc_t
+# define LL_MRF_RETURN(rc) RETURN(BLK_QC_T_NONE)
 #else
-# define ll_mrf_ret int
-# define LL_MRF_RETURN(rc) RETURN(rc)
+# ifdef HAVE_VOID_MAKE_REQUEST_FN
+#  define ll_mrf_ret void
+#  define LL_MRF_RETURN(rc)
+# else
+#  define ll_mrf_ret int
+#  define LL_MRF_RETURN(rc) RETURN(rc)
+# endif
 #endif
 
 #include <linux/fs.h>
@@ -383,4 +393,20 @@ static inline void truncate_inode_pages_final(struct address_space *map)
 #define SIZE_MAX       (~(size_t)0)
 #endif
 
+#ifdef HAVE_SECURITY_IINITSEC_CALLBACK
+# define ll_security_inode_init_security(inode, dir, name, value, len, \
+                                        initxattrs, dentry)           \
+        security_inode_init_security(inode, dir, &((dentry)->d_name), \
+                                     initxattrs, dentry)
+#elif defined HAVE_SECURITY_IINITSEC_QSTR
+# define ll_security_inode_init_security(inode, dir, name, value, len, \
+                                        initxattrs, dentry)           \
+        security_inode_init_security(inode, dir, &((dentry)->d_name), \
+                                     name, value, len)
+#else /* !HAVE_SECURITY_IINITSEC_CALLBACK && !HAVE_SECURITY_IINITSEC_QSTR */
+# define ll_security_inode_init_security(inode, dir, name, value, len, \
+                                        initxattrs, dentry)           \
+        security_inode_init_security(inode, dir, name, value, len)
+#endif
+
 #endif /* _LUSTRE_COMPAT_H */