Whamcloud - gitweb
Land b_hd_capa onto HEAD (20050809_1942)
[fs/lustre-release.git] / lustre / mds / mds_internal.h
index fd5eaec..2a34fbc 100644 (file)
@@ -23,6 +23,9 @@ struct mds_filter_data {
 #define MDS_EXPECT_SPLIT        1
 #define MDS_NO_SPLITTABLE       2
 
+/* 1048576 should be enough for one client pool */
+#define MDS_FIDEXT_SIZE (1 << 20)
+
 static inline struct mds_obd *mds_req2mds(struct ptlrpc_request *req)
 {
         return &req->rq_export->exp_obd->u.mds;
@@ -178,11 +181,10 @@ void mds_dt_update_objids(struct obd_device *obd, obd_id *ids);
 void mds_dt_save_objids(struct obd_device *obd, obd_id *ids);
 
 /* mds/mds_open.c */
-int
-mds_create_object(struct obd_device *obd, struct ptlrpc_request *req,
-                  int offset, struct mds_update_record *rec,
-                  struct dentry *dchild, void **handle,
-                  obd_id *ids);
+int mds_create_object(struct obd_device *obd, struct ptlrpc_request *req,
+                      int offset, struct mds_update_record *rec,
+                      struct dentry *dchild, void **handle,
+                      obd_id *ids);
 int mds_destroy_object(struct obd_device *obd,
                        struct inode *inode, int async);
 int mds_query_write_access(struct inode *inode);
@@ -194,10 +196,34 @@ int mds_mfd_close(struct ptlrpc_request *req, int offset,
                   int unlink_orphan);
 int mds_close(struct ptlrpc_request *req, int offset);
 int mds_done_writing(struct ptlrpc_request *req, int offset);
+struct mds_file_data *mds_handle2mfd(struct lustre_handle *handle);
 int mds_validate_size(struct obd_device *obd, struct inode *inode,
                       struct mds_body *body, struct iattr *iattr);
+int accmode(int flags);
 
 /* mds/mds_fs.c */
+int mds_fidmap_init(struct obd_device *obd, int size);
+int mds_fidmap_cleanup(struct obd_device *obd);
+
+struct fidmap_entry *
+mds_fidmap_find(struct obd_device *obd, __u64 fid);
+
+struct lustre_id *
+mds_fidmap_lookup(struct obd_device *obd,
+                  struct lustre_id *id);
+
+void mds_fidmap_insert(struct obd_device *obd,
+                       struct fidmap_entry *entry);
+
+void mds_fidmap_remove(struct obd_device *obd,
+                       struct fidmap_entry *entry);
+
+int mds_fidmap_add(struct obd_device *obd,
+                   struct lustre_id *id);
+
+void mds_fidmap_del(struct obd_device *obd,
+                    struct lustre_id *id);
+
 int mds_client_add(struct obd_device *obd, struct mds_obd *mds,
                    struct mds_export_data *med, int cl_off);
 int mds_client_free(struct obd_export *exp, int clear_client);
@@ -240,12 +266,6 @@ int mds_read_inode_sid(struct obd_device *, struct inode *,
 int mds_read_inode_pid(struct obd_device *, struct inode *,
                        struct lustre_id *);
 
-int mds_update_inode_mid(struct obd_device *, struct inode *,
-                         void *, struct lustre_id *);
-
-int mds_read_inode_mid(struct obd_device *, struct inode *,
-                       struct lustre_id *);
-
 void mds_commit_last_fid_cb(struct obd_device *, __u64 fid,
                             void *data, int error);
 
@@ -290,7 +310,8 @@ int mds_md_disconnect(struct obd_device *obd, int flags);
 int mds_try_to_split_dir(struct obd_device *, struct dentry *, struct mea **,
                          int, int);
 int mds_md_get_attr(struct obd_device *, struct inode *, struct mea **, int *);
-int mds_choose_mdsnum(struct obd_device *, const char *, int, int, struct ptlrpc_peer *, struct inode *);
+int mds_choose_mdsnum(struct obd_device *, const char *, int, int,
+                      struct ptlrpc_peer *, struct inode *, int);
 int mds_md_postsetup(struct obd_device *);
 int mds_splitting_expected(struct obd_device *, struct dentry *);
 int mds_lock_slave_objs(struct obd_device *, struct dentry *,
@@ -324,4 +345,16 @@ int mds_init_rmtacl_upcall_cache(void);
 void mds_cleanup_rmtacl_upcall_cache(void);
 void mds_do_remote_acl_upcall(struct rmtacl_upcall_desc *desc);
 
+/* mds_capa.c */
+extern struct timer_list mds_eck_timer;
+
+int mds_read_capa_key(struct obd_device *obd, struct file *file);
+void mds_capa_keys_cleanup(struct obd_device *obd);
+void mds_capa_key_timer_callback(unsigned long data);
+int mds_capa_key_start_thread(void);
+void mds_capa_key_stop_thread(void);
+int mds_pack_capa(struct obd_device *obd, struct mds_body *req_body,
+                  struct lustre_capa *req_capa, struct lustre_msg *repmsg,
+                  int *offset, struct mds_body *body);
+
 #endif /* _MDS_INTERNAL_H */