<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git, branch v6.4</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>doc: Added release notes for 6.4</title>
<updated>2019-07-17T07:40:48+00:00</updated>
<author>
<name>hari gowtham</name>
<email>hgowtham@redhat.com</email>
</author>
<published>2019-07-16T21:21:29+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=8761be7ba773071c46fdc2e449c4d68a26ae2e36'/>
<id>8761be7ba773071c46fdc2e449c4d68a26ae2e36</id>
<content type='text'>
Fixes: bz#1726935

Change-Id: If682cd271c07fdcb62d77ff007ff502ee4a28501
Signed-off-by: hari gowtham &lt;hgowtham@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: bz#1726935

Change-Id: If682cd271c07fdcb62d77ff007ff502ee4a28501
Signed-off-by: hari gowtham &lt;hgowtham@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>core: fix deadlock between statedump and fd_anonymous()</title>
<updated>2019-07-16T20:49:45+00:00</updated>
<author>
<name>Xavi Hernandez</name>
<email>xhernandez@redhat.com</email>
</author>
<published>2019-07-04T11:21:33+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=cf8c11ad27ff5cbc168a73879fff851f0e630cbb'/>
<id>cf8c11ad27ff5cbc168a73879fff851f0e630cbb</id>
<content type='text'>
There exists a deadlock between statedump generation and fd_anonymous()
function because they are acquiring inode table lock and inode lock in
reverse order.

This patch modifies fd_anonymous() so that it takes inode lock only when
it's really necessary, avoiding the deadlock.

Backport of:
&gt; Change-Id: I24355447f0ea1b39e2546782ad07f0512cc381e7
&gt; BUG: 1727068
&gt; Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;

Change-Id: I24355447f0ea1b39e2546782ad07f0512cc381e7
Fixes: bz#1729952
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There exists a deadlock between statedump generation and fd_anonymous()
function because they are acquiring inode table lock and inode lock in
reverse order.

This patch modifies fd_anonymous() so that it takes inode lock only when
it's really necessary, avoiding the deadlock.

Backport of:
&gt; Change-Id: I24355447f0ea1b39e2546782ad07f0512cc381e7
&gt; BUG: 1727068
&gt; Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;

Change-Id: I24355447f0ea1b39e2546782ad07f0512cc381e7
Fixes: bz#1729952
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>extras/hooks: Install and package newly added post add-brick hook script</title>
<updated>2019-07-16T05:02:47+00:00</updated>
<author>
<name>Anoop C S</name>
<email>anoopcs@redhat.com</email>
</author>
<published>2019-06-12T10:11:27+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=08f8a3b8ea85cae64083f0425c7cee9500d27a16'/>
<id>08f8a3b8ea85cae64083f0425c7cee9500d27a16</id>
<content type='text'>
https://review.gluster.org/c/glusterfs/+/22913 added a new SELinux hook
script as a post add-brick operation to label new brick paths. But the
change failed to install and package new script. Therefore making
necessary changes to Makefile and spec file to get it installed and
packaged.

Backport of:
&gt; Change-Id: I67b8f4982c2783c34a4bc749fb4387c19a038225
&gt; fixes: bz#1717953
&gt; Signed-off-by: Anoop C S &lt;anoopcs@redhat.com&gt;

Change-Id: I67b8f4982c2783c34a4bc749fb4387c19a038225
fixes: bz#1718227
Signed-off-by: Anoop C S &lt;anoopcs@redhat.com&gt;
(cherry picked from commit 647a1b83fa39a635b01fcba38a330485fcd6afdb)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://review.gluster.org/c/glusterfs/+/22913 added a new SELinux hook
script as a post add-brick operation to label new brick paths. But the
change failed to install and package new script. Therefore making
necessary changes to Makefile and spec file to get it installed and
packaged.

Backport of:
&gt; Change-Id: I67b8f4982c2783c34a4bc749fb4387c19a038225
&gt; fixes: bz#1717953
&gt; Signed-off-by: Anoop C S &lt;anoopcs@redhat.com&gt;

Change-Id: I67b8f4982c2783c34a4bc749fb4387c19a038225
fixes: bz#1718227
Signed-off-by: Anoop C S &lt;anoopcs@redhat.com&gt;
(cherry picked from commit 647a1b83fa39a635b01fcba38a330485fcd6afdb)
</pre>
</div>
</content>
</entry>
<entry>
<title>features/snapview-server: use the same volfile server for gfapi options</title>
<updated>2019-07-16T05:00:24+00:00</updated>
<author>
<name>Raghavendra Bhat</name>
<email>raghavendra@redhat.com</email>
</author>
<published>2019-06-25T14:51:33+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=99977a7b694f6ee137e7b749f04e0cc744dd17e3'/>
<id>99977a7b694f6ee137e7b749f04e0cc744dd17e3</id>
<content type='text'>
snapview server xlator makes use of "localhost" as the volfile server while
initing the new glfs instance to talk to a snapshot. While localhost is fine,
better use the same volfile server that was used to start the snapshot
daemon containing the snapview-server xlator.

Change-Id: I4485d39b0e3d066f481adc6958ace53ea33237f7
fixes: bz#1727984
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
(cherry picked from commit 36f6e6df0ff15d0464b869803710adca2b65e8ba)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
snapview server xlator makes use of "localhost" as the volfile server while
initing the new glfs instance to talk to a snapshot. While localhost is fine,
better use the same volfile server that was used to start the snapshot
daemon containing the snapview-server xlator.

Change-Id: I4485d39b0e3d066f481adc6958ace53ea33237f7
fixes: bz#1727984
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
(cherry picked from commit 36f6e6df0ff15d0464b869803710adca2b65e8ba)
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd: add GF_TRANSPORT_BOTH_TCP_RDMA in glusterd_get_gfproxy_client_volfile</title>
<updated>2019-07-16T04:56:14+00:00</updated>
<author>
<name>Atin Mukherjee</name>
<email>amukherj@redhat.com</email>
</author>
<published>2019-06-11T04:22:06+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=d06f676a3af0fc09074699ead25a4872d0a6020d'/>
<id>d06f676a3af0fc09074699ead25a4872d0a6020d</id>
<content type='text'>
... with out which volume creation fails with "volume create: &lt;xyz&gt;: failed:
Failed to create volume files"

&gt;Fixes: bz#1716812
&gt;Change-Id: I2f4c2c6d5290f066b54e1c1db19e25db9937bedb
&gt;Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;

Fixes: bz#1721105
Change-Id: I2f4c2c6d5290f066b54e1c1db19e25db9937bedb
Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... with out which volume creation fails with "volume create: &lt;xyz&gt;: failed:
Failed to create volume files"

&gt;Fixes: bz#1716812
&gt;Change-Id: I2f4c2c6d5290f066b54e1c1db19e25db9937bedb
&gt;Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;

Fixes: bz#1721105
Change-Id: I2f4c2c6d5290f066b54e1c1db19e25db9937bedb
Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mgmt/glusterd: Fix a memory leak when peer detach fails</title>
<updated>2019-07-16T04:55:17+00:00</updated>
<author>
<name>Vijay Bellur</name>
<email>vbellur@redhat.com</email>
</author>
<published>2019-02-27T21:38:33+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=2d36dea60d079092cb9af0e9be1eb7954a4e32ee'/>
<id>2d36dea60d079092cb9af0e9be1eb7954a4e32ee</id>
<content type='text'>
Dictionary object is not being unref'd when an error happens
in __glusterd_handle_cli_deprobe(). This patch addresses that problem.

Change-Id: I11e1f92d06dc9edd1260845256f435ea31ef1a87
fixes: bz#1683815
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
(cherry picked from commit 16b4936696c8b602243513fbde0b20a1e8417432)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Dictionary object is not being unref'd when an error happens
in __glusterd_handle_cli_deprobe(). This patch addresses that problem.

Change-Id: I11e1f92d06dc9edd1260845256f435ea31ef1a87
fixes: bz#1683815
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
(cherry picked from commit 16b4936696c8b602243513fbde0b20a1e8417432)
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd: conditionally clear txn_opinfo in stage op</title>
<updated>2019-07-09T05:29:47+00:00</updated>
<author>
<name>Atin Mukherjee</name>
<email>amukherj@redhat.com</email>
</author>
<published>2019-06-25T05:41:10+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=0bd67afd2bf0cba6c18e2b635af5f45ef4c0a852'/>
<id>0bd67afd2bf0cba6c18e2b635af5f45ef4c0a852</id>
<content type='text'>
...otherwise this leads to a crash when volume status is run on a
heterogeneous mode.

&gt; Fixes: bz#1723658
&gt; Change-Id: I0d39f412b2e5e9d3ef0a3462b90b38bb5364b09d
&gt; Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
 (cherry picked from commit a72452fcf90679b28baec12d2769cbaa982bb4e4)

Fixes: bz#1728126
Change-Id: I0d39f412b2e5e9d3ef0a3462b90b38bb5364b09d
Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
...otherwise this leads to a crash when volume status is run on a
heterogeneous mode.

&gt; Fixes: bz#1723658
&gt; Change-Id: I0d39f412b2e5e9d3ef0a3462b90b38bb5364b09d
&gt; Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
 (cherry picked from commit a72452fcf90679b28baec12d2769cbaa982bb4e4)

Fixes: bz#1728126
Change-Id: I0d39f412b2e5e9d3ef0a3462b90b38bb5364b09d
Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: fix incorrect initialization of upcall syncop arguments</title>
<updated>2019-07-05T09:18:40+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2019-06-07T11:50:15+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=fdbb808e6dda80044ff9cc868eca265ca9614485'/>
<id>fdbb808e6dda80044ff9cc868eca265ca9614485</id>
<content type='text'>
While sending upcall notifications via synctasks, the argument used to
carry relevant data for these tasks is not initialized properly. This patch
is to fix the same.

This is backport of below mainline fix -
&gt; fixes: bz#1718316
&gt; patch url: https://review.gluster.org/#/c/glusterfs/+/22839/
&gt; Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;

Change-Id: I9fa8f841e71d3c37d3819fbd430382928c07176c
fixes: bz#1720635
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
(cherry picked from commit bc6fd4cfa6ed34de3ffc02e2279fcc713f80f530)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While sending upcall notifications via synctasks, the argument used to
carry relevant data for these tasks is not initialized properly. This patch
is to fix the same.

This is backport of below mainline fix -
&gt; fixes: bz#1718316
&gt; patch url: https://review.gluster.org/#/c/glusterfs/+/22839/
&gt; Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;

Change-Id: I9fa8f841e71d3c37d3819fbd430382928c07176c
fixes: bz#1720635
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
(cherry picked from commit bc6fd4cfa6ed34de3ffc02e2279fcc713f80f530)
</pre>
</div>
</content>
</entry>
<entry>
<title>upcall: Avoid sending notifications for invalid inodes</title>
<updated>2019-07-05T09:18:29+00:00</updated>
<author>
<name>Soumya Koduri</name>
<email>skoduri@redhat.com</email>
</author>
<published>2019-06-07T14:03:07+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=e60c6b72f7ff6153e8de98f77f0ad001a1adfba9'/>
<id>e60c6b72f7ff6153e8de98f77f0ad001a1adfba9</id>
<content type='text'>
For nameless LOOKUPs, server creates a new inode which shall
remain invalid until the fop is successfully processed post
which it is linked to the inode table.

But incase if there is an already linked inode for that entry,
it discards that newly created inode which results in upcall
notification. This may result in client being bombarded with
unnecessary upcalls affecting performance if the data set is huge.

This issue can be avoided by looking up and storing the upcall
context in the original linked inode (if exists), thus saving up on
those extra callbacks.

This is backport of below mainline fix -
&gt; fixes: bz#1718338
&gt; patch url: https://review.gluster.org/#/c/glusterfs/+/22840/
&gt; Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;

Change-Id: I044a1737819bb40d1a049d2f53c0566e746d2a17
fixes: bz#1720633
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For nameless LOOKUPs, server creates a new inode which shall
remain invalid until the fop is successfully processed post
which it is linked to the inode table.

But incase if there is an already linked inode for that entry,
it discards that newly created inode which results in upcall
notification. This may result in client being bombarded with
unnecessary upcalls affecting performance if the data set is huge.

This issue can be avoided by looking up and storing the upcall
context in the original linked inode (if exists), thus saving up on
those extra callbacks.

This is backport of below mainline fix -
&gt; fixes: bz#1718338
&gt; patch url: https://review.gluster.org/#/c/glusterfs/+/22840/
&gt; Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;

Change-Id: I044a1737819bb40d1a049d2f53c0566e746d2a17
fixes: bz#1720633
Signed-off-by: Soumya Koduri &lt;skoduri@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[RFC] change get_real_filename implementation to use ENOATTR instead of ENOENT</title>
<updated>2019-07-04T05:53:23+00:00</updated>
<author>
<name>Michael Adam</name>
<email>obnox@samba.org</email>
</author>
<published>2019-06-20T11:09:37+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=fb93da37914458996987665d8e10f7ef87772133'/>
<id>fb93da37914458996987665d8e10f7ef87772133</id>
<content type='text'>
get_real_filename is implemented as a virtual extended attribute to help
Samba implement the case-insensitive but case preserving SMB protocol
more efficiently. It is implemented as a getxattr call on the parent directory
with the virtual key of "get_real_filename:&lt;entryname&gt;" by looking for a
spelling with different case for the provided file/dir name (&lt;entryname&gt;)
and returning this correct spelling as a result if the entry is found.
Originally (05aaec645a6262d431486eb5ac7cd702646cfcfb), the
implementation used the ENOENT errno to return the authoritative answer
that &lt;entryname&gt; does not exist in any case folding.

Now this implementation is actually a violation or misuse of the defined
API for the getxattr call which returns ENOENT for the case that the dir
that the call is made against does not exist and ENOATTR (or the synonym
ENODATA) for the case that the xattr does not exist.

This was not a problem until the gluster fuse-bridge was changed
to do map ENOENT to ESTALE in 59629f1da9dca670d5dcc6425f7f89b3e96b46bf,
after which we the getxattr call for get_real_filename returned an
ESTALE instead of ENOENT breaking the expectation in Samba.

It is an independent problem that ESTALE should not leak out to user
space but is intended to trigger retries between fuse and gluster.
But nevertheless, the semantics seem to be incorrect here and should
be changed.

This patch changes the implementation of the get_real_filename virtual
xattr to correctly return ENOATTR instead of ENOENT if the file/directory
being looked up is not found.

The Samba glusterfs_fuse vfs module which takes advantage of the
get_real_filename over a fuse mount will receive a corresponding change
to map ENOATTR to ENOENT. Without this change, it will still work
correctly, but the performance optimization for nonexisting files is
lost. On the other hand side, this change removes the distinction
between the old not-implemented case and the implemented case.
So Samba changed to treat ENOATTR like ENOENT will not work correctly
any more against old servers that don't implement get_real_filename.
I.e. existing files will be reported as non-existing

Backport of:
&gt; Change-Id: I971b427ab8410636d5d201157d9af70e0d075b67
&gt; fixes: bz#1722977
&gt; Signed-off-by: Michael Adam &lt;obnox@samba.org&gt;

Change-Id: I971b427ab8410636d5d201157d9af70e0d075b67
fixes: bz#1723659
Signed-off-by: Michael Adam &lt;obnox@samba.org&gt;
(cherry picked from commit dc1b87fcfef08c9497b0c02b2410c9d18bbc2dba)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
get_real_filename is implemented as a virtual extended attribute to help
Samba implement the case-insensitive but case preserving SMB protocol
more efficiently. It is implemented as a getxattr call on the parent directory
with the virtual key of "get_real_filename:&lt;entryname&gt;" by looking for a
spelling with different case for the provided file/dir name (&lt;entryname&gt;)
and returning this correct spelling as a result if the entry is found.
Originally (05aaec645a6262d431486eb5ac7cd702646cfcfb), the
implementation used the ENOENT errno to return the authoritative answer
that &lt;entryname&gt; does not exist in any case folding.

Now this implementation is actually a violation or misuse of the defined
API for the getxattr call which returns ENOENT for the case that the dir
that the call is made against does not exist and ENOATTR (or the synonym
ENODATA) for the case that the xattr does not exist.

This was not a problem until the gluster fuse-bridge was changed
to do map ENOENT to ESTALE in 59629f1da9dca670d5dcc6425f7f89b3e96b46bf,
after which we the getxattr call for get_real_filename returned an
ESTALE instead of ENOENT breaking the expectation in Samba.

It is an independent problem that ESTALE should not leak out to user
space but is intended to trigger retries between fuse and gluster.
But nevertheless, the semantics seem to be incorrect here and should
be changed.

This patch changes the implementation of the get_real_filename virtual
xattr to correctly return ENOATTR instead of ENOENT if the file/directory
being looked up is not found.

The Samba glusterfs_fuse vfs module which takes advantage of the
get_real_filename over a fuse mount will receive a corresponding change
to map ENOATTR to ENOENT. Without this change, it will still work
correctly, but the performance optimization for nonexisting files is
lost. On the other hand side, this change removes the distinction
between the old not-implemented case and the implemented case.
So Samba changed to treat ENOATTR like ENOENT will not work correctly
any more against old servers that don't implement get_real_filename.
I.e. existing files will be reported as non-existing

Backport of:
&gt; Change-Id: I971b427ab8410636d5d201157d9af70e0d075b67
&gt; fixes: bz#1722977
&gt; Signed-off-by: Michael Adam &lt;obnox@samba.org&gt;

Change-Id: I971b427ab8410636d5d201157d9af70e0d075b67
fixes: bz#1723659
Signed-off-by: Michael Adam &lt;obnox@samba.org&gt;
(cherry picked from commit dc1b87fcfef08c9497b0c02b2410c9d18bbc2dba)
</pre>
</div>
</content>
</entry>
</feed>
