bool vui_ra_valid;
};
-/**
- * True, if \a io is a normal io, False for other splice_{read,write}.
- * must be impementated in arch specific code.
- */
-int cl_is_normalio(const struct lu_env *env, const struct cl_io *io);
-
extern struct lu_context_key ccc_key;
extern struct lu_context_key vvp_session_key;
extern struct kmem_cache *vvp_lock_kmem;
extern struct kmem_cache *vvp_object_kmem;
+extern struct kmem_cache *vvp_req_kmem;
struct ccc_thread_info {
struct cl_lock cti_lock;
struct cl_lock_slice vlk_cl;
};
-struct ccc_req {
- struct cl_req_slice crq_cl;
+struct vvp_req {
+ struct cl_req_slice vrq_cl;
};
void *ccc_key_init(const struct lu_context *ctx, struct lu_context_key *key);
void ccc_key_fini(const struct lu_context *ctx, struct lu_context_key *key,
void *data);
-int ccc_req_init(const struct lu_env *env, struct cl_device *dev,
- struct cl_req *req);
void ccc_umount(const struct lu_env *env, struct cl_device *dev);
int ccc_global_init(struct lu_device_type *device_type);
void ccc_global_fini(struct lu_device_type *device_type);
-int vvp_io_one_lock_index(const struct lu_env *env, struct cl_io *io,
- __u32 enqflags, enum cl_lock_mode mode,
- pgoff_t start, pgoff_t end);
-int vvp_io_one_lock(const struct lu_env *env, struct cl_io *io,
- __u32 enqflags, enum cl_lock_mode mode,
- loff_t start, loff_t end);
-void vvp_io_end(const struct lu_env *env, const struct cl_io_slice *ios);
-void vvp_io_advance(const struct lu_env *env, const struct cl_io_slice *ios,
- size_t nob);
-void vvp_io_update_iov(const struct lu_env *env, struct vvp_io *cio,
- struct cl_io *io);
-int ccc_prep_size(const struct lu_env *env, struct cl_object *obj,
- struct cl_io *io, loff_t start, size_t count, int *exceed);
-void ccc_req_completion(const struct lu_env *env,
- const struct cl_req_slice *slice, int ioret);
-void ccc_req_attr_set(const struct lu_env *env,
- const struct cl_req_slice *slice,
- const struct cl_object *obj,
- struct cl_req_attr *oa, obd_valid flags);
-
static inline struct lu_device *vvp2lu_dev(struct vvp_device *vdv)
{
return &vdv->vdv_cl.cd_lu_dev;
return container_of(slice, struct vvp_lock, vlk_cl);
}
-struct vvp_io *cl2vvp_io(const struct lu_env *env,
- const struct cl_io_slice *slice);
-struct ccc_req *cl2ccc_req(const struct cl_req_slice *slice);
-
int cl_setattr_ost(struct inode *inode, const struct iattr *attr,
struct obd_capa *capa);
int vvp_io_init(const struct lu_env *env, struct cl_object *obj,
struct cl_io *io);
+int vvp_io_write_commit(const struct lu_env *env, struct cl_io *io);
int vvp_lock_init(const struct lu_env *env, struct cl_object *obj,
struct cl_lock *lock, const struct cl_io *io);
int vvp_page_init(const struct lu_env *env, struct cl_object *obj,
struct cl_page *page, pgoff_t index);
+int vvp_req_init(const struct lu_env *env, struct cl_device *dev,
+ struct cl_req *req);
struct lu_object *vvp_object_alloc(const struct lu_env *env,
const struct lu_object_header *hdr,
struct lu_device *dev);