예제 #1
0
/*
 * No permission check is needed.
 */
static int mdd_init_capa_ctxt(const struct lu_env *env, struct md_device *m,
                              int mode, unsigned long timeout, __u32 alg,
                              struct lustre_capa_key *keys)
{
        struct mdd_device *mdd = lu2mdd_dev(&m->md_lu_dev);
        int rc;
        ENTRY;

        /* need barrier for mds_capa_keys access. */

        rc = mdd_child_ops(mdd)->dt_init_capa_ctxt(env, mdd->mdd_child, mode,
                                                   timeout, alg, keys);
        RETURN(rc);
}
예제 #2
0
/*
 * No permission check is needed.
 */
static int mdd_statfs(const struct lu_env *env, struct md_device *m,
		      struct obd_statfs *sfs)
{
	struct mdd_device *mdd = lu2mdd_dev(&m->md_lu_dev);
	int rc;

	ENTRY;

	rc = mdd_child_ops(mdd)->dt_statfs(env, mdd->mdd_child, sfs);

	sfs->os_namelen = min_t(__u32, sfs->os_namelen, NAME_MAX);

	RETURN(rc);
}
예제 #3
0
파일: mdd_trans.c 프로젝트: LLNL/lustre
int mdd_trans_start(const struct lu_env *env, struct mdd_device *mdd,
                    struct thandle *th)
{
        return mdd_child_ops(mdd)->dt_trans_start(env, mdd->mdd_child, th);
}
예제 #4
0
파일: mdd_trans.c 프로젝트: LLNL/lustre
void mdd_trans_stop(const struct lu_env *env, struct mdd_device *mdd,
                    int result, struct thandle *handle)
{
        handle->th_result = result;
        mdd_child_ops(mdd)->dt_trans_stop(env, handle);
}
예제 #5
0
파일: mdd_trans.c 프로젝트: LLNL/lustre
struct thandle *mdd_trans_create(const struct lu_env *env,
                                 struct mdd_device *mdd)
{
        return mdd_child_ops(mdd)->dt_trans_create(env, mdd->mdd_child);
}