Writing new Xlator and manipulate data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux