#include <lustre_req_layout.h>
#include <lustre_sec.h>
#include <lustre_idmap.h>
-#include <lustre_eacl.h>
#include <lustre_quota.h>
#include <lustre_linkea.h>
#include <lustre_lmv.h>
mdt_skip_lfsck:1,
mdt_readonly:1,
/* dir restripe migrate dirent only */
- mdt_dir_restripe_nsonly:1;
+ mdt_dir_restripe_nsonly:1,
+ /* subdirectory mount of remote dir */
+ mdt_enable_remote_subdir_mount:1;
/* user with gid can create remote/striped
* dir, and set default dir stripe */
}
struct cdt_req_progress {
- struct mutex crp_lock; /**< protect tree */
- struct interval_node *crp_root; /**< tree to track extent
+ spinlock_t crp_lock; /**< protect tree */
+ struct interval_tree_root crp_root; /**< tree to track extent
* moved */
- struct interval_node **crp_node; /**< buffer for tree nodes
- * vector of fixed size
- * vectors */
- int crp_cnt; /**< # of used nodes */
- int crp_max; /**< # of allocated nodes */
+ __u64 crp_total;
};
struct cdt_agent_req {
void mdt_cdt_free_request(struct cdt_agent_req *car);
int mdt_cdt_add_request(struct coordinator *cdt, struct cdt_agent_req *new_car);
struct cdt_agent_req *mdt_cdt_find_request(struct coordinator *cdt, u64 cookie);
-void mdt_cdt_get_work_done(struct cdt_agent_req *car, __u64 *done_sz);
void mdt_cdt_get_request(struct cdt_agent_req *car);
void mdt_cdt_put_request(struct cdt_agent_req *car);
struct cdt_agent_req *mdt_cdt_update_request(struct coordinator *cdt,