[Sheepdog] [PATCH 3/3] sheep: use do_process_work() in io request
Christoph Hellwig
hch at infradead.org
Mon Nov 21 11:37:01 CET 2011
This is a very nice cleanup for the I/O code.
A few comments below:
> @@ -234,6 +234,11 @@ int get_cluster_copies(uint8_t *copies);
> int set_cluster_flags(uint16_t flags);
> int get_cluster_flags(uint16_t *flags);
>
> +extern int store_create_and_write_obj(const struct sd_req *req, struct sd_rsp *rsp, void *data);
> +extern int store_write_obj(const struct sd_req *req, struct sd_rsp *rsp, void *data);
> +extern int store_read_obj(const struct sd_req *req, struct sd_rsp *rsp, void *data);
> +extern int store_remove_obj(const struct sd_req *req, struct sd_rsp *rsp, void *data);
Any reason you use the extern keywords while the other functions don't?
Also it seems like sheepdog code generally avoids lines longer than 80
characters, at least I would love to keep it that way (but I'm not the
maintainer, so don't put to much weight into my words).
> -static int store_remove_obj(struct request *req, uint32_t epoch)
> +int store_remove_obj(const struct sd_req *req, struct sd_rsp *rsp, void *data)
> {
> - struct sd_obj_req *hdr = (struct sd_obj_req *)&req->rq;
> + struct sd_obj_req *hdr = (struct sd_obj_req *)req;
No really a comment to this patch, but rather to the protocol headers
in general: Any reason why the sd_obj_req defintion (and others like
it) can't simply include the sd_req in their defintion? In that case
we could actually use type-safe container_of constructs for things like
this one.
More information about the sheepdog
mailing list