<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/storage/posix/src, branch v3.8.8</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>posix: make sure atime and mtime are set when calling lutimes()</title>
<updated>2017-01-09T01:10:59+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2017-01-07T13:23:40+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=068e4f345f51438d252b1e330ca7049bd4a67e03'/>
<id>068e4f345f51438d252b1e330ca7049bd4a67e03</id>
<content type='text'>
When overwriting an existing file with O_TRUNC, the 'atime' was set to
0, meaning the Epoch (01-Jan-1970 UTC). However, the 'mtime' gets
updated correcty.

In case 'atime' or 'mtime' is not passed in the 'struct iatt', the time
values passed to the systemcall are taken from the current values are
returned by lstat().

Cherry picked from commit 9bed81ada6f91f998e9abd915b18e3f06557cdcb:
&gt; Change-Id: I7021b7161dcd6c9a3e515d98f6d4847533c434b3
&gt; BUG: 1401777
&gt; Reported-by: Eivind Sarto &lt;eivindsarto@gmail.com&gt;
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/16034
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;

Change-Id: I7021b7161dcd6c9a3e515d98f6d4847533c434b3
BUG: 1411011
Reported-by: Eivind Sarto &lt;eivindsarto@gmail.com&gt;
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/16356
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: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When overwriting an existing file with O_TRUNC, the 'atime' was set to
0, meaning the Epoch (01-Jan-1970 UTC). However, the 'mtime' gets
updated correcty.

In case 'atime' or 'mtime' is not passed in the 'struct iatt', the time
values passed to the systemcall are taken from the current values are
returned by lstat().

Cherry picked from commit 9bed81ada6f91f998e9abd915b18e3f06557cdcb:
&gt; Change-Id: I7021b7161dcd6c9a3e515d98f6d4847533c434b3
&gt; BUG: 1401777
&gt; Reported-by: Eivind Sarto &lt;eivindsarto@gmail.com&gt;
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/16034
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;

Change-Id: I7021b7161dcd6c9a3e515d98f6d4847533c434b3
BUG: 1411011
Reported-by: Eivind Sarto &lt;eivindsarto@gmail.com&gt;
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/16356
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: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>storage/posix: Fix race in posix_pstat</title>
<updated>2016-10-25T08:54:45+00:00</updated>
<author>
<name>Pranith Kumar K</name>
<email>pkarampu@redhat.com</email>
</author>
<published>2016-09-23T15:36:37+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=7e1d7a9db6dbc20bd3bc24c99d5a4c89c63de0d2'/>
<id>7e1d7a9db6dbc20bd3bc24c99d5a4c89c63de0d2</id>
<content type='text'>
Problem:
When one thread is in the process of creating a file/directory
and the other thread is doing readdirp, there is a chance that
posix_pstat, creation fops race in the following manner which
will lead to wrong stat values to be read by parent xlators
like posix-acl.

Creation fops                           posix_pstat() as part of readdirp
1) file is created with uid/gid 0/0     1) does stat of the path that
                                           is created just now.
2) Does chown to set the correct
   uid/gid
3) Sets the acl/user/internal xattrs
4) Sets the gfid on the entry and
   completes the creation of the file/dir
                                        2) fills the gfid in the iatt

If unwind of readdirp hits server xlator before creation fop, then
posix-acl remembers uid/gid of the file to be root/root and fails
fops like open etc on it.

Fix:
Reverse the order of filling gfid and filling lstat() values in
posix_pstat() so that if there is gfid in iatt buffer uid/gid
are valid.

 &gt;Change-Id: I46caa7f6da7abfa40a0b1d70e35b88de9c64959c
 &gt;Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
 &gt;Reviewed-on: http://review.gluster.org/15564
 &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;Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
 &gt;Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;

BUG: 1386071
Change-Id: I81c4c6e6b8d4037cee9b23da262b254c126c0a19
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15665
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
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;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
When one thread is in the process of creating a file/directory
and the other thread is doing readdirp, there is a chance that
posix_pstat, creation fops race in the following manner which
will lead to wrong stat values to be read by parent xlators
like posix-acl.

Creation fops                           posix_pstat() as part of readdirp
1) file is created with uid/gid 0/0     1) does stat of the path that
                                           is created just now.
2) Does chown to set the correct
   uid/gid
3) Sets the acl/user/internal xattrs
4) Sets the gfid on the entry and
   completes the creation of the file/dir
                                        2) fills the gfid in the iatt

If unwind of readdirp hits server xlator before creation fop, then
posix-acl remembers uid/gid of the file to be root/root and fails
fops like open etc on it.

Fix:
Reverse the order of filling gfid and filling lstat() values in
posix_pstat() so that if there is gfid in iatt buffer uid/gid
are valid.

 &gt;Change-Id: I46caa7f6da7abfa40a0b1d70e35b88de9c64959c
 &gt;Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
 &gt;Reviewed-on: http://review.gluster.org/15564
 &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;Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
 &gt;Reviewed-by: Shyamsundar Ranganathan &lt;srangana@redhat.com&gt;

BUG: 1386071
Change-Id: I81c4c6e6b8d4037cee9b23da262b254c126c0a19
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15665
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>afr: Ignore gluster internal (virtual) xattrs in metadata heal check</title>
<updated>2016-09-29T07:10:18+00:00</updated>
<author>
<name>Ravishankar N</name>
<email>ravishankar@redhat.com</email>
</author>
<published>2016-09-27T05:09:58+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=44dbec60a2cd8fe6a68ff30cb6b8a1cf67b717be'/>
<id>44dbec60a2cd8fe6a68ff30cb6b8a1cf67b717be</id>
<content type='text'>
Backport of http://review.gluster.org/#/c/15548/

Problem:
In arbiter configuration, posix-xlator in the arbiter brick always sets the
GF_CONTENT_KEY in the response dict with a value 0. If the file size on the
data bricks is more than quick-read's max-file-size (64kb default), those
bricks don't set the key. Because of this difference in the no. of dict
elements, afr triggers metadata heal in lookup code path, in turn leading to
extra lookups+inodelks.

Fix:
Changed afr dict comparison logic to ignore all virtual xattrs and the on-disk
ones that we should not be healing.

Change-Id: I05730bdd39d8fb0b9a49a5fc9c0bb01f0d3bb308
BUG: 1377193
Signed-off-by: Ravishankar N &lt;ravishankar@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15578
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: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backport of http://review.gluster.org/#/c/15548/

Problem:
In arbiter configuration, posix-xlator in the arbiter brick always sets the
GF_CONTENT_KEY in the response dict with a value 0. If the file size on the
data bricks is more than quick-read's max-file-size (64kb default), those
bricks don't set the key. Because of this difference in the no. of dict
elements, afr triggers metadata heal in lookup code path, in turn leading to
extra lookups+inodelks.

Fix:
Changed afr dict comparison logic to ignore all virtual xattrs and the on-disk
ones that we should not be healing.

Change-Id: I05730bdd39d8fb0b9a49a5fc9c0bb01f0d3bb308
BUG: 1377193
Signed-off-by: Ravishankar N &lt;ravishankar@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15578
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: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: correctly format some (s)size_t messages</title>
<updated>2016-09-07T14:00:48+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2016-09-06T14:13:25+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=020787a93f997f4fd2e16818e73d030b3ef4e4e8'/>
<id>020787a93f997f4fd2e16818e73d030b3ef4e4e8</id>
<content type='text'>
On 32-bit builds the are are warnings like these:

    posix.c:6438: warning: format '%ld' expects type 'long int', but argument 11 has type 'ssize_t'

Instead of using "%l" for (signed) size_t variables, "%z" should be
used.

Cherry picked from commit 3af889f02722f4636d2ea30570de6477e8b5a3a9:
&gt; BUG: 1198849
&gt; Change-Id: I6f57b5e8ea174dd9e3056aff5da685e497894ccf
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/14933
&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; Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;

This patch is not really recommended for backporting, but we do have a
new smoke test that fails when these warnings pop-up. It is cleaner to
correct the code in the release-3.7 branch then to modify the smoke test
to skip this branch.

Change-Id: I6f57b5e8ea174dd9e3056aff5da685e497894ccf
BUG: 1373530
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15410
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
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;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On 32-bit builds the are are warnings like these:

    posix.c:6438: warning: format '%ld' expects type 'long int', but argument 11 has type 'ssize_t'

Instead of using "%l" for (signed) size_t variables, "%z" should be
used.

Cherry picked from commit 3af889f02722f4636d2ea30570de6477e8b5a3a9:
&gt; BUG: 1198849
&gt; Change-Id: I6f57b5e8ea174dd9e3056aff5da685e497894ccf
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/14933
&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; Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;

This patch is not really recommended for backporting, but we do have a
new smoke test that fails when these warnings pop-up. It is cleaner to
correct the code in the release-3.7 branch then to modify the smoke test
to skip this branch.

Change-Id: I6f57b5e8ea174dd9e3056aff5da685e497894ccf
BUG: 1373530
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15410
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>storage/posix: Log EEXIST failures at DEBUG log-level</title>
<updated>2016-08-17T10:21:31+00:00</updated>
<author>
<name>Krutika Dhananjay</name>
<email>kdhananj@redhat.com</email>
</author>
<published>2016-08-16T05:13:07+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=3f46884be3de3bf4cd096d637013566b53336db4'/>
<id>3f46884be3de3bf4cd096d637013566b53336db4</id>
<content type='text'>
        Backport of: http://review.gluster.org/15161

Change-Id: I0a74ea4c9b36d7b3f1e31083b8af08ca8a981c2f
BUG: 1367363
Signed-off-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15175
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
        Backport of: http://review.gluster.org/15161

Change-Id: I0a74ea4c9b36d7b3f1e31083b8af08ca8a981c2f
BUG: 1367363
Signed-off-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15175
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>storage/posix: fix inode leaks</title>
<updated>2016-08-10T13:47:07+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>rgowdapp@redhat.com</email>
</author>
<published>2016-06-16T06:33:19+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=f9daa522408a43b05200abdbecc1ee65b1d6f099'/>
<id>f9daa522408a43b05200abdbecc1ee65b1d6f099</id>
<content type='text'>
&gt; Reviewed-on: http://review.gluster.org/14739
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: N Balachandran &lt;nbalacha@redhat.com&gt;
&gt; Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
&gt; Reviewed-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;

BUG: 1365742
Change-Id: Ibd221ba62af4db17bea5c52d37f5c0ba30b60a7d
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15127
Tested-by: Oleksandr Natalenko &lt;oleksandr@natalenko.name&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: N Balachandran &lt;nbalacha@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
&gt; Reviewed-on: http://review.gluster.org/14739
&gt; Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: N Balachandran &lt;nbalacha@redhat.com&gt;
&gt; Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
&gt; Reviewed-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;

BUG: 1365742
Change-Id: Ibd221ba62af4db17bea5c52d37f5c0ba30b60a7d
Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15127
Tested-by: Oleksandr Natalenko &lt;oleksandr@natalenko.name&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: N Balachandran &lt;nbalacha@redhat.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>posix: Do not move and recreate .glusterfs/unlink directory</title>
<updated>2016-08-10T09:31:50+00:00</updated>
<author>
<name>Ashish Pandey</name>
<email>aspandey@redhat.com</email>
</author>
<published>2016-07-27T10:19:25+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=d5976e2ca90f16074216a32e267e2652acd32bd9'/>
<id>d5976e2ca90f16074216a32e267e2652acd32bd9</id>
<content type='text'>
Problem:
At the time of start of a volume, it is checked if
.glusterfs/unlink exist or not. If it does, move it
to landfill and recreate unlink directory. If a volume
is mounted and we write data on it till we face ENOSPC,
restart of that volume fails as it will not be able to
create unlink dir. mkdir will fail with ENOSPC.
This will not allow volume to restart.

Solution:
If .glusterfs/unlink directory exist, don't move it to
landfill. Delete all the entries inside it.

master -
http://review.gluster.org/#/c/15030/

Change-Id: Icde3fb36012f2f01aeb119a2da042f761203c11f
BUG: 1364365
Signed-off-by: Ashish Pandey &lt;aspandey@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15093
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&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: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
At the time of start of a volume, it is checked if
.glusterfs/unlink exist or not. If it does, move it
to landfill and recreate unlink directory. If a volume
is mounted and we write data on it till we face ENOSPC,
restart of that volume fails as it will not be able to
create unlink dir. mkdir will fail with ENOSPC.
This will not allow volume to restart.

Solution:
If .glusterfs/unlink directory exist, don't move it to
landfill. Delete all the entries inside it.

master -
http://review.gluster.org/#/c/15030/

Change-Id: Icde3fb36012f2f01aeb119a2da042f761203c11f
BUG: 1364365
Signed-off-by: Ashish Pandey &lt;aspandey@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15093
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&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: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>posix: honour fsync flags in posix_do_zerofill</title>
<updated>2016-08-06T05:40:25+00:00</updated>
<author>
<name>Ravishankar N</name>
<email>ravishankar@redhat.com</email>
</author>
<published>2016-08-05T11:22:18+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=2c748b731f233588b97d375ce92a5ae56612d764'/>
<id>2c748b731f233588b97d375ce92a5ae56612d764</id>
<content type='text'>
Backport of http://review.gluster.org/#/c/15100/
commit fe1054110ac54750ca0333a727d83b14a98e165e introduced fallocate +
FALLOC_FL_ZERO_RANGE to do posix_do_zerofill but did not do an fsync if
O_SYNC or O_DSYNC fd flags were set. Prashant Pai pointed out performing
fallocate(2) does not remove the necessity to do fsyncs if durability is
desired: http://linux-fsdevel.vger.kernel.narkive.com/bDmrAUlh/fallocate-falloc-fl-punch-hole

So fixed it to honour the fd flags.

Change-Id: I27ae90b429185d0af29a5e632c4a8b242075a899
BUG: 1364497
Signed-off-by: Ravishankar N &lt;ravishankar@redhat.com&gt;
(cherry picked from commit cf51bc699646359be92969024a52c225e7ee55a1)
Reviewed-on: http://review.gluster.org/15103
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Prashanth Pai &lt;ppai@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: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backport of http://review.gluster.org/#/c/15100/
commit fe1054110ac54750ca0333a727d83b14a98e165e introduced fallocate +
FALLOC_FL_ZERO_RANGE to do posix_do_zerofill but did not do an fsync if
O_SYNC or O_DSYNC fd flags were set. Prashant Pai pointed out performing
fallocate(2) does not remove the necessity to do fsyncs if durability is
desired: http://linux-fsdevel.vger.kernel.narkive.com/bDmrAUlh/fallocate-falloc-fl-punch-hole

So fixed it to honour the fd flags.

Change-Id: I27ae90b429185d0af29a5e632c4a8b242075a899
BUG: 1364497
Signed-off-by: Ravishankar N &lt;ravishankar@redhat.com&gt;
(cherry picked from commit cf51bc699646359be92969024a52c225e7ee55a1)
Reviewed-on: http://review.gluster.org/15103
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Prashanth Pai &lt;ppai@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: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>storage/posix: Look for file in "unlink" dir IFF open on real-path fails with ENOENT</title>
<updated>2016-07-30T10:59:00+00:00</updated>
<author>
<name>Krutika Dhananjay</name>
<email>kdhananj@redhat.com</email>
</author>
<published>2016-07-28T17:07:38+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=b653bcbf652e05659189e2f9dbb9767dcd969d55'/>
<id>b653bcbf652e05659189e2f9dbb9767dcd969d55</id>
<content type='text'>
        Backport of: http://review.gluster.org/#/c/15039/

PROBLEM:
In some of our users' setups, open() on the anon fd failed for
a reason other than ENOENT. But this error code is getting masked
by a subsequent open() under posix's hidden "unlink" directory, which
will fail with ENOENT because the gfid handle still exists under .glusterfs.
And the log message following the two open()s ends up logging ENOENT,
causing much confusion.

FIX:
Look for the presence of the file under "unlink" ONLY if the open()
on the real_path failed with ENOENT.

Change-Id: Id83782fb3995d578881f7a586c83c3e0baea2ae8
BUG: 1361449
Signed-off-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15042
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&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>
        Backport of: http://review.gluster.org/#/c/15039/

PROBLEM:
In some of our users' setups, open() on the anon fd failed for
a reason other than ENOENT. But this error code is getting masked
by a subsequent open() under posix's hidden "unlink" directory, which
will fail with ENOENT because the gfid handle still exists under .glusterfs.
And the log message following the two open()s ends up logging ENOENT,
causing much confusion.

FIX:
Look for the presence of the file under "unlink" ONLY if the open()
on the real_path failed with ENOENT.

Change-Id: Id83782fb3995d578881f7a586c83c3e0baea2ae8
BUG: 1361449
Signed-off-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15042
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>posix: leverage FALLOC_FL_ZERO_RANGE in zerofill fop</title>
<updated>2016-07-30T06:03:52+00:00</updated>
<author>
<name>Ravishankar N</name>
<email>ravishankar@redhat.com</email>
</author>
<published>2016-07-28T15:12:45+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=fe1054110ac54750ca0333a727d83b14a98e165e'/>
<id>fe1054110ac54750ca0333a727d83b14a98e165e</id>
<content type='text'>
Backport of http://review.gluster.org/#/c/15037/

posix_zerofill() implements zerofilling of a given (offset,length) by
doing a writev in a loop followed by an optional fsync on the file.
fallocate(2) has a FALLOC_FL_ZERO_RANGE flag which does away with all
this and provides the same result (from a userspace application point of
view) with a single syscall. This patch attempts the zerofill with the
latter and falls back to the former if it fails.

Tested using a libgfapi based C program on XFS and observed using gdb
that posix_zerofill()'s call to fallocate with FALLOC_FL_ZERO_RANGE was
a success.

Change-Id: Iceaf0cbc57c52dac63540872e8538d79e8dee631
BUG: 1361483
Signed-off-by: Ravishankar N &lt;ravishankar@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15044
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: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backport of http://review.gluster.org/#/c/15037/

posix_zerofill() implements zerofilling of a given (offset,length) by
doing a writev in a loop followed by an optional fsync on the file.
fallocate(2) has a FALLOC_FL_ZERO_RANGE flag which does away with all
this and provides the same result (from a userspace application point of
view) with a single syscall. This patch attempts the zerofill with the
latter and falls back to the former if it fails.

Tested using a libgfapi based C program on XFS and observed using gdb
that posix_zerofill()'s call to fallocate with FALLOC_FL_ZERO_RANGE was
a success.

Change-Id: Iceaf0cbc57c52dac63540872e8538d79e8dee631
BUG: 1361483
Signed-off-by: Ravishankar N &lt;ravishankar@redhat.com&gt;
Reviewed-on: http://review.gluster.org/15044
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: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
