<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/api/src, branch release-3.8-fb</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>Merge remote-tracking branch 'origin/release-3.8' into release-3.8-fb</title>
<updated>2017-08-31T19:33:59+00:00</updated>
<author>
<name>Jeff Darcy</name>
<email>jdarcy@fb.com</email>
</author>
<published>2017-08-31T19:33:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=ed23e379ee397b3fed479c15b7551d2dbba9a05f'/>
<id>ed23e379ee397b3fed479c15b7551d2dbba9a05f</id>
<content type='text'>
Change-Id: Ie35cd1c8c7808949ddf79b3189f1f8bf0ff70ed8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ie35cd1c8c7808949ddf79b3189f1f8bf0ff70ed8
</pre>
</div>
</content>
</entry>
<entry>
<title>api: memory leak in glfs_h_acl_get(), missing dict unref</title>
<updated>2017-08-15T10:19:11+00:00</updated>
<author>
<name>Kaleb S. KEITHLEY</name>
<email>kkeithle@redhat.com</email>
</author>
<published>2017-08-14T20:27:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=3f26a7ba8d74af3c2f1c149160124e91fac534f8'/>
<id>3f26a7ba8d74af3c2f1c149160124e91fac534f8</id>
<content type='text'>
master review https://review.gluster.org/17092 circa April 2017
Fix already exists in release-3.12 and release-3.11 branches

Hat tip to Shyam (srangana[at]redhat.com) who found the existing
fix after sitting and debugging it with me for several hours.

Reported-by: Kinglong Mee &lt;mijinlong@open-fs.com&gt;
Change-Id: Ic7169fd05aff7bf46108e8ac7b1f29688a7f2358
BUG: 1481398
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-on: https://review.gluster.org/18037
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Prashanth Pai &lt;ppai@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>
master review https://review.gluster.org/17092 circa April 2017
Fix already exists in release-3.12 and release-3.11 branches

Hat tip to Shyam (srangana[at]redhat.com) who found the existing
fix after sitting and debugging it with me for several hours.

Reported-by: Kinglong Mee &lt;mijinlong@open-fs.com&gt;
Change-Id: Ic7169fd05aff7bf46108e8ac7b1f29688a7f2358
BUG: 1481398
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-on: https://review.gluster.org/18037
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kinglong Mee &lt;kinglongmee@gmail.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Prashanth Pai &lt;ppai@redhat.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: make subdir mounting work for Solaris 10 clients</title>
<updated>2017-04-29T11:20:30+00:00</updated>
<author>
<name>Bipin Kunal</name>
<email>bkunal@redhat.com</email>
</author>
<published>2017-02-27T09:53:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=767047377acee40f40237d2aca45cd94391cba37'/>
<id>767047377acee40f40237d2aca45cd94391cba37</id>
<content type='text'>
This fixes the segfault caused by solaris client in Gluster/NFS.
Volname was not being parsed properly, Instead of volume
name complete path was being used in nfs_mntpath_to_xlator().
Fixed it by striping volume name from complete path  in nfs_mntpath_to_xlator().

Modified function name nfs3_funge_solaris_zerolen_fh() to
nfs3_funge_webnfs_zerolen_fh() as zero-filled filehandle is specific to WebNFS.
RFC : https://tools.ietf.org/html/rfc2055
Solaris uses WebNFS, the zero-filled FH is defined in the WebNFS spec.

Logic was even added in fuction nfs3_funge_webnfs_zerolen_fh() to send
subdir path in function glfs_resolve_at() instead of complete path for
subdir mount.

&gt; Change-Id: I19aae3547b8910e7ed4974ee5385424cab3e834a
&gt; BUG: 1426667
&gt; Signed-off-by: Bipin Kunal &lt;bkunal@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/16770
&gt; Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; (cherry picked from commit 40e571339b3c19ab2a5b6a93bc46eadf2252d006)

Change-Id: I21ebb1d104b6eb914af5f26a6906f161c132179c
BUG: 1440228
Signed-off-by: Bipin Kunal &lt;bkunal@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17017
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes the segfault caused by solaris client in Gluster/NFS.
Volname was not being parsed properly, Instead of volume
name complete path was being used in nfs_mntpath_to_xlator().
Fixed it by striping volume name from complete path  in nfs_mntpath_to_xlator().

Modified function name nfs3_funge_solaris_zerolen_fh() to
nfs3_funge_webnfs_zerolen_fh() as zero-filled filehandle is specific to WebNFS.
RFC : https://tools.ietf.org/html/rfc2055
Solaris uses WebNFS, the zero-filled FH is defined in the WebNFS spec.

Logic was even added in fuction nfs3_funge_webnfs_zerolen_fh() to send
subdir path in function glfs_resolve_at() instead of complete path for
subdir mount.

&gt; Change-Id: I19aae3547b8910e7ed4974ee5385424cab3e834a
&gt; BUG: 1426667
&gt; Signed-off-by: Bipin Kunal &lt;bkunal@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/16770
&gt; Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; (cherry picked from commit 40e571339b3c19ab2a5b6a93bc46eadf2252d006)

Change-Id: I21ebb1d104b6eb914af5f26a6906f161c132179c
BUG: 1440228
Signed-off-by: Bipin Kunal &lt;bkunal@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17017
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin/release-3.8' into merge-3.8-again</title>
<updated>2017-01-05T20:21:20+00:00</updated>
<author>
<name>Kevin Vigor</name>
<email>kvigor@fb.com</email>
</author>
<published>2017-01-05T20:21:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=c27aa58e72cf528583c585691e65abdb765535e5'/>
<id>c27aa58e72cf528583c585691e65abdb765535e5</id>
<content type='text'>
Change-Id: I844adf2aef161a44d446f8cd9b7ebcb224ee618a
Signed-off-by: Kevin Vigor &lt;kvigor@fb.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I844adf2aef161a44d446f8cd9b7ebcb224ee618a
Signed-off-by: Kevin Vigor &lt;kvigor@fb.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: glfs_subvol_done should NOT wait for graph migration.</title>
<updated>2017-01-02T13:11:40+00:00</updated>
<author>
<name>Rajesh Joseph</name>
<email>rjoseph@redhat.com</email>
</author>
<published>2016-11-22T16:55:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=1d03b1b6b48e4ee9260852b35ec827f203e2287c'/>
<id>1d03b1b6b48e4ee9260852b35ec827f203e2287c</id>
<content type='text'>
In graph_setup function glfs_subvol_done is called which
is executed in an epoll thread. glfs_lock waits on other
thread to finish graph migration. This can lead to dead lock
if we consume all the epoll threads.

In general any call-back function executed in epoll thread
should not call any blocking call which waits on a network
reply either directly or indirectly, e.g. syncop functions
should not be called in these threads.

As a fix we should not wait for migration in the call-back path.

&gt; Reviewed-on: http://review.gluster.org/15913
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
(cherry picked from commit 17d10b42fc4041442e6cd0bfda45944edea498c6)

Change-Id: If96d0689fe1b4d74631e383048cdc30b01690dc2
BUG: 1399915
Signed-off-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15977
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&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>
In graph_setup function glfs_subvol_done is called which
is executed in an epoll thread. glfs_lock waits on other
thread to finish graph migration. This can lead to dead lock
if we consume all the epoll threads.

In general any call-back function executed in epoll thread
should not call any blocking call which waits on a network
reply either directly or indirectly, e.g. syncop functions
should not be called in these threads.

As a fix we should not wait for migration in the call-back path.

&gt; Reviewed-on: http://review.gluster.org/15913
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
(cherry picked from commit 17d10b42fc4041442e6cd0bfda45944edea498c6)

Change-Id: If96d0689fe1b4d74631e383048cdc30b01690dc2
BUG: 1399915
Signed-off-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15977
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&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>Repair cluster prove tests for FB environment</title>
<updated>2016-12-21T18:58:54+00:00</updated>
<author>
<name>Kevin Vigor</name>
<email>kvigor@fb.com</email>
</author>
<published>2016-12-21T17:27:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=9e1e0bf6e025c5fbd463086b47de18652fa3eb2f'/>
<id>9e1e0bf6e025c5fbd463086b47de18652fa3eb2f</id>
<content type='text'>
Summary:

Several prove tests use the 'launch_cluster' function to set up a
clustered volume. This replies on using multiple local IP
addresses, one for each server. Since IPV6 provides only ::1 as
a local address, as opposed to IPv4's complete 127.x.x.x subnet,
this cannot work in a pure IPv6 environment.

However, FB systems do at least have enough IPv4 stack to talk
locally, so fix launch_cluster to work properly when default
transport is IPv6.

To do this:

1) explicitly set transport.address-family volume option to inet in
   launch_cluster().

2) teach glusterd to honor transport.address-family when connecting
   to peer glusterds in glusterd_friend_rpc_create(). Previously
   transport.address-family was used only for binding local socket,
   not for communicating with peers.

Test Plan:

prove -f --timer ./tests/basic/glusterd/arbiter-volume-probe.t

Reviewers:

Subscribers:

Tasks:

Blame Revision:

Change-Id: I077d8549dcdbe4919ac7df34856a4b2d1428cdb6
Signed-off-by: Kevin Vigor &lt;kvigor@fb.com&gt;
Reviewed-on: http://review.gluster.org/16225
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:

Several prove tests use the 'launch_cluster' function to set up a
clustered volume. This replies on using multiple local IP
addresses, one for each server. Since IPV6 provides only ::1 as
a local address, as opposed to IPv4's complete 127.x.x.x subnet,
this cannot work in a pure IPv6 environment.

However, FB systems do at least have enough IPv4 stack to talk
locally, so fix launch_cluster to work properly when default
transport is IPv6.

To do this:

1) explicitly set transport.address-family volume option to inet in
   launch_cluster().

2) teach glusterd to honor transport.address-family when connecting
   to peer glusterds in glusterd_friend_rpc_create(). Previously
   transport.address-family was used only for binding local socket,
   not for communicating with peers.

Test Plan:

prove -f --timer ./tests/basic/glusterd/arbiter-volume-probe.t

Reviewers:

Subscribers:

Tasks:

Blame Revision:

Change-Id: I077d8549dcdbe4919ac7df34856a4b2d1428cdb6
Signed-off-by: Kevin Vigor &lt;kvigor@fb.com&gt;
Reviewed-on: http://review.gluster.org/16225
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfs:Now mempool is added to ctx pool list under a lock</title>
<updated>2016-11-28T09:10:12+00:00</updated>
<author>
<name>Rajesh Joseph</name>
<email>rjoseph@redhat.com</email>
</author>
<published>2016-11-14T10:10:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=8f60396bc8ce91dff57d64ae7ce56afb7f7626b1'/>
<id>8f60396bc8ce91dff57d64ae7ce56afb7f7626b1</id>
<content type='text'>
mempool is added to ctx pool list without any lock. This can cause undefined
behaviour in case of multithreaded environment.

Fix: modify the list only under ctx-&gt;lock

&gt; Reviewed-on: http://review.gluster.org/15842
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
&gt; Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
&gt; Reviewed-by: Poornima G &lt;pgurusid@redhat.com&gt;
&gt; Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
(cherry picked from commit 277008a3a8583ef10cec9e4182960792e56c5c10)

Change-Id: I7bdbb3db48a899bb0e41427e149b13c0facaedba
Signed-off-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
BUG: 1397663
Reviewed-on: http://review.gluster.org/15909
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Poornima G &lt;pgurusid@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Manikandan Selvaganesh &lt;manikandancs333@gmail.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
mempool is added to ctx pool list without any lock. This can cause undefined
behaviour in case of multithreaded environment.

Fix: modify the list only under ctx-&gt;lock

&gt; Reviewed-on: http://review.gluster.org/15842
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
&gt; Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
&gt; Reviewed-by: Poornima G &lt;pgurusid@redhat.com&gt;
&gt; Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
(cherry picked from commit 277008a3a8583ef10cec9e4182960792e56c5c10)

Change-Id: I7bdbb3db48a899bb0e41427e149b13c0facaedba
Signed-off-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
BUG: 1397663
Reviewed-on: http://review.gluster.org/15909
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Poornima G &lt;pgurusid@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Manikandan Selvaganesh &lt;manikandancs333@gmail.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: async fops should unref in callbacks</title>
<updated>2016-11-08T07:13:20+00:00</updated>
<author>
<name>Raghavendra Talur</name>
<email>rtalur@redhat.com</email>
</author>
<published>2016-11-02T14:21:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=5592c3c65b57db11f228e2ee263be3b6c4a45f84'/>
<id>5592c3c65b57db11f228e2ee263be3b6c4a45f84</id>
<content type='text'>
If fd is unref'd at the end of async call then the unref in cbks would
lead to double unref and possible crash. Removing duplicate unrefs.

Added unref only in failure cases.

A simple test case has been added to test async write case. Need to
extend the same for other async APIs too.

Details:
All glfd based calls in libgfapi, except for glfs_open and glfs_close,
behave in the same way. At the start of the operation, they take a ref
on glfd and fd. At the end of the operation, they unref it. Async calls
are a little different as they unref in the cbk function. A successfull
open call does not unref either the glfd or fd, thereby functioning as a
reference for a OPEN file object. glfs_close makes a syncop_flush call
sandwiched between a fd ref and unref(this can be removed, more on this
below), followed by a call to glfs_mark_glfd_for_deletion which unrefs
glfd and also calls glfs_fd_destroy as a release function thereby doing
a unref on fd too.

Functionally, there is no problem with how everything works when as
described above. However, it is a little non-intuitive that we need to
perform a fd_unref as a consequence of a implicit fd_ref that happens
within glfs_resolve_fd. As we perform a GF_REF_GET(glfd) at the start of
every operation, it would be worthwhile to remove the fd_ref that
glfs_resovle_fd takes and do away with explicit fd_unref()s at the end
of every operation. This is the same reason why we don't need the fd_ref
in glfs_close. This is however not in the scope of this patch.

Change-Id: I86b1d3b2ad846b16ea527d541dc82b5e90b0ba85
BUG: 1392288
Signed-off-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15768
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
Reviewed-by: Xavier Hernandez &lt;xhernandez@datalab.es&gt;
Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
Reviewed-by: Prasanna Kumar Kalever &lt;pkalever@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
(cherry picked from commit e65738818dd22462ec00dda021566654d1c702b1)
Reviewed-on: http://review.gluster.org/15779
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If fd is unref'd at the end of async call then the unref in cbks would
lead to double unref and possible crash. Removing duplicate unrefs.

Added unref only in failure cases.

A simple test case has been added to test async write case. Need to
extend the same for other async APIs too.

Details:
All glfd based calls in libgfapi, except for glfs_open and glfs_close,
behave in the same way. At the start of the operation, they take a ref
on glfd and fd. At the end of the operation, they unref it. Async calls
are a little different as they unref in the cbk function. A successfull
open call does not unref either the glfd or fd, thereby functioning as a
reference for a OPEN file object. glfs_close makes a syncop_flush call
sandwiched between a fd ref and unref(this can be removed, more on this
below), followed by a call to glfs_mark_glfd_for_deletion which unrefs
glfd and also calls glfs_fd_destroy as a release function thereby doing
a unref on fd too.

Functionally, there is no problem with how everything works when as
described above. However, it is a little non-intuitive that we need to
perform a fd_unref as a consequence of a implicit fd_ref that happens
within glfs_resolve_fd. As we perform a GF_REF_GET(glfd) at the start of
every operation, it would be worthwhile to remove the fd_ref that
glfs_resovle_fd takes and do away with explicit fd_unref()s at the end
of every operation. This is the same reason why we don't need the fd_ref
in glfs_close. This is however not in the scope of this patch.

Change-Id: I86b1d3b2ad846b16ea527d541dc82b5e90b0ba85
BUG: 1392288
Signed-off-by: Raghavendra Talur &lt;rtalur@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15768
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Rajesh Joseph &lt;rjoseph@redhat.com&gt;
Reviewed-by: Xavier Hernandez &lt;xhernandez@datalab.es&gt;
Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
Reviewed-by: Prasanna Kumar Kalever &lt;pkalever@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;
(cherry picked from commit e65738818dd22462ec00dda021566654d1c702b1)
Reviewed-on: http://review.gluster.org/15779
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi/upcall: Fix mismatch in few upcall API SYMVER</title>
<updated>2016-11-06T13:24:48+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2016-11-01T15:02:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=a125687227662a37ba7d0098bf086fc10ce6ad6f'/>
<id>a125687227662a37ba7d0098bf086fc10ce6ad6f</id>
<content type='text'>
There is mismatch in few of the upcall API routine
definitions and their corresponding symbol version
declarations. Fixed the same.

&gt; Change-Id: I2edfd9546a4c6a9128757f3b68e3ae4edd2c7a79
&gt; BUG: 1344714
&gt; Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/15760
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
&gt; Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; Tested-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; (cherry picked from commit 5b453380b15f34c0841f453a02fdabc46ad2f7ef)

Change-Id: Ifa57114dbe788ad71f57faccd45c1f55e86ee6ad
BUG: 1347717
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15775
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is mismatch in few of the upcall API routine
definitions and their corresponding symbol version
declarations. Fixed the same.

&gt; Change-Id: I2edfd9546a4c6a9128757f3b68e3ae4edd2c7a79
&gt; BUG: 1344714
&gt; Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/15760
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
&gt; Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; Tested-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; (cherry picked from commit 5b453380b15f34c0841f453a02fdabc46ad2f7ef)

Change-Id: Ifa57114dbe788ad71f57faccd45c1f55e86ee6ad
BUG: 1347717
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15775
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: add glfs_free() to glfs.h</title>
<updated>2016-10-21T12:32:14+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2016-10-19T10:33:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=a5bf3c3a586ccf20f5f735968ec9a56d33f62326'/>
<id>a5bf3c3a586ccf20f5f735968ec9a56d33f62326</id>
<content type='text'>
Commit 4721188a154acd9a0a4c096d8d73e97f3bf1b2a9 introduces glfs_free()
but missed adding the function to the header. The symbol is correctly
available in the library though. Testcases do not seem to fail when a
function is missing for the headers...

The glusterfs-3.7.16 packages have been released with the missing
declaration in the header and symbol-maps. Still, the function is
available for applications:

    $ objdump -T usr/lib64/libgfapi.so.0 | grep -w glfs_free
    0000000000006aa0 g    DF .text	0000000000000035  GFAPI_3.7.16 glfs_free

Cherry picked from commit 5ab0b43ce67d8d131242542a80b6aa6b129ed5ee:
&gt; Change-Id: Ia707ee957f090dbfca028192fcc81a83dfdf4ae0
&gt; BUG: 1344714
&gt; Reported-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/15653
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;

Change-Id: Ia707ee957f090dbfca028192fcc81a83dfdf4ae0
BUG: 1347717
Reported-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15680
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-by: Oleksandr Natalenko &lt;oleksandr@natalenko.name&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 4721188a154acd9a0a4c096d8d73e97f3bf1b2a9 introduces glfs_free()
but missed adding the function to the header. The symbol is correctly
available in the library though. Testcases do not seem to fail when a
function is missing for the headers...

The glusterfs-3.7.16 packages have been released with the missing
declaration in the header and symbol-maps. Still, the function is
available for applications:

    $ objdump -T usr/lib64/libgfapi.so.0 | grep -w glfs_free
    0000000000006aa0 g    DF .text	0000000000000035  GFAPI_3.7.16 glfs_free

Cherry picked from commit 5ab0b43ce67d8d131242542a80b6aa6b129ed5ee:
&gt; Change-Id: Ia707ee957f090dbfca028192fcc81a83dfdf4ae0
&gt; BUG: 1344714
&gt; Reported-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/15653
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;

Change-Id: Ia707ee957f090dbfca028192fcc81a83dfdf4ae0
BUG: 1347717
Reported-by: Jiffin Tony Thottan &lt;jthottan@redhat.com&gt;
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15680
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-by: Oleksandr Natalenko &lt;oleksandr@natalenko.name&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
