#define DENTRY_VALID(dentry) \
((dentry)->d_inode || ((dentry)->d_flags & DCACHE_CROSS_REF))
+#define MDS_NO_SPLIT_EXPECTED 0
+#define MDS_EXPECT_SPLIT 1
+#define MDS_NO_SPLITTABLE 2
+
static inline struct mds_obd *mds_req2mds(struct ptlrpc_request *req)
{
return &req->rq_export->exp_obd->u.mds;
char *name, int namelen,
struct lustre_handle *child_lockh,
struct dentry **dchildp, int child_mode,
- __u64 child_lockpart);
+ __u64 child_lockpart, void* clone_info);
int mds_lock_new_child(struct obd_device *obd, struct inode *inode,
struct lustre_handle *child_lockh);
int lock);
int mds_pack_md(struct obd_device *, struct lustre_msg *, int offset,
struct mds_body *, struct inode *, int lock);
+void mds_pack_dentry2fid(struct ll_fid *, struct dentry *);
+void mds_pack_dentry2body(struct mds_body *b, struct dentry *dentry);
void mds_pack_inode2fid(struct obd_device *, struct ll_fid *, struct inode *);
void mds_pack_inode2body(struct obd_device *, struct mds_body *, struct inode *);
#endif
int mds_lmv_connect(struct obd_device *obd, char * lov_name);
int mds_lmv_disconnect(struct obd_device *obd, int flags);
int mds_try_to_split_dir(struct obd_device *, struct dentry *, struct mea **,
- int);
+ int, int);
int mds_get_lmv_attr(struct obd_device *, struct inode *, struct mea **, int *);
int mds_choose_mdsnum(struct obd_device *, const char *, int, int);
int mds_lmv_postsetup(struct obd_device *);