<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git, branch v3.10.10</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>doc: Added release notes for 3.10.10 release</title>
<updated>2018-01-30T18:53:48+00:00</updated>
<author>
<name>ShyamsundarR</name>
<email>srangana@redhat.com</email>
</author>
<published>2018-01-30T18:53:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=dd038cc99a285d7e5627a38b04ed3858d6b7d330'/>
<id>dd038cc99a285d7e5627a38b04ed3858d6b7d330</id>
<content type='text'>
Change-Id: Ie73319a9e2c6149418c613b18aa1b869a08ebc9a
BUG: 1531113
Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ie73319a9e2c6149418c613b18aa1b869a08ebc9a
BUG: 1531113
Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cluster/dht: Add migration checks to dht_(f)xattrop</title>
<updated>2018-01-30T13:38:09+00:00</updated>
<author>
<name>N Balachandran</name>
<email>nbalacha@redhat.com</email>
</author>
<published>2018-01-19T06:12:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=af161b0ed5940751bf64ed17b8d49c115e687886'/>
<id>af161b0ed5940751bf64ed17b8d49c115e687886</id>
<content type='text'>
The dht_(f)xattrop implementation did not implement
migration phase1/phase2 checks which could cause issues
with rebalance on sharded volumes.
This does not solve the issue where fops may reach the target
out of order.

&gt; Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
&gt; BUG: 1471031
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;

Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
BUG: 1498081
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The dht_(f)xattrop implementation did not implement
migration phase1/phase2 checks which could cause issues
with rebalance on sharded volumes.
This does not solve the issue where fops may reach the target
out of order.

&gt; Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
&gt; BUG: 1471031
&gt; Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;

Change-Id: I2416fc35115e60659e35b4b717fd51f20746586c
BUG: 1498081
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>posix: delete stale gfid handles in nameless lookup</title>
<updated>2018-01-18T18:21:37+00:00</updated>
<author>
<name>Ravishankar N</name>
<email>ravishankar@redhat.com</email>
</author>
<published>2018-01-16T04:46:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=f731824440c218999437412c569bacacf213d191'/>
<id>f731824440c218999437412c569bacacf213d191</id>
<content type='text'>
..in order for self-heal of symlinks to work properly (see BZ for
details).

Backport of https://review.gluster.org/#/c/19070/
Signed-off-by: Ravishankar N &lt;ravishankar@redhat.com&gt;

Change-Id: I9a011d00b07a690446f7fd3589e96f840e8b7501
BUG: 1534848
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
..in order for self-heal of symlinks to work properly (see BZ for
details).

Backport of https://review.gluster.org/#/c/19070/
Signed-off-by: Ravishankar N &lt;ravishankar@redhat.com&gt;

Change-Id: I9a011d00b07a690446f7fd3589e96f840e8b7501
BUG: 1534848
</pre>
</div>
</content>
</entry>
<entry>
<title>storage/posix: Handle [f]xattrop xdata</title>
<updated>2018-01-15T05:00:35+00:00</updated>
<author>
<name>Pranith Kumar K</name>
<email>pkarampu@redhat.com</email>
</author>
<published>2017-07-06T11:09:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=9601ff350dd309714ec3fa746a86e13ac1165591'/>
<id>9601ff350dd309714ec3fa746a86e13ac1165591</id>
<content type='text'>
Updates #251
Change-Id: I13d89c3b5dc39aa0a232a70be8ec6b64394cfa6e
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17740
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Reviewed-by: Xavier Hernandez &lt;xhernandez@datalab.es&gt;
Reviewed-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;
(cherry picked from commit 73b2b7fe57069eb85485465fb92c52a97d4d411c)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updates #251
Change-Id: I13d89c3b5dc39aa0a232a70be8ec6b64394cfa6e
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17740
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Reviewed-by: Xavier Hernandez &lt;xhernandez@datalab.es&gt;
Reviewed-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;
(cherry picked from commit 73b2b7fe57069eb85485465fb92c52a97d4d411c)
</pre>
</div>
</content>
</entry>
<entry>
<title>doc: Release notes for 3.10.9</title>
<updated>2018-01-04T14:36:09+00:00</updated>
<author>
<name>ShyamsundarR</name>
<email>srangana@redhat.com</email>
</author>
<published>2018-01-04T14:35:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=1a7c263ac670502d26367ac1f93414acf8ae6a0f'/>
<id>1a7c263ac670502d26367ac1f93414acf8ae6a0f</id>
<content type='text'>
Change-Id: If97c904054e21166a2b56f2d00087253ea022329
BUG: 1523781
Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: If97c904054e21166a2b56f2d00087253ea022329
BUG: 1523781
Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfapi: fix handling of dot and double dot in path</title>
<updated>2018-01-03T15:19:25+00:00</updated>
<author>
<name>Mohammed Rafi KC</name>
<email>rkavunga@redhat.com</email>
</author>
<published>2017-05-03T11:49:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=16e3d4102eb119fc9816a0ad3f4c487c0d0823b6'/>
<id>16e3d4102eb119fc9816a0ad3f4c487c0d0823b6</id>
<content type='text'>
This patch is to handle "." and ".." in file path. Which means
this special dentry names will be resolved before sending fops
on the path.

Change-Id: I5e92f6d1ad1412bf432eb2488e53fb7731edb013
BUG: 1530341
Signed-off-by: Mohammed Rafi KC &lt;rkavunga@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17177
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
(cherry picked from commit 269e2ccf45ddc662d8373eb887ae6cef96e2ef37)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch is to handle "." and ".." in file path. Which means
this special dentry names will be resolved before sending fops
on the path.

Change-Id: I5e92f6d1ad1412bf432eb2488e53fb7731edb013
BUG: 1530341
Signed-off-by: Mohammed Rafi KC &lt;rkavunga@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17177
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
(cherry picked from commit 269e2ccf45ddc662d8373eb887ae6cef96e2ef37)
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterd: Nullify pmap entry for bricks belonging to same port</title>
<updated>2018-01-03T15:19:03+00:00</updated>
<author>
<name>Atin Mukherjee</name>
<email>amukherj@redhat.com</email>
</author>
<published>2018-01-02T14:56:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=fcdec185173f8da44e879c6fc592c0c0a8876728'/>
<id>fcdec185173f8da44e879c6fc592c0c0a8876728</id>
<content type='text'>
Commit 30e0b86 tried to address all the stale port issues glusterd had
in case of a brick is abruptly killed. For brick multiplexing case
because of a bug the portmap entry was not getting removed. This patch
addresses the same.

&gt;mainline patch : https://review.gluster.org/#/c/19119/

Change-Id: Ib020b967a9b92f1abae9cab9492f0cacec59aaa1
BUG: 1530450
Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 30e0b86 tried to address all the stale port issues glusterd had
in case of a brick is abruptly killed. For brick multiplexing case
because of a bug the portmap entry was not getting removed. This patch
addresses the same.

&gt;mainline patch : https://review.gluster.org/#/c/19119/

Change-Id: Ib020b967a9b92f1abae9cab9492f0cacec59aaa1
BUG: 1530450
Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mount/fuse: use fstat in getattr implementation if any opened fd is available</title>
<updated>2018-01-03T14:54:19+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>rgowdapp@redhat.com</email>
</author>
<published>2017-11-07T10:39:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=83c59b690062c633a8b7478ac7a9ac762916b049'/>
<id>83c59b690062c633a8b7478ac7a9ac762916b049</id>
<content type='text'>
The restriction of using fds opened by the same Pid means fds cannot
be shared across threads of multithreaded application. Note that fops
from kernel have different Pid for different threads. Imagine
following sequence of operations:

* Turn off performance.open-behind
* Thread t1 opens an fd - fd1 - on file "file". Let's assume nodeid of
  "file" is "nodeid-file".
* Thread t2 does RENAME ("newfile", "file"). Let's assume nodeid of
  "newfile" as "nodeid-newfile".
* t2 proceeds to do fstat (fd1)

The above set of operations can sometimes result in ESTALE/ENOENT
errors. RENAME overwrites "file" with "newfile" changing its nodeid
from "nodeid-file" to "nodeid-newfile" and post RENAME, "nodeid-file" is
removed from the backend. If fstat carries nodeid-file as argument,
which can happen if lookup has not refreshed the nodeid of "file" and
since t2 doesn't have an fd opened, fuse_getattr_resume uses STAT
which will fail as "nodeid-file" no longer exists.

Since the above set of operations and sharing of fds across
multiple threads are valid, this is a bug.

The fix is to use any fd opened on the inode. In this specific example
fuse_getattr_resume will find fd1 and winds down the call as fstat
(fd1) which won't fail.

Cross-checked with "Miklos Szeredi" &lt;mszeredi.at.redhat.dot.com&gt; for
any security issues with this solution and he approves the solution.

Thanks to "Miklos Szeredi" &lt;mszeredi.at.redhat.dot.com&gt; for all the
pointers and discussions.

&gt;Change-Id: I88dd29b3607cd2594eee9d72a1637b5346c8d49c
&gt;BUG: 1510401
&gt;Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

(cherry picked from commit 8b57378e5596f287a7b9d106dd6fb56a624b42ee)
Change-Id: I88dd29b3607cd2594eee9d72a1637b5346c8d49c
BUG: 1529086
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The restriction of using fds opened by the same Pid means fds cannot
be shared across threads of multithreaded application. Note that fops
from kernel have different Pid for different threads. Imagine
following sequence of operations:

* Turn off performance.open-behind
* Thread t1 opens an fd - fd1 - on file "file". Let's assume nodeid of
  "file" is "nodeid-file".
* Thread t2 does RENAME ("newfile", "file"). Let's assume nodeid of
  "newfile" as "nodeid-newfile".
* t2 proceeds to do fstat (fd1)

The above set of operations can sometimes result in ESTALE/ENOENT
errors. RENAME overwrites "file" with "newfile" changing its nodeid
from "nodeid-file" to "nodeid-newfile" and post RENAME, "nodeid-file" is
removed from the backend. If fstat carries nodeid-file as argument,
which can happen if lookup has not refreshed the nodeid of "file" and
since t2 doesn't have an fd opened, fuse_getattr_resume uses STAT
which will fail as "nodeid-file" no longer exists.

Since the above set of operations and sharing of fds across
multiple threads are valid, this is a bug.

The fix is to use any fd opened on the inode. In this specific example
fuse_getattr_resume will find fd1 and winds down the call as fstat
(fd1) which won't fail.

Cross-checked with "Miklos Szeredi" &lt;mszeredi.at.redhat.dot.com&gt; for
any security issues with this solution and he approves the solution.

Thanks to "Miklos Szeredi" &lt;mszeredi.at.redhat.dot.com&gt; for all the
pointers and discussions.

&gt;Change-Id: I88dd29b3607cd2594eee9d72a1637b5346c8d49c
&gt;BUG: 1510401
&gt;Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

(cherry picked from commit 8b57378e5596f287a7b9d106dd6fb56a624b42ee)
Change-Id: I88dd29b3607cd2594eee9d72a1637b5346c8d49c
BUG: 1529086
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "mount/fuse: report ESTALE as ENOENT"</title>
<updated>2018-01-02T16:21:38+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>rgowdapp@redhat.com</email>
</author>
<published>2017-10-10T05:59:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=7053b9ec894d9b91f945fcbe7af52813ffcb2dc9'/>
<id>7053b9ec894d9b91f945fcbe7af52813ffcb2dc9</id>
<content type='text'>
This reverts commit 26d16b90ec7f8acbe07e56e8fe1baf9c9fa1519e.

Consider rename (index.new, store.idx) and open (store.idx) being
executed in parallel. When we break down operations following sequence
is possible.

* lookup (store.idx) - as part of open(store.idx) returns gfid1 as the
  result.
* rename (index.new, store.idx) changes gfid of store.idx to
  gfid2. Note that gfid2 was the nodeid of index.new. Since rename is
  successful, gfid2 is associated with store.idx.
* open (store.idx) resumes and issues open fop to glusterfs with
  gfid1. open in glusterfs fails as gfid1 doesn't exist and the error
  returned by glusterfs to kernel-fuse is ENOENT.
* kernel passes back the same error to application as a result to
  open.

This error could've been prevented if kernel retries open with
gfid2. Interestingly kernel do retry open when it receives ESTALE
error. Even though failure to find gfid resulted in ESTALE error,
commit 26d16b90ec7f8acb converted that error to ENOENT while sending
an error reply to kernel. This prevented kernel from retrying open
resulting in error.

&gt;Change-Id: I2e752ca60dd8af1b989dd1d29c7b002ee58440b4
&gt;BUG: 1500269
&gt;Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

(cherry picked from commit 019a55e708375d2b1e576fcc948a691bcdc5c749)
Change-Id: I2e752ca60dd8af1b989dd1d29c7b002ee58440b4
BUG: 1529089
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 26d16b90ec7f8acbe07e56e8fe1baf9c9fa1519e.

Consider rename (index.new, store.idx) and open (store.idx) being
executed in parallel. When we break down operations following sequence
is possible.

* lookup (store.idx) - as part of open(store.idx) returns gfid1 as the
  result.
* rename (index.new, store.idx) changes gfid of store.idx to
  gfid2. Note that gfid2 was the nodeid of index.new. Since rename is
  successful, gfid2 is associated with store.idx.
* open (store.idx) resumes and issues open fop to glusterfs with
  gfid1. open in glusterfs fails as gfid1 doesn't exist and the error
  returned by glusterfs to kernel-fuse is ENOENT.
* kernel passes back the same error to application as a result to
  open.

This error could've been prevented if kernel retries open with
gfid2. Interestingly kernel do retry open when it receives ESTALE
error. Even though failure to find gfid resulted in ESTALE error,
commit 26d16b90ec7f8acb converted that error to ENOENT while sending
an error reply to kernel. This prevented kernel from retrying open
resulting in error.

&gt;Change-Id: I2e752ca60dd8af1b989dd1d29c7b002ee58440b4
&gt;BUG: 1500269
&gt;Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

(cherry picked from commit 019a55e708375d2b1e576fcc948a691bcdc5c749)
Change-Id: I2e752ca60dd8af1b989dd1d29c7b002ee58440b4
BUG: 1529089
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mount/fuse: never fail open(dir) with ENOENT</title>
<updated>2018-01-02T16:20:39+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>rgowdapp@redhat.com</email>
</author>
<published>2017-10-13T14:30:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=d846e85b701196f9a11cded2bd7e59f75ea2cb1d'/>
<id>d846e85b701196f9a11cded2bd7e59f75ea2cb1d</id>
<content type='text'>
open(dir) being an operation on inode should never fail with
ENOENT. If gfid is not present, the appropriate error is ESTALE. This
will enable kernel to retry open after a revalidate lookup.

&gt;Change-Id: I8d07d2ebb5a0da6c3ea478317442cb42f1797a4b
&gt;BUG: 1500269
&gt;Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

(cherry picked from commit fb4b914ce84bc83a5f418719c5ba7c25689a9251)
Change-Id: I8d07d2ebb5a0da6c3ea478317442cb42f1797a4b
BUG: 1529089
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
open(dir) being an operation on inode should never fail with
ENOENT. If gfid is not present, the appropriate error is ESTALE. This
will enable kernel to retry open after a revalidate lookup.

&gt;Change-Id: I8d07d2ebb5a0da6c3ea478317442cb42f1797a4b
&gt;BUG: 1500269
&gt;Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

(cherry picked from commit fb4b914ce84bc83a5f418719c5ba7c25689a9251)
Change-Id: I8d07d2ebb5a0da6c3ea478317442cb42f1797a4b
BUG: 1529089
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
