Whamcloud - gitweb
LU-8560 llite: handle is_compat_task() rename
[fs/lustre-release.git] / lustre / osd-ldiskfs / osd_internal.h
index 654884d..3f685a7 100644 (file)
@@ -148,6 +148,8 @@ struct osd_object {
 #ifdef CONFIG_LOCKDEP
         struct lockdep_map      oo_dep_map;
 #endif
+
+       struct list_head        oo_xattr_list;
 };
 
 struct osd_obj_seq {
@@ -436,7 +438,7 @@ struct osd_it_ea_dirent {
  * there  would be one ext3 readdir for every mdd readdir page.
  */
 
-#define OSD_IT_EA_BUFSIZE       (PAGE_CACHE_SIZE + PAGE_CACHE_SIZE/4)
+#define OSD_IT_EA_BUFSIZE       (PAGE_SIZE + PAGE_SIZE/4)
 
 /**
  * This is iterator's in-memory data structure in interoperability
@@ -488,7 +490,7 @@ struct osd_it_quota {
        struct list_head         oiq_list;
 };
 
-#define MAX_BLOCKS_PER_PAGE (PAGE_CACHE_SIZE / 512)
+#define MAX_BLOCKS_PER_PAGE (PAGE_SIZE / 512)
 
 struct osd_iobuf {
        wait_queue_head_t  dr_wait;
@@ -605,7 +607,9 @@ struct osd_thread_info {
 
        /* used by quota code */
        union {
-#ifdef HAVE_DQUOT_FS_DISK_QUOTA
+#if defined(HAVE_DQUOT_QC_DQBLK)
+               struct qc_dqblk         oti_qdq;
+#elif defined(HAVE_DQUOT_FS_DISK_QUOTA)
                struct fs_disk_quota    oti_fdq;
 #else
                struct if_dqblk         oti_dqblk;
@@ -782,7 +786,8 @@ static inline void i_gid_write(struct inode *inode, gid_t gid)
 # define osd_ldiskfs_append(handle, inode, nblock) \
                ldiskfs_append(handle, inode, nblock)
 # define osd_ldiskfs_find_entry(dir, name, de, inlined, lock) \
-               __ldiskfs_find_entry(dir, name, de, inlined, lock)
+               (__ldiskfs_find_entry(dir, name, de, inlined, lock) ?: \
+                ERR_PTR(-ENOENT))
 # define osd_journal_start(inode, type, nblocks) \
                ldiskfs_journal_start(inode, type, nblocks)
 # define osd_transaction_size(dev) \
@@ -807,7 +812,8 @@ static inline struct buffer_head *osd_ldiskfs_append(handle_t *handle,
 }
 
 # define osd_ldiskfs_find_entry(dir, name, de, inlined, lock) \
-               __ldiskfs_find_entry(dir, name, de, lock)
+               (__ldiskfs_find_entry(dir, name, de, lock) ?: \
+                ERR_PTR(-ENOENT))
 # define osd_journal_start(inode, type, nblocks) \
                ldiskfs_journal_start(inode, nblocks)
 # define osd_transaction_size(dev) \
@@ -1179,7 +1185,7 @@ int osd_acct_obj_lookup(struct osd_thread_info *info, struct osd_device *osd,
 static inline int is_32bit_api(void)
 {
 #ifdef CONFIG_COMPAT
-       return is_compat_task();
+       return in_compat_syscall();
 #else
        return (BITS_PER_LONG == 32);
 #endif
@@ -1204,6 +1210,30 @@ static inline unsigned long osd_remote_parent_ino(struct osd_device *dev)
        return dev->od_mdt_map->omm_remote_parent->d_inode->i_ino;
 }
 
+/**
+ * ext4_bread/ldiskfs_bread has either 5 or 4 parameters. The error
+ * return code has been removed and integrated into the pointer in the
+ * kernel 3.18.
+ */
+static inline struct buffer_head *__ldiskfs_bread(handle_t *handle,
+                                                 struct inode *inode,
+                                                 ldiskfs_lblk_t block,
+                                                 int create)
+{
+#ifdef HAVE_EXT4_BREAD_4ARGS
+       return ldiskfs_bread(handle, inode, block, create);
+#else
+       struct buffer_head *bh;
+       int error = 0;
+
+       bh = ldiskfs_bread(handle, inode, block, create, &error);
+       if (bh == NULL && error != 0)
+               bh = ERR_PTR(error);
+
+       return bh;
+#endif
+}
+
 void ldiskfs_inc_count(handle_t *handle, struct inode *inode);
 void ldiskfs_dec_count(handle_t *handle, struct inode *inode);