コード例 #1
0
static int slp_io_init(const struct lu_env *env, struct cl_object *obj,
                       struct cl_io *io)
{
        struct ccc_io      *vio   = ccc_env_io(env);
        int result = 0;

        CLOBINVRNT(env, obj, ccc_object_invariant(obj));

        cl_io_slice_add(io, &vio->cui_cl, obj, &ccc_io_ops);
        if (io->ci_type == CIT_READ || io->ci_type == CIT_WRITE) {
                size_t count;

                count = io->u.ci_rw.crw_count;
                /* "If nbyte is 0, read() will return 0 and have no other
                 *  results."  -- Single Unix Spec */
                if (count == 0)
                        result = 1;
                else {
                        vio->cui_tot_count = count;
                        vio->cui_tot_nrsegs = 0;
                }

        }
        return result;
}
コード例 #2
0
ファイル: osc_io.c プロジェクト: hongliang5316/lustre
int osc_io_init(const struct lu_env *env,
                struct cl_object *obj, struct cl_io *io)
{
        struct osc_io *oio = osc_env_io(env);

        CL_IO_SLICE_CLEAN(oio, oi_cl);
        cl_io_slice_add(io, &oio->oi_cl, obj, &osc_io_ops);
        return 0;
}