<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/api/src, branch v3.7.3</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>syncop: Include iatt to 'syncop_link' args</title>
<updated>2015-07-15T15:08:30+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2015-07-10T05:53:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=09da0f0870dbb79d6e6dfddbfa452152c510d467'/>
<id>09da0f0870dbb79d6e6dfddbfa452152c510d467</id>
<content type='text'>
Include iatt to 'syncop_link' args to fetch proper attributes of
the newly linked inode.

This is backport of the below fix -
http://review.gluster.org/11611

Change-Id: If6b92961bd7a89add3791ed3a9b494087348b492
BUG: 1243408
Reviewed-on: http://review.gluster.org/11611
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11677
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Include iatt to 'syncop_link' args to fetch proper attributes of
the newly linked inode.

This is backport of the below fix -
http://review.gluster.org/11611

Change-Id: If6b92961bd7a89add3791ed3a9b494087348b492
BUG: 1243408
Reviewed-on: http://review.gluster.org/11611
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11677
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: Update loc-&gt;inode accordingly in 'glfs_loc_link'</title>
<updated>2015-07-10T10:06:48+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2015-07-08T06:38:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=decf3c9fe0d4f1f636e337aa313694251341b685'/>
<id>decf3c9fe0d4f1f636e337aa313694251341b685</id>
<content type='text'>
In case if the inode already exits in the cache, inode_link
returns the pointer to the exiting one instead of using loc-&gt;inode.
This will result in issues if that invalid inodei(loc-&gt;inode) is referenced
further. Fixed the same.

This is backport of the below fix -
http://review.gluster.org/#/c/11572/

BUG: 1241666
Change-Id: I1a89932397f7d2b70d619eeaf862c0a5d7f6b91c
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11572
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11606
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case if the inode already exits in the cache, inode_link
returns the pointer to the exiting one instead of using loc-&gt;inode.
This will result in issues if that invalid inodei(loc-&gt;inode) is referenced
further. Fixed the same.

This is backport of the below fix -
http://review.gluster.org/#/c/11572/

BUG: 1241666
Change-Id: I1a89932397f7d2b70d619eeaf862c0a5d7f6b91c
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11572
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11606
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libgfapi: send explicit lookups on inodes linked in readdirp</title>
<updated>2015-07-06T15:14:02+00:00</updated>
<author>
<name>Raghavendra Bhat</name>
<email>raghavendra@redhat.com</email>
</author>
<published>2015-06-12T09:42:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=69c434432853e2ba1ee53296f05c6a54ab300d02'/>
<id>69c434432853e2ba1ee53296f05c6a54ab300d02</id>
<content type='text'>
          Backport of http://review.gluster.org/11236

If the inode is linked via readdirp, then the consuners of gfapi which are using
handles (got either in lookup or readdirp) might not send an explicit lookup on
that object again (ex: NFS, samba, USS). If there is a replicate volume where
the replicas of the object are not in sync, then readdirp followed by fops might
lead data being served from the subvolume which is not in sync with latest
data. And since lookup is needed to trigger self-heal on that object the
consumers might keep getting wrong data until an explicit lookup is not done.

Fuse handles this situation by sending an explicit lookup by itself (fuse
xlator) on those inodes which are linked via readdirp, whenever a fop comes on
that inode.

The same procedure is done in gfapi as well to address this situation.

Thanks to shyam(srangana@redhat.com) for valuable inputs

Change-Id: I4230fae8e0b01a95c056282b08ed30832d4804a7
BUG: 1240190
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11545
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
          Backport of http://review.gluster.org/11236

If the inode is linked via readdirp, then the consuners of gfapi which are using
handles (got either in lookup or readdirp) might not send an explicit lookup on
that object again (ex: NFS, samba, USS). If there is a replicate volume where
the replicas of the object are not in sync, then readdirp followed by fops might
lead data being served from the subvolume which is not in sync with latest
data. And since lookup is needed to trigger self-heal on that object the
consumers might keep getting wrong data until an explicit lookup is not done.

Fuse handles this situation by sending an explicit lookup by itself (fuse
xlator) on those inodes which are linked via readdirp, whenever a fop comes on
that inode.

The same procedure is done in gfapi as well to address this situation.

Thanks to shyam(srangana@redhat.com) for valuable inputs

Change-Id: I4230fae8e0b01a95c056282b08ed30832d4804a7
BUG: 1240190
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11545
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi : symlink resolution for glfs_object</title>
<updated>2015-06-28T07:53:27+00:00</updated>
<author>
<name>Jiffin Tony Thottan</name>
<email>jthottan@redhat.com</email>
</author>
<published>2015-06-25T09:34:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=49c4b7f750e94aee22d892a7171ed2ad291559e3'/>
<id>49c4b7f750e94aee22d892a7171ed2ad291559e3</id>
<content type='text'>
Generally posix expects symlink should be resolved, before performing an
acl related operation. This patch introduces a new api glfs_h_resolve_symlink()
which will do the same.

backport of http://review.gluster.org/#/c/11410/1

&gt;Change-Id: Ieee645154455a732edfb2c28834021bab4248810
&gt;BUG: 1209735
&gt;Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: I13a83f37a9e59418fd8eb4bf2d44f828515beabf
BUG: 1236269
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11438
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generally posix expects symlink should be resolved, before performing an
acl related operation. This patch introduces a new api glfs_h_resolve_symlink()
which will do the same.

backport of http://review.gluster.org/#/c/11410/1

&gt;Change-Id: Ieee645154455a732edfb2c28834021bab4248810
&gt;BUG: 1209735
&gt;Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: I13a83f37a9e59418fd8eb4bf2d44f828515beabf
BUG: 1236269
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11438
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libgfapi: introduce bit flags for pthread mutex and cond variables</title>
<updated>2015-06-22T09:36:24+00:00</updated>
<author>
<name>Humble Devassy Chirammal</name>
<email>hchiramm@redhat.com</email>
</author>
<published>2015-05-18T12:07:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=5afaa6e64f46a32f2b86512236677066adc36510'/>
<id>5afaa6e64f46a32f2b86512236677066adc36510</id>
<content type='text'>
At present stage, the initialization and destroy of conditional
and mutex variables of glfs struct happen in different places and
there is no uniform way of destroying these variables incase
there is a failure when initializing these. The fs mutex and
conditional variables are getting destroyed from glfs_free_from_ctx().
However this destroy is not done by a conditional check inside destroy
function. By introducing bit flags in glfs object, we can make use of the
same (if there is a failure in initialization) in glfs_fini()
which is evolving as one and only function to free fs and ctx resources.
This patch introduce the flags field and set the flags according
to the initialization flow of the mutex and conditional variables
of struct glfs members. Without this patch we are compelled to use
the goto lables and other hacks in init functions to make sure
the resources are freed if there is an error path.

Change-Id: I86e2719fb7ce437419a05699b4f06c14b02d0e69
BUG: 1233651
Signed-off-by: Humble Devassy Chirammal &lt;hchiramm@redhat.com&gt;
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10120
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
(cherry picked from commit bc858473db1e1091b15d3f3d69ac6ba5d20b58e7)
Reviewed-on: http://review.gluster.org/10971
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
At present stage, the initialization and destroy of conditional
and mutex variables of glfs struct happen in different places and
there is no uniform way of destroying these variables incase
there is a failure when initializing these. The fs mutex and
conditional variables are getting destroyed from glfs_free_from_ctx().
However this destroy is not done by a conditional check inside destroy
function. By introducing bit flags in glfs object, we can make use of the
same (if there is a failure in initialization) in glfs_fini()
which is evolving as one and only function to free fs and ctx resources.
This patch introduce the flags field and set the flags according
to the initialization flow of the mutex and conditional variables
of struct glfs members. Without this patch we are compelled to use
the goto lables and other hacks in init functions to make sure
the resources are freed if there is an error path.

Change-Id: I86e2719fb7ce437419a05699b4f06c14b02d0e69
BUG: 1233651
Signed-off-by: Humble Devassy Chirammal &lt;hchiramm@redhat.com&gt;
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10120
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
(cherry picked from commit bc858473db1e1091b15d3f3d69ac6ba5d20b58e7)
Reviewed-on: http://review.gluster.org/10971
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: zero size issue in glfs_h_acl_set()</title>
<updated>2015-06-01T09:20:23+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2015-05-22T11:20:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=a25529a0980b17567060eae8b40524381ca025d3'/>
<id>a25529a0980b17567060eae8b40524381ca025d3</id>
<content type='text'>
When setting the stringified ACLs in the xattr dict through
pub_glfs_h_setxattrs(), the size of the string is always passed as 0.
The correct way is to pass the length of the ACL in text form.

Backport of:
&gt; Change-Id: Ia7a7fa1f3a7d615a813c703057dc97b09a0bbb34
&gt; BUG: 789278
&gt; Reviewd-on: http://review.gluster.org/10782
&gt; Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: Ia7a7fa1f3a7d615a813c703057dc97b09a0bbb34
BUG: 1224241
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10890
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When setting the stringified ACLs in the xattr dict through
pub_glfs_h_setxattrs(), the size of the string is always passed as 0.
The correct way is to pass the length of the ACL in text form.

Backport of:
&gt; Change-Id: Ia7a7fa1f3a7d615a813c703057dc97b09a0bbb34
&gt; BUG: 789278
&gt; Reviewd-on: http://review.gluster.org/10782
&gt; Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: Ia7a7fa1f3a7d615a813c703057dc97b09a0bbb34
BUG: 1224241
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10890
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: fix compile warning in pub_glfs_h_access()</title>
<updated>2015-05-09T22:52:08+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2015-05-09T17:56:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=34db0de2c12a1a802580fc308aa2f2b11a9d586f'/>
<id>34db0de2c12a1a802580fc308aa2f2b11a9d586f</id>
<content type='text'>
While compiling libgfapi, the following warning is reported:

    Making all in src
      CC       libgfapi_la-glfs-handleops.lo
    In file included from glfs-handleops.c:12:0:
    glfs-handleops.c: In function 'pub_glfs_h_access':
    glfs-internal.h:216:14: warning: 'old_THIS' may be used uninitialized in this function [-Wmaybe-uninitialized]
             THIS = old_THIS;                                            \
                  ^
    glfs-internal.h:202:36: note: 'old_THIS' was declared here
     #define DECLARE_OLD_THIS xlator_t *old_THIS = NULL
                                        ^
    glfs-handleops.c:1159:2: note: in expansion of macro 'DECLARE_OLD_THIS'
      DECLARE_OLD_THIS;
      ^
      CCLD     libgfapi.la
      CCLD     api.la

The DECLARE_OLD_THIS macro should be done with the declarations of all
the other variables used in this function. Moving the macro further up
in the function prevents this warning.

Backport of:
&gt; Change-Id: I2bedc1aa074893ae3e2c933abc5a167ab5b55f41
&gt; BUG: 1210934
&gt; Reviewed-on: http://review.gluster.org/10728
&gt; Reported-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;

Change-Id: I2bedc1aa074893ae3e2c933abc5a167ab5b55f41
BUG: 1215787
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10730
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While compiling libgfapi, the following warning is reported:

    Making all in src
      CC       libgfapi_la-glfs-handleops.lo
    In file included from glfs-handleops.c:12:0:
    glfs-handleops.c: In function 'pub_glfs_h_access':
    glfs-internal.h:216:14: warning: 'old_THIS' may be used uninitialized in this function [-Wmaybe-uninitialized]
             THIS = old_THIS;                                            \
                  ^
    glfs-internal.h:202:36: note: 'old_THIS' was declared here
     #define DECLARE_OLD_THIS xlator_t *old_THIS = NULL
                                        ^
    glfs-handleops.c:1159:2: note: in expansion of macro 'DECLARE_OLD_THIS'
      DECLARE_OLD_THIS;
      ^
      CCLD     libgfapi.la
      CCLD     api.la

The DECLARE_OLD_THIS macro should be done with the declarations of all
the other variables used in this function. Moving the macro further up
in the function prevents this warning.

Backport of:
&gt; Change-Id: I2bedc1aa074893ae3e2c933abc5a167ab5b55f41
&gt; BUG: 1210934
&gt; Reviewed-on: http://review.gluster.org/10728
&gt; Reported-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;

Change-Id: I2bedc1aa074893ae3e2c933abc5a167ab5b55f41
BUG: 1215787
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10730
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>core: use reference counting for mem_acct structures</title>
<updated>2015-05-09T21:27:36+00:00</updated>
<author>
<name>Jeff Darcy</name>
<email>jdarcy@redhat.com</email>
</author>
<published>2015-04-28T08:40:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=a3af10a801a40fe990ee5db63c6dd6cb97713e4c'/>
<id>a3af10a801a40fe990ee5db63c6dd6cb97713e4c</id>
<content type='text'>
When freeing memory, our memory-accounting code expects to be able to
dereference from the (previously) allocated block to its owning
translator.  However, as we have already found once in option
validation and twice in logging, that translator might itself have
been freed and the dereference attempt causes on of our daemons to
crash with SIGSEGV.  This patch attempts to fix that as follows:

 * We no longer embed a struct mem_acct directly in a struct xlator,
   but instead allocate it separately.

 * Allocated memory blocks now contain a pointer to the mem_acct
   instead of the xlator.

 * The mem_acct structure contains a reference count, manipulated in
   both the normal and translator allocate/free code using atomic
   increments and decrements.

 * Because it's now a separate structure, we can defer freeing the
   mem_acct until its reference count reaches zero (either way).

 * Some unit tests were disabled, because they embedded their own
   copies of the implementation for what they were supposedly testing.
   Life's too short to spend time fixing tests that seem designed to
   impede progress by requiring a certain implementation as well as
   behavior.

Change-Id: Id929b11387927136f78626901729296b6c0d0fd7
BUG: 1219026
Signed-off-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10417
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Krishnan Parthasarathi &lt;kparthas@redhat.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10723
Tested-by: NetBSD Build System
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When freeing memory, our memory-accounting code expects to be able to
dereference from the (previously) allocated block to its owning
translator.  However, as we have already found once in option
validation and twice in logging, that translator might itself have
been freed and the dereference attempt causes on of our daemons to
crash with SIGSEGV.  This patch attempts to fix that as follows:

 * We no longer embed a struct mem_acct directly in a struct xlator,
   but instead allocate it separately.

 * Allocated memory blocks now contain a pointer to the mem_acct
   instead of the xlator.

 * The mem_acct structure contains a reference count, manipulated in
   both the normal and translator allocate/free code using atomic
   increments and decrements.

 * Because it's now a separate structure, we can defer freeing the
   mem_acct until its reference count reaches zero (either way).

 * Some unit tests were disabled, because they embedded their own
   copies of the implementation for what they were supposedly testing.
   Life's too short to spend time fixing tests that seem designed to
   impede progress by requiring a certain implementation as well as
   behavior.

Change-Id: Id929b11387927136f78626901729296b6c0d0fd7
BUG: 1219026
Signed-off-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10417
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Krishnan Parthasarathi &lt;kparthas@redhat.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10723
Tested-by: NetBSD Build System
</pre>
</div>
</content>
</entry>
<entry>
<title>libgfapi: Store and restore THIS in every API exposed by libgfapi</title>
<updated>2015-05-09T13:52:46+00:00</updated>
<author>
<name>Poornima G</name>
<email>pgurusid@redhat.com</email>
</author>
<published>2015-04-29T07:33:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=5fd6b3b7e2881d21a1b19fb22366e905314d71bc'/>
<id>5fd6b3b7e2881d21a1b19fb22366e905314d71bc</id>
<content type='text'>
        Backport of http://review.gluster.org/#/c/9797

Storing and restoring THIS:
When the APIs exposed by libgfapi are called by other xlators like
snapview server etc. the THIS value is overwritten to contain the
THIS of libgfapi(viz libgfapi master xlator). Hence using 'THIS'
in any xlator after calling libgfapi API will lead to issues.
One such issue was uncovered in snapview and the patch
http://review.gluster.org/#/c/9469/ was sent to workaround this issue.

Hence, storing and restoring THIS, at the entry and exit of every API
exposed by libgfapi.

Change-Id: I6f330dde25e7700fb26339d667a7ccd193ec6ba0
BUG: 1210934
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9797
Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
(cherry picked from commit 1162bb36108ab8dba8303b86927a99835b791d79)
Reviewed-on: http://review.gluster.org/10414
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
        Backport of http://review.gluster.org/#/c/9797

Storing and restoring THIS:
When the APIs exposed by libgfapi are called by other xlators like
snapview server etc. the THIS value is overwritten to contain the
THIS of libgfapi(viz libgfapi master xlator). Hence using 'THIS'
in any xlator after calling libgfapi API will lead to issues.
One such issue was uncovered in snapview and the patch
http://review.gluster.org/#/c/9469/ was sent to workaround this issue.

Hence, storing and restoring THIS, at the entry and exit of every API
exposed by libgfapi.

Change-Id: I6f330dde25e7700fb26339d667a7ccd193ec6ba0
BUG: 1210934
Signed-off-by: Poornima G &lt;pgurusid@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9797
Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
(cherry picked from commit 1162bb36108ab8dba8303b86927a99835b791d79)
Reviewed-on: http://review.gluster.org/10414
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libgfapi : anonymous fd support</title>
<updated>2015-05-08T06:50:07+00:00</updated>
<author>
<name>Jiffin Tony Thottan</name>
<email>jthottan@redhat.com</email>
</author>
<published>2015-03-11T08:50:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=753a603ce3259f3c6667a48ff4001512941f9128'/>
<id>753a603ce3259f3c6667a48ff4001512941f9128</id>
<content type='text'>
      backport of http://review.gluster.org/#/c/9971/

Anonymous fd's are floating fd assigned to a glusterfs client
without a explicit file open. Here either it will create a new
anonymous fd or existing anonymous fd in the client stack for
requested file.The anonymous fd's are mainly used for IO's.
This patch introduces two api's glfs_h_anonymous_read and
glfs_h_anonymous_write which performs read and write respectively

cherry-picked as fa0ad231745846918b2625d0e1a89c0a5c3c24dc
&gt;Change-Id: Id646f2220e8387b2f8bb244c848dc1db6761444f
&gt;BUG: 1204651
&gt;Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
&gt;Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt;Reviewed-on: http://review.gluster.org/9971
&gt;Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt;Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: I6b01d88f92ad045e48debee23aa79f4517c6bdc2
BUG: 1218857
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10635
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
      backport of http://review.gluster.org/#/c/9971/

Anonymous fd's are floating fd assigned to a glusterfs client
without a explicit file open. Here either it will create a new
anonymous fd or existing anonymous fd in the client stack for
requested file.The anonymous fd's are mainly used for IO's.
This patch introduces two api's glfs_h_anonymous_read and
glfs_h_anonymous_write which performs read and write respectively

cherry-picked as fa0ad231745846918b2625d0e1a89c0a5c3c24dc
&gt;Change-Id: Id646f2220e8387b2f8bb244c848dc1db6761444f
&gt;BUG: 1204651
&gt;Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
&gt;Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt;Reviewed-on: http://review.gluster.org/9971
&gt;Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt;Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: I6b01d88f92ad045e48debee23aa79f4517c6bdc2
BUG: 1218857
Signed-off-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10635
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
