<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/nfs, branch v3.11.0</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>nfs/nlm: remove lock request from the list after cancel</title>
<updated>2017-05-17T23:26:03+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2017-01-13T12:02:23+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=55a23c268a2451f2f4d25c06c05e4c3bc0933d5d'/>
<id>55a23c268a2451f2f4d25c06c05e4c3bc0933d5d</id>
<content type='text'>
Once an NLM client cancels a lock request, it should be removed from the
list. The list can also be cleaned of unneeded entries once the client
does not have any outstanding lock/share requests/granted.

Cherry picked from commit 71cb7f3eb4fb706aab7f83906592942a2ff2e924:
&gt; Change-Id: I2f2b666b627dcb52cddc6d5b95856e420b2b2e26
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17188
&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: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: I2f2b666b627dcb52cddc6d5b95856e420b2b2e26
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17268
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: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Once an NLM client cancels a lock request, it should be removed from the
list. The list can also be cleaned of unneeded entries once the client
does not have any outstanding lock/share requests/granted.

Cherry picked from commit 71cb7f3eb4fb706aab7f83906592942a2ff2e924:
&gt; Change-Id: I2f2b666b627dcb52cddc6d5b95856e420b2b2e26
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17188
&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: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: I2f2b666b627dcb52cddc6d5b95856e420b2b2e26
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17268
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: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs/nlm: free the nlm_client upon RPC_DISCONNECT</title>
<updated>2017-05-17T23:25:59+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2017-01-20T13:15:31+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=c71645532523191d3a364a8d1771e377db512e6b'/>
<id>c71645532523191d3a364a8d1771e377db512e6b</id>
<content type='text'>
When an NLM client disconnects, it should be removed from the list and
free'd.

&gt; Cherry picked from commit 6897ba5c51b29c05b270c447adb1a34cb8e61911:
&gt; Change-Id: Ib427c896bfcdc547a3aee42a652578ffd076e2ad
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17189
&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: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: Ib427c896bfcdc547a3aee42a652578ffd076e2ad
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17267
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: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When an NLM client disconnects, it should be removed from the list and
free'd.

&gt; Cherry picked from commit 6897ba5c51b29c05b270c447adb1a34cb8e61911:
&gt; Change-Id: Ib427c896bfcdc547a3aee42a652578ffd076e2ad
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17189
&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: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
&gt; CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;

Change-Id: Ib427c896bfcdc547a3aee42a652578ffd076e2ad
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17267
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: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs/nlm: log the caller_name if nlm_client_t can be found</title>
<updated>2017-05-17T23:25:54+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2017-01-13T13:46:17+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=8eceda342eb4b5581b5eb6cc43f8f1e758975809'/>
<id>8eceda342eb4b5581b5eb6cc43f8f1e758975809</id>
<content type='text'>
In order to help tracking possible misbehaving clients down, log the
'caller_name' (hostname of the NFS client) that does not have a matching
nlm_client_t structure.

Cherry picked from commit 9bfb74a39954a7e63bfd762c816efc7e64b9df65:
&gt; Change-Id: Ib514a78d1809719a3d0274acc31ee632727d746d
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17186
&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; Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;

Change-Id: Ib514a78d1809719a3d0274acc31ee632727d746d
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17266
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&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>
In order to help tracking possible misbehaving clients down, log the
'caller_name' (hostname of the NFS client) that does not have a matching
nlm_client_t structure.

Cherry picked from commit 9bfb74a39954a7e63bfd762c816efc7e64b9df65:
&gt; Change-Id: Ib514a78d1809719a3d0274acc31ee632727d746d
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17186
&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; Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;

Change-Id: Ib514a78d1809719a3d0274acc31ee632727d746d
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17266
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&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>nfs/nlm: ignore notify when there is no matching rpc request</title>
<updated>2017-05-17T23:25:31+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2017-01-13T13:02:45+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=0533eb3c4af148d588bddd6ed967f253f99b8e33'/>
<id>0533eb3c4af148d588bddd6ed967f253f99b8e33</id>
<content type='text'>
In certain (unclear) occasions it seems to happen that there are
notifications sent to the Gluster/NFS NLM service, but no call-state can
be found. Instead of segfaulting, log an error but keep on running.

Cherry picked from commit e997d752ba08f80b1b00d2c0035874befafe5200:
&gt; Change-Id: I0f186e56e46a86ca40314d230c1cc7719c61f0b5
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17185
&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; Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;

Change-Id: I0f186e56e46a86ca40314d230c1cc7719c61f0b5
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17265
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: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In certain (unclear) occasions it seems to happen that there are
notifications sent to the Gluster/NFS NLM service, but no call-state can
be found. Instead of segfaulting, log an error but keep on running.

Cherry picked from commit e997d752ba08f80b1b00d2c0035874befafe5200:
&gt; Change-Id: I0f186e56e46a86ca40314d230c1cc7719c61f0b5
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17185
&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; Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
&gt; Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;

Change-Id: I0f186e56e46a86ca40314d230c1cc7719c61f0b5
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17265
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: jiffin tony Thottan &lt;jthottan@redhat.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs/nlm: unref rpc-client after nlm4svc_send_granted()</title>
<updated>2017-05-17T23:24:37+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2017-01-13T15:05:02+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=6ae25897843160bbe7354e55ee888b5ff95111e8'/>
<id>6ae25897843160bbe7354e55ee888b5ff95111e8</id>
<content type='text'>
nlm4svc_send_granted() uses the rpc_clnt by getting it from the
call-state structure. It is safer to unref the rpc_clnt after the
function is done with it.

Cherry picked from commit 52c28c0c04722a9ffaa7c39c49ffebdf0a5c75e1:
&gt; Change-Id: I7cb7c4297801463d21259c58b50d7df7c57aec5e
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17187
&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; Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;

Change-Id: I7cb7c4297801463d21259c58b50d7df7c57aec5e
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17264
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&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>
nlm4svc_send_granted() uses the rpc_clnt by getting it from the
call-state structure. It is safer to unref the rpc_clnt after the
function is done with it.

Cherry picked from commit 52c28c0c04722a9ffaa7c39c49ffebdf0a5c75e1:
&gt; Change-Id: I7cb7c4297801463d21259c58b50d7df7c57aec5e
&gt; BUG: 1381970
&gt; Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
&gt; Reviewed-on: https://review.gluster.org/17187
&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; Reviewed-by: soumya k &lt;skoduri@redhat.com&gt;
&gt; Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;

Change-Id: I7cb7c4297801463d21259c58b50d7df7c57aec5e
BUG: 1450377
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17264
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: jiffin tony Thottan &lt;jthottan@redhat.com&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>Halo Replication feature for AFR translator</title>
<updated>2017-05-08T05:37:07+00:00</updated>
<author>
<name>Kevin Vigor</name>
<email>kvigor@fb.com</email>
</author>
<published>2017-03-21T15:23:25+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=b6cc5261d5809aa509eecd082aefb7a0a14ca74b'/>
<id>b6cc5261d5809aa509eecd082aefb7a0a14ca74b</id>
<content type='text'>
	Backport of https://review.gluster.org/16177
		    https://review.gluster.org/17174

Merged both these patches to make sure IPV6 changes don't make it to 3.11 at all.

Summary:
Halo Geo-replication is a feature which allows Gluster or NFS clients to write
locally to their region (as defined by a latency "halo" or threshold if you
like), and have their writes asynchronously propagate from their origin to the
rest of the cluster.  Clients can also write synchronously to the cluster
simply by specifying a halo-latency which is very large (e.g. 10seconds) which
will include all bricks.

In other words, it allows clients to decide at mount time if they desire
synchronous or asynchronous IO into a cluster and the cluster can support both
of these modes to any number of clients simultaneously.

There are a few new volume options due to this feature:
  halo-shd-latency:  The threshold below which self-heal daemons will
  consider children (bricks) connected.

  halo-nfsd-latency: The threshold below which NFS daemons will consider
  children (bricks) connected.

  halo-latency: The threshold below which all other clients will
  consider children (bricks) connected.

  halo-min-replicas: The minimum number of replicas which are to
  be enforced regardless of latency specified in the above 3 options.
  If the number of children falls below this threshold the next
  best (chosen by latency) shall be swapped in.

New FUSE mount options:
  halo-latency &amp; halo-min-replicas: As descripted above.

This feature combined with multi-threaded SHD support (D1271745) results in
some pretty cool geo-replication possibilities.

Operational Notes:
- Global consistency is gaurenteed for synchronous clients, this is provided by
  the existing entry-locking mechanism.
- Asynchronous clients on the other hand and merely consistent to their region.
  Writes &amp; deletes will be protected via entry-locks as usual preventing
  concurrent writes into files which are undergoing replication.  Read operations
  on the other hand should never block.
- Writes are allowed from _any_ region and propagated from the origin to all
  other regions.  The take away from this is care should be taken to ensure
  multiple writers do not write the same files resulting in a gfid split-brain
  which will require resolution via split-brain policies (majority, mtime &amp;
  size).  Recommended method for preventing this is using the nfs-auth feature to
  define which region for each share has RW permissions, tiers not in the origin
  region should have RO perms.

TODO:
- Synchronous clients (including the SHD) should choose clients from their own
  region as preferred sources for reads.  Most of the plumbing is in place for
  this via the child_latency array.
- Better GFID split brain handling &amp; better dent type split brain handling
  (i.e. create a trash can and move the offending files into it).
- Tagging in addition to latency as a means of defining which children you wish
  to synchronously write to

Test Plan:
- The usual suspects, clang, gcc w/ address sanitizer &amp; valgrind
- Prove tests

Reviewers: jackl, dph, cjh, meyering

Reviewed By: meyering

Subscribers: ethanr

Differential Revision: https://phabricator.fb.com/D1272053

Tasks: 4117827

 &gt;Change-Id: I694a9ab429722da538da171ec528406e77b5e6d1
 &gt;BUG: 1428061
 &gt;Signed-off-by: Kevin Vigor &lt;kvigor@fb.com&gt;
 &gt;Reviewed-on: http://review.gluster.org/16099
 &gt;Reviewed-on: https://review.gluster.org/16177
 &gt;Tested-by: Pranith Kumar Karampuri &lt;pkarampu@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;Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;

BUG: 1448416
Change-Id: I694a9ab429722da538da171ec528406e77b5e6d1
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17192
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: Kaushal M &lt;kaushal@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	Backport of https://review.gluster.org/16177
		    https://review.gluster.org/17174

Merged both these patches to make sure IPV6 changes don't make it to 3.11 at all.

Summary:
Halo Geo-replication is a feature which allows Gluster or NFS clients to write
locally to their region (as defined by a latency "halo" or threshold if you
like), and have their writes asynchronously propagate from their origin to the
rest of the cluster.  Clients can also write synchronously to the cluster
simply by specifying a halo-latency which is very large (e.g. 10seconds) which
will include all bricks.

In other words, it allows clients to decide at mount time if they desire
synchronous or asynchronous IO into a cluster and the cluster can support both
of these modes to any number of clients simultaneously.

There are a few new volume options due to this feature:
  halo-shd-latency:  The threshold below which self-heal daemons will
  consider children (bricks) connected.

  halo-nfsd-latency: The threshold below which NFS daemons will consider
  children (bricks) connected.

  halo-latency: The threshold below which all other clients will
  consider children (bricks) connected.

  halo-min-replicas: The minimum number of replicas which are to
  be enforced regardless of latency specified in the above 3 options.
  If the number of children falls below this threshold the next
  best (chosen by latency) shall be swapped in.

New FUSE mount options:
  halo-latency &amp; halo-min-replicas: As descripted above.

This feature combined with multi-threaded SHD support (D1271745) results in
some pretty cool geo-replication possibilities.

Operational Notes:
- Global consistency is gaurenteed for synchronous clients, this is provided by
  the existing entry-locking mechanism.
- Asynchronous clients on the other hand and merely consistent to their region.
  Writes &amp; deletes will be protected via entry-locks as usual preventing
  concurrent writes into files which are undergoing replication.  Read operations
  on the other hand should never block.
- Writes are allowed from _any_ region and propagated from the origin to all
  other regions.  The take away from this is care should be taken to ensure
  multiple writers do not write the same files resulting in a gfid split-brain
  which will require resolution via split-brain policies (majority, mtime &amp;
  size).  Recommended method for preventing this is using the nfs-auth feature to
  define which region for each share has RW permissions, tiers not in the origin
  region should have RO perms.

TODO:
- Synchronous clients (including the SHD) should choose clients from their own
  region as preferred sources for reads.  Most of the plumbing is in place for
  this via the child_latency array.
- Better GFID split brain handling &amp; better dent type split brain handling
  (i.e. create a trash can and move the offending files into it).
- Tagging in addition to latency as a means of defining which children you wish
  to synchronously write to

Test Plan:
- The usual suspects, clang, gcc w/ address sanitizer &amp; valgrind
- Prove tests

Reviewers: jackl, dph, cjh, meyering

Reviewed By: meyering

Subscribers: ethanr

Differential Revision: https://phabricator.fb.com/D1272053

Tasks: 4117827

 &gt;Change-Id: I694a9ab429722da538da171ec528406e77b5e6d1
 &gt;BUG: 1428061
 &gt;Signed-off-by: Kevin Vigor &lt;kvigor@fb.com&gt;
 &gt;Reviewed-on: http://review.gluster.org/16099
 &gt;Reviewed-on: https://review.gluster.org/16177
 &gt;Tested-by: Pranith Kumar Karampuri &lt;pkarampu@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;Reviewed-by: Pranith Kumar Karampuri &lt;pkarampu@redhat.com&gt;

BUG: 1448416
Change-Id: I694a9ab429722da538da171ec528406e77b5e6d1
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
Reviewed-on: https://review.gluster.org/17192
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: Kaushal M &lt;kaushal@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: Check for null buf, and set op_errno to EIO not 0</title>
<updated>2017-04-26T23:31:45+00:00</updated>
<author>
<name>Richard Wareing</name>
<email>rwareing@fb.com</email>
</author>
<published>2014-09-23T00:42:04+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=3579aaaef0027c62bad57952e433e15fa9f1532c'/>
<id>3579aaaef0027c62bad57952e433e15fa9f1532c</id>
<content type='text'>
Summary:
- Prevent crashes for the case where "getattr" actually failed and
  returned with a NULL buf, but the op_errno was set to 0.
- This is a cherry-pick of D1571184

Signed-off-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Change-Id: Ia2d6ad7539df714f9420dcf063c7c14e727bb7e3
BUG: 1428064
Reviewed-on: http://review.gluster.org/16152
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: Kevin Vigor &lt;kvigor@fb.com&gt;
Reviewed-on: https://review.gluster.org/16803
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
- Prevent crashes for the case where "getattr" actually failed and
  returned with a NULL buf, but the op_errno was set to 0.
- This is a cherry-pick of D1571184

Signed-off-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Change-Id: Ia2d6ad7539df714f9420dcf063c7c14e727bb7e3
BUG: 1428064
Reviewed-on: http://review.gluster.org/16152
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: Kevin Vigor &lt;kvigor@fb.com&gt;
Reviewed-on: https://review.gluster.org/16803
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: Tear down transports for requests that arrive before the volume is initialized</title>
<updated>2017-04-26T23:31:21+00:00</updated>
<author>
<name>Shreyas Siravara</name>
<email>sshreyas@fb.com</email>
</author>
<published>2016-02-27T04:59:00+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=63a39c764181e60bc7bd8236996cf9abe353d906'/>
<id>63a39c764181e60bc7bd8236996cf9abe353d906</id>
<content type='text'>
Summary:
- Disconnects RPC transports for requests that cannot be serviced
  because volumes are not ready.
- This is a cherry-pick of D2991403

Signed-off-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Change-Id: I07ff0795b81d25624541ff981b5f2586d078e9a6
BUG: 1428068
Reviewed-on: http://review.gluster.org/16154
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kevin Vigor &lt;kvigor@fb.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-on: https://review.gluster.org/16805
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
- Disconnects RPC transports for requests that cannot be serviced
  because volumes are not ready.
- This is a cherry-pick of D2991403

Signed-off-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Change-Id: I07ff0795b81d25624541ff981b5f2586d078e9a6
BUG: 1428068
Reviewed-on: http://review.gluster.org/16154
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kevin Vigor &lt;kvigor@fb.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-on: https://review.gluster.org/16805
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
Reviewed-by: Jeff Darcy &lt;jeff@pl.atyp.us&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: Fix compiler warning when calling svc_getcaller</title>
<updated>2017-04-11T15:25:37+00:00</updated>
<author>
<name>Kevin Vigor</name>
<email>kvigor@fb.com</email>
</author>
<published>2016-03-29T21:08:38+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=10a797c26f0e9db33b2b5b89263f6cca3709c002'/>
<id>10a797c26f0e9db33b2b5b89263f6cca3709c002</id>
<content type='text'>
Summary:
When using libtirpc instead of glibc rpc the result needs to be
cast to (struct sockaddr_in *)

This diff was originally a cherry-pick of D3111554 to 3.8

Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
Signed-off-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Change-Id: If4c27dbe6c032f9e278ea08cd3c96a4d07bcc5f9
BUG: 1428073
Reviewed-on: http://review.gluster.org/16179
Tested-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kevin Vigor &lt;kvigor@fb.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-on: https://review.gluster.org/16804
Reviewed-by: Amar Tumballi &lt;amarts@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>
Summary:
When using libtirpc instead of glibc rpc the result needs to be
cast to (struct sockaddr_in *)

This diff was originally a cherry-pick of D3111554 to 3.8

Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
Signed-off-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Change-Id: If4c27dbe6c032f9e278ea08cd3c96a4d07bcc5f9
BUG: 1428073
Reviewed-on: http://review.gluster.org/16179
Tested-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Kevin Vigor &lt;kvigor@fb.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-on: https://review.gluster.org/16804
Reviewed-by: Amar Tumballi &lt;amarts@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-07T10:37:28+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://dev.gluster.org/cgit/glusterfs.git/commit/?id=40e571339b3c19ab2a5b6a93bc46eadf2252d006'/>
<id>40e571339b3c19ab2a5b6a93bc46eadf2252d006</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.

Change-Id: I19aae3547b8910e7ed4974ee5385424cab3e834a
BUG: 1426667
Signed-off-by: Bipin Kunal &lt;bkunal@redhat.com&gt;
Reviewed-on: https://review.gluster.org/16770
Reviewed-by: Niels de Vos &lt;ndevos@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>
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.

Change-Id: I19aae3547b8910e7ed4974ee5385424cab3e834a
BUG: 1426667
Signed-off-by: Bipin Kunal &lt;bkunal@redhat.com&gt;
Reviewed-on: https://review.gluster.org/16770
Reviewed-by: Niels de Vos &lt;ndevos@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>
</feed>
