Whamcloud - gitweb
- CROW-related fixes from b_hd_mdref
[fs/lustre-release.git] / lustre / include / linux / lustre_compat25.h
index 711f282..a71a848 100644 (file)
@@ -63,7 +63,6 @@ int groups_search(struct group_info *ginfo, gid_t grp);
         } while (0)
 
 #define groups_sort(gi) do {} while (0)
-
 #define GROUP_AT(gi, i) ((gi)->small_block[(i)])
 
 static inline int cleanup_group_info(void)
@@ -96,9 +95,27 @@ static inline int cleanup_group_info(void)
 }
 #endif /* end of groups_info stuff */
 
+/*
+ * this define is from the same namespace as other lookup flags in linux, will
+ * be gone when COBD medium switching will be done more correct manner.
+ * Currently this is dirty hack and this flag is needed to let MDC layer know
+ * that it does not have to check if requested id is the same as receviced from
+ * MDS in mdc_intent_lock() --umka
+ */
+#define LOOKUP_COBD 4096
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
 
+/* New (actually old) intent naming */
+#define lookup_intent open_intent
+
+/* And internals */
+#define it_flags flags
+#define it_op op
+#define it_magic magic
+#define it_op_release op_release
+#define it_create_mode create_mode
+
 /*
  * OBD need working random driver, thus all our
  * initialization routines must be called after device
@@ -111,7 +128,6 @@ static inline int cleanup_group_info(void)
 
 /* XXX our code should be using the 2.6 calls, not the other way around */
 #define TryLockPage(page)                TestSetPageLocked(page)
-#define filemap_fdatasync(mapping)       filemap_fdatawrite(mapping)
 #define Page_Uptodate(page)              PageUptodate(page)
 
 #define KDEVT_INIT(val)                 (val)
@@ -164,6 +180,10 @@ static inline void lustre_daemonize_helper(void)
                 page->private = 0; \
         } while(0)
 
+#ifndef smp_num_cpus
+#define smp_num_cpus    num_online_cpus()
+#endif
+
 #define kiobuf bio
 
 #include <linux/proc_fs.h>
@@ -219,6 +239,7 @@ typedef long sector_t;
 #define ll_pgcache_unlock(mapping)      spin_unlock(&pagecache_lock)
 #define ll_call_writepage(inode, page)  \
                                (inode)->i_mapping->a_ops->writepage(page)
+#define filemap_fdatawrite(mapping)      filemap_fdatasync(mapping)
 #define ll_invalidate_inode_pages(inode) invalidate_inode_pages(inode)
 #define ll_truncate_complete_page(page) truncate_complete_page(page)
 
@@ -247,7 +268,11 @@ static inline void cond_resched(void)
 
 static inline int mapping_mapped(struct address_space *mapping)
 {
-        return mapping->i_mmap_shared ? 1 : 0;
+        if (mapping->i_mmap_shared)
+                return 1;
+        if (mapping->i_mmap)
+                return 1;
+        return 0;
 }
 
 /* to find proc_dir_entry from inode. 2.6 has native one -bzzz */
@@ -258,6 +283,9 @@ static inline int mapping_mapped(struct address_space *mapping)
 #define __set_page_ll_data(page, llap) page->private = (unsigned long)llap
 #define __clear_page_ll_data(page) page->private = 0
 #define PageWriteback(page) 0
+#define set_page_writeback(page) do {} while (0)
+#define end_page_writeback(page) do {} while (0)
+  
 #define end_page_writeback(page)
 
 #ifdef ZAP_PAGE_RANGE_VMA
@@ -317,6 +345,12 @@ static inline int mapping_has_pages(struct address_space *mapping)
 #define ll_vfs_symlink(dir, dentry, path, mode) vfs_symlink(dir, dentry, path, mode)
 #endif
 
+#ifndef container_of
+#define container_of(ptr, type, member) ({                      \
+                const typeof( ((type *)0)->member ) *__mptr = (ptr); \
+                (type *)( (char *)__mptr - offsetof(type,member) );})
+#endif
+
 #ifdef HAVE_I_ALLOC_SEM
 #define UP_WRITE_I_ALLOC_SEM(i) do { up_write(&(i)->i_alloc_sem); } while (0)
 #define DOWN_WRITE_I_ALLOC_SEM(i) do { down_write(&(i)->i_alloc_sem); } while(0)