Whamcloud - gitweb
b=11564
[fs/lustre-release.git] / lustre / mgs / mgs_internal.h
1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=8:tabstop=8:
3  */
4
5 #ifndef _MGS_INTERNAL_H
6 #define _MGS_INTERNAL_H
7
8 #ifdef __KERNEL__
9 # include <linux/fs.h>
10 #endif
11 #include <libcfs/kp30.h>
12 #include <lustre/lustre_idl.h>
13 #include <lustre_lib.h>
14 #include <lustre_dlm.h>
15 #include <lustre_log.h>
16 #include <lustre_export.h>
17
18
19 /* in ms */
20 #define MGS_SERVICE_WATCHDOG_TIMEOUT (obd_timeout * 1000)
21
22 /* mgs_llog.c */
23 int class_dentry_readdir(struct obd_device *obd, struct dentry *dir,
24                          struct vfsmount *inmnt, 
25                          struct list_head *dentry_list);
26
27 #define INDEX_MAP_SIZE 8192     /* covers indicies to FFFF */
28 #define FSDB_LOG_EMPTY  0x0001  /* missing client log */
29 #define FSDB_OLDLOG14   0x0002  /* log starts in old (1.4) style */
30
31 struct fs_db {
32         char              fsdb_name[9];
33         struct list_head  fsdb_list;           /* list of databases */
34         struct semaphore  fsdb_sem;
35         void             *fsdb_ost_index_map;  /* bitmap of used indicies */
36         void             *fsdb_mdt_index_map;  /* bitmap of used indicies */
37         /* COMPAT_146 these items must be recorded out of the old client log */
38         char             *fsdb_clilov;         /* COMPAT_146 client lov name */
39         char             *fsdb_mdtlov;         /* COMPAT_146 mds lov name */
40         char             *fsdb_mdc;            /* COMPAT_146 mdc name */
41         /* end COMPAT_146 */
42         __u32             fsdb_flags;
43         __u32             fsdb_gen;
44 };
45
46 int mgs_init_fsdb_list(struct obd_device *obd);
47 int mgs_cleanup_fsdb_list(struct obd_device *obd);
48 int mgs_check_index(struct obd_device *obd, struct mgs_target_info *mti);
49 int mgs_check_failnid(struct obd_device *obd, struct mgs_target_info *mti);
50 int mgs_write_log_target(struct obd_device *obd, struct mgs_target_info *mti);
51 int mgs_upgrade_sv_14(struct obd_device *obd, struct mgs_target_info *mti);
52 int mgs_erase_log(struct obd_device *obd, char *name);
53 int mgs_erase_logs(struct obd_device *obd, char *fsname);
54 int mgs_setparam(struct obd_device *obd, struct lustre_cfg *lcfg, char *fsname);
55
56 /* mgs_fs.c */
57 int mgs_fs_setup(struct obd_device *obd, struct vfsmount *mnt);
58 int mgs_fs_cleanup(struct obd_device *obddev);
59
60 #define strsuf(buf, suffix) (strcmp((buf)+strlen(buf)-strlen(suffix), (suffix)))
61
62 #ifdef LPROCFS
63 int lproc_mgs_setup(struct obd_device *dev);
64 int lproc_mgs_add_live(struct obd_device *obd, struct fs_db *fsdb);
65 int lproc_mgs_del_live(struct obd_device *obd, struct fs_db *fsdb);
66 #else
67 static inline int lproc_mgs_setup(struct obd_device *dev) 
68 {return 0;}
69 static int lproc_mgs_add_live(struct obd_device *obd, struct fs_db *fsdb)
70 {return 0;}
71 static int lproc_mgs_del_live(struct obd_device *obd, struct fs_db *fsdb)
72 {return 0;}
73 #endif
74
75
76 #endif /* _MGS_INTERNAL_H */
77