+#define ll_call_writepage(inode, page) \
+ (inode)->i_mapping->a_ops->writepage(page, NULL)
+#define ll_invalidate_inode_pages(inode) \
+ invalidate_inode_pages((inode)->i_mapping)
+#define ll_truncate_complete_page(page) \
+ truncate_complete_page(page->mapping, page)
+
+#define ll_vfs_create(a,b,c,d) vfs_create(a,b,c,d)
+
+#define ll_dev_t dev_t
+#define kdev_t dev_t
+#define to_kdev_t(dev) (dev)
+#define kdev_t_to_nr(dev) (dev)
+#define val_to_kdev(dev) (dev)
+#define ILOOKUP(sb, ino, test, data) ilookup5(sb, ino, test, data);
+
+#include <linux/writeback.h>
+
+static inline void lustre_daemonize_helper(void)
+{
+ LASSERT(current->signal != NULL);
+ current->session = 1;
+ if (current->group_leader)
+ current->group_leader->__pgrp = 1;
+ else
+ CERROR("we aren't group leader\n");
+ current->tty = NULL;
+}
+
+static inline int cleanup_group_info(void)
+{
+ struct group_info *ginfo;
+
+ ginfo = groups_alloc(2);
+ if (!ginfo)
+ return -ENOMEM;
+
+ ginfo->ngroups = 0;
+ set_current_groups(ginfo);
+ put_group_info(ginfo);
+
+ return 0;
+}
+
+#define smp_num_cpus NR_CPUS
+
+#ifndef conditional_schedule
+#define conditional_schedule() cond_resched()
+#endif
+
+#include <linux/proc_fs.h>