Whamcloud - gitweb
Branch HEAD
[fs/lustre-release.git] / lustre / include / linux / lvfs_linux.h
index 71fc431..c7b0f7d 100644 (file)
@@ -1,18 +1,18 @@
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
- */ 
+ */
 #ifndef __LVFS_LINUX_H__
 #define __LVFS_LINUX_H__
 
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/fs.h>
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
+#include <linux/namei.h>
+#endif
 #include <linux/sched.h>
-#include <linux/jbd.h>
 
-#include <linux/lvfs.h>
-/* we have made EXT3_IOC_SETFLAGS a Lustre constant */
-#include <linux/ext3_fs.h>
+#include <lvfs.h>
 
 #define l_file file
 #define l_dentry dentry
@@ -20,8 +20,8 @@
 
 #define l_filp_open filp_open
 
-struct obd_run_ctxt;
-struct l_file *l_dentry_open(struct obd_run_ctxt *, struct l_dentry *,
+struct lvfs_run_ctxt;
+struct l_file *l_dentry_open(struct lvfs_run_ctxt *, struct l_dentry *,
                              int flags);
 
 struct l_linux_dirent {
@@ -35,4 +35,35 @@ struct l_readdir_callback {
         struct list_head      *lrc_list;
 };
 
-#endif
+#define LVFS_DENTRY_PARAM_MAGIC         20070216UL
+struct lvfs_dentry_params
+{
+        unsigned long    ldp_inum;
+        void            *ldp_ptr;
+        __u32            ldp_magic;
+};
+#define LVFS_DENTRY_PARAMS_INIT         { .ldp_magic = LVFS_DENTRY_PARAM_MAGIC }
+
+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
+#  define BDEVNAME_DECLARE_STORAGE(foo) char foo[BDEVNAME_SIZE]
+#  define ll_bdevname(SB, STORAGE) __bdevname(kdev_t_to_nr(SB->s_dev), STORAGE)
+#  define lvfs_sbdev(SB)       ((SB)->s_bdev)
+#  define lvfs_sbdev_type      struct block_device *
+   int fsync_bdev(struct block_device *);
+#  define lvfs_sbdev_sync      fsync_bdev
+# else
+#  define BDEVNAME_DECLARE_STORAGE(foo) char __unused_##foo
+#  define ll_bdevname(SB,STORAGE) ((void)__unused_##STORAGE,bdevname(lvfs_sbdev(SB)))
+#  define lvfs_sbdev(SB)       (kdev_t_to_nr((SB)->s_dev))
+#  define lvfs_sbdev_type      kdev_t
+#  define lvfs_sbdev_sync      fsync_dev
+# endif
+
+/* Instead of calling within lvfs (a layering violation) */
+#define lvfs_set_rdonly(obd, sb) \
+        __lvfs_set_rdonly(lvfs_sbdev(sb), fsfilt_journal_sbdev(obd, sb))
+
+void __lvfs_set_rdonly(lvfs_sbdev_type dev, lvfs_sbdev_type jdev);
+int lvfs_check_rdonly(lvfs_sbdev_type dev);
+
+#endif /*  __LVFS_LINUX_H__ */