Hello Gluster-Devels, actually I am writing my first xlator according to this tutorial:
https://github.com/gluster/glusterfs/blob/master/doc/developer-guide/translator-development.md So I put the rot-13 Xlator and wrote my own stuff. My idea is to change the iovec-content and put a new content in it. My readv_cbk look like this: int32_t stub_iovec (xlator_t *this, struct iovec *vector, struct iobref *iobref, struct iatt *stbuf, int count) { int i; for (i = 0; i < count; i++) { struct iobuf *iobuf = NULL; iobuf = iobuf_get(this->ctx->iobuf_pool); iobuf_unref(iobref->iobrefs[i]); iobref = iobref_new(); iobref_add(iobref, iobuf); char temp[] = "I am the manipulated content!!!\n"; char *buf0 = "I am the manipulated content!!!\n"; vector[i].iov_base = buf0; vector[i].iov_len = sizeof(temp); stbuf->ia_size = sizeof(temp); return stbuf->ia_size; } } int32_t stub_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno, struct iovec *vector, int32_t count, struct iatt *stbuf, struct iobref *iobref, dict_t *xdata) { gf_log (this->name, GF_LOG_DEBUG, "Führe stub_readv_cbk aus!!!"); int32_t new_op_ret = stub_iovec(this, vector, iobref, stbuf, count); STACK_UNWIND_STRICT (readv, frame, new_op_ret, op_errno, vector, count, stbuf, iobref, xdata); return 0; } Ist not really working at all. If I have an original content like a simple „orig“ in a test.txt and change it to „manipulate“, the command „cat /mnt/gluster/test.txt“ show me an „mani“. The size if the content did not changed. Any idea about hat? Regards David |
_______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://lists.gluster.org/mailman/listinfo/gluster-devel