#error sorry, lustre requires at least 2.5.69
#endif
-#include <linux/portals_compat25.h>
+#include <libcfs/linux/portals_compat25.h>
/*
* groups_info related staff
} 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)
}
#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
/* 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)
page->private = 0; \
} while(0)
-#define smp_num_cpus NR_CPUS
+#ifndef smp_num_cpus
+#define smp_num_cpus num_online_cpus()
+#endif
#define kiobuf bio
#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)
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 */
#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
#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)