*/
struct fs_db;
+/**
+ * maintain fs client nodes of mgs.
+ */
+struct mgs_fsc {
+ struct fs_db *mfc_fsdb;
+ /**
+ * Where the fs client comes from.
+ */
+ struct obd_export *mfc_export;
+ /**
+ * list of fs clients from the same export,
+ * protected by mgs_export_data->med_lock
+ */
+ cfs_list_t mfc_export_list;
+ /**
+ * list of fs clients in the same fsdb, protected by fsdb->fsdb_sem
+ */
+ cfs_list_t mfc_fsdb_list;
+ unsigned mfc_ir_capable:1;
+};
+
struct mgs_nidtbl {
struct fs_db *mn_fsdb;
struct file *mn_version_file;
struct sptlrpc_rule_set fsdb_srpc_gen;
struct mgs_tgt_srpc_conf *fsdb_srpc_tgt;
+ /* list of fs clients, mgs_fsc. protected by mgs_sem */
+ cfs_list_t fsdb_clients;
+ int fsdb_nonir_clients;
int fsdb_ir_state;
/* Target NIDs Table */
unsigned long count, void *data);
int lprocfs_rd_ir_timeout(char *page, char **start, off_t off, int count,
int *eof, void *data);
+void mgs_fsc_cleanup(struct obd_export *exp);
+void mgs_fsc_cleanup_by_fsdb(struct fs_db *fsdb);
+int mgs_fsc_attach(struct obd_export *exp, char *fsname);
/* mgs_fs.c */
int mgs_export_stats_init(struct obd_device *obd, struct obd_export *exp,