<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/features/quota/src, branch v3.7.2</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>quota: don't log error when disk quota exceeded</title>
<updated>2015-06-17T12:16:23+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-06-09T07:27:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=08e404e9d397004ad24f3734862632fbeb66f2b0'/>
<id>08e404e9d397004ad24f3734862632fbeb66f2b0</id>
<content type='text'>
This is a backport of http://review.gluster.org/#/c/11135

&gt; When disk quota exceeded, quota enforcer logs
&gt; alert message, so no need to log error message
&gt; as this can fill up the log file
&gt;
&gt; Change-Id: Ia913f47bc0cedb7c0a9c611330ee5124d3bb6c9d
&gt; BUG: 1229609
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;

Change-Id: I7b0b91965d8eb1b38ef6fa5ce0276a6b6da3372d
BUG: 1232135
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11242
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a backport of http://review.gluster.org/#/c/11135

&gt; When disk quota exceeded, quota enforcer logs
&gt; alert message, so no need to log error message
&gt; as this can fill up the log file
&gt;
&gt; Change-Id: Ia913f47bc0cedb7c0a9c611330ee5124d3bb6c9d
&gt; BUG: 1229609
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;

Change-Id: I7b0b91965d8eb1b38ef6fa5ce0276a6b6da3372d
BUG: 1232135
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11242
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/quota: Fix ref-leak</title>
<updated>2015-06-11T10:52:37+00:00</updated>
<author>
<name>Pranith Kumar K</name>
<email>pkarampu@redhat.com</email>
</author>
<published>2015-06-02T12:28:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=bc743c012aca8b5854baf1b71a9ec9591c378645'/>
<id>bc743c012aca8b5854baf1b71a9ec9591c378645</id>
<content type='text'>
This is a backport of http://review.gluster.org/#/c/11045

&gt; Change-Id: I0b44b70f07be441e044d9dfc5c2b64bd5b4cac18
&gt; BUG: 1207735
&gt; Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/11045
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;

Change-Id: Id740d74fb5cf7a9b23027dbbb0a9f42616dcf2fc
BUG: 1229282
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11124
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a backport of http://review.gluster.org/#/c/11045

&gt; Change-Id: I0b44b70f07be441e044d9dfc5c2b64bd5b4cac18
&gt; BUG: 1207735
&gt; Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/11045
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;

Change-Id: Id740d74fb5cf7a9b23027dbbb0a9f42616dcf2fc
BUG: 1229282
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11124
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>quota: retry connecting to quotad on ENOTCONN error</title>
<updated>2015-06-04T08:48:31+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-04-14T05:14:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=e29f29ac18dc20187934d3da75ea7b55c6dcfb37'/>
<id>e29f29ac18dc20187934d3da75ea7b55c6dcfb37</id>
<content type='text'>
This is a backport of http://review.gluster.org/#/c/10230/

&gt; Suppose if there are two volumes vol1 and vol2,
&gt; and quota is enabled and limit is set on vol1.
&gt; Now if IO is happening on vol1 and quota is enabled/disabled
&gt; on vol2, quotad gets restarted and client will receive
&gt; ENOTCONN in the IO path of vol1.
&gt;
&gt; This patch will retry connecting to quotad upto 60sec
&gt; in a interval of 5sec (12 retries)
&gt; If not able to connect with 12 retries, then return ENOTCONN
&gt;
&gt; Change-Id: Ie7f5d108633ec68ba9cc3a6a61d79680485193e8
&gt; BUG: 1211220
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10230
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

Change-Id: I94d8d4a814a73d69e934f3e77e989e5f3bf2e65a
BUG: 1226789
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11024
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a backport of http://review.gluster.org/#/c/10230/

&gt; Suppose if there are two volumes vol1 and vol2,
&gt; and quota is enabled and limit is set on vol1.
&gt; Now if IO is happening on vol1 and quota is enabled/disabled
&gt; on vol2, quotad gets restarted and client will receive
&gt; ENOTCONN in the IO path of vol1.
&gt;
&gt; This patch will retry connecting to quotad upto 60sec
&gt; in a interval of 5sec (12 retries)
&gt; If not able to connect with 12 retries, then return ENOTCONN
&gt;
&gt; Change-Id: Ie7f5d108633ec68ba9cc3a6a61d79680485193e8
&gt; BUG: 1211220
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10230
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

Change-Id: I94d8d4a814a73d69e934f3e77e989e5f3bf2e65a
BUG: 1226789
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11024
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/quota: prevent statfs frame loss when an error happens during ancestry</title>
<updated>2015-06-04T08:41:54+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-04-30T07:05:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=fbb0fad96a51451f54369a85c7da3d02c14aff09'/>
<id>fbb0fad96a51451f54369a85c7da3d02c14aff09</id>
<content type='text'>
building

This is a backport of http://review.gluster.org/#/c/9380/

&gt; We do quota_build_ancestry in function 'quota_get_limit_dir',
&gt; suppose if quota_build_ancestry fails, then we don't have a
&gt; frame saved to continue the statfs FOP and client can hang.
&gt;
&gt; Change-Id: I92e25c1510d09444b9d4810afdb6b2a69dcd92c0
&gt; BUG: 1178619
&gt; Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/9380
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;

Change-Id: I998f417d62d6ea4f57f237f547243d44c2da438c
BUG: 1226792
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11025
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
building

This is a backport of http://review.gluster.org/#/c/9380/

&gt; We do quota_build_ancestry in function 'quota_get_limit_dir',
&gt; suppose if quota_build_ancestry fails, then we don't have a
&gt; frame saved to continue the statfs FOP and client can hang.
&gt;
&gt; Change-Id: I92e25c1510d09444b9d4810afdb6b2a69dcd92c0
&gt; BUG: 1178619
&gt; Signed-off-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/9380
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;

Change-Id: I998f417d62d6ea4f57f237f547243d44c2da438c
BUG: 1226792
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11025
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/quota : Do unwind if postbuf is NULL</title>
<updated>2015-06-03T11:02:43+00:00</updated>
<author>
<name>Anuradha</name>
<email>atalur@redhat.com</email>
</author>
<published>2015-05-25T05:37:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=731209a47e5ac5f2f0e3e840dfbef463dde0c014'/>
<id>731209a47e5ac5f2f0e3e840dfbef463dde0c014</id>
<content type='text'>
If postbuf in quota_writev_cbk is NULL directly
an unwind should be done. Trying to dereference
it will lead to a crash.

Change-Id: Idba6ce3cd1bbf37ede96c7f17d01007d6c07057a
BUG: 1227235
Reviewed-on: http://review.gluster.org/10898
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Signed-off-by: Anuradha &lt;atalur@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11040
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If postbuf in quota_writev_cbk is NULL directly
an unwind should be done. Trying to dereference
it will lead to a crash.

Change-Id: Idba6ce3cd1bbf37ede96c7f17d01007d6c07057a
BUG: 1227235
Reviewed-on: http://review.gluster.org/10898
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Signed-off-by: Anuradha &lt;atalur@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11040
</pre>
</div>
</content>
</entry>
<entry>
<title>rpc: Maintain separate xlator pointer in 'rpcsvc_state'</title>
<updated>2015-05-05T13:29:20+00:00</updated>
<author>
<name>Kotresh HR</name>
<email>khiremat@redhat.com</email>
</author>
<published>2015-04-24T12:01:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=783d78de250ba4159e5c59cdf476305ccb0814ec'/>
<id>783d78de250ba4159e5c59cdf476305ccb0814ec</id>
<content type='text'>
The structure 'rpcsvc_state', which maintains rpc server
state had no separate pointer to track the translator.
It was using the mydata pointer itself. So callers were
forced to send xlator pointer as mydata which is opaque
(void pointer) by function prototype.

'rpcsvc_register_init' is setting svc-&gt;mydata with xlator
pointer. 'rpcsvc_register_notify' is overwriting svc-&gt;mydata
with mydata pointer. And rpc interprets svc-&gt;mydata as
xlator pointer internally. If someone passes non xlator
structure pointer to rpcsvc_register_notify as libgfchangelog
currently does, it might corrupt mydata. So interpreting opaque
mydata as xlator pointer is incorrect as it is caller's choice
to send mydata as any type of data to 'rpcsvc_register_notify'.

Maintaining two different pointers in 'rpcsvc_state' for xlator
and mydata solves the issue.

BUG: 1218381
Change-Id: I4c28937a30845e3f41b6fc7a09036149c816659b
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10366
Reviewed-on: http://review.gluster.org/10534
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Aravinda VK &lt;avishwan@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The structure 'rpcsvc_state', which maintains rpc server
state had no separate pointer to track the translator.
It was using the mydata pointer itself. So callers were
forced to send xlator pointer as mydata which is opaque
(void pointer) by function prototype.

'rpcsvc_register_init' is setting svc-&gt;mydata with xlator
pointer. 'rpcsvc_register_notify' is overwriting svc-&gt;mydata
with mydata pointer. And rpc interprets svc-&gt;mydata as
xlator pointer internally. If someone passes non xlator
structure pointer to rpcsvc_register_notify as libgfchangelog
currently does, it might corrupt mydata. So interpreting opaque
mydata as xlator pointer is incorrect as it is caller's choice
to send mydata as any type of data to 'rpcsvc_register_notify'.

Maintaining two different pointers in 'rpcsvc_state' for xlator
and mydata solves the issue.

BUG: 1218381
Change-Id: I4c28937a30845e3f41b6fc7a09036149c816659b
Signed-off-by: Kotresh HR &lt;khiremat@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10366
Reviewed-on: http://review.gluster.org/10534
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Aravinda VK &lt;avishwan@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>quota: Validate NULL inode from the entries received in readdirp_cbk</title>
<updated>2015-05-02T09:35:51+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-04-28T07:22:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=52e005c450ef0d2de41efb6cb82e6f83d6228976'/>
<id>52e005c450ef0d2de41efb6cb82e6f83d6228976</id>
<content type='text'>
This is a backport of http://review.gluster.org/#/c/10416/

&gt; In quota readdirp_cbk, inode ctx filled for the all entries
&gt; received.
&gt; In marker readdirp_cbk, files/directories are inspected for
&gt; dirty
&gt;
&gt; There is no guarantee that entry-&gt;inode is populated.
&gt; If entry-&gt;inode is NULL, this needs to be treated as readdir
&gt;
&gt; Change-Id: Id2d17bb89e4770845ce1f13d73abc2b3c5826c06
&gt; BUG: 1215550
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10416
&gt; Tested-by: NetBSD Build System
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

Change-Id: I6e01b16bae1555efb6c20e49c9c473d81c6d46a0
BUG: 1217406
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10468
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a backport of http://review.gluster.org/#/c/10416/

&gt; In quota readdirp_cbk, inode ctx filled for the all entries
&gt; received.
&gt; In marker readdirp_cbk, files/directories are inspected for
&gt; dirty
&gt;
&gt; There is no guarantee that entry-&gt;inode is populated.
&gt; If entry-&gt;inode is NULL, this needs to be treated as readdir
&gt;
&gt; Change-Id: Id2d17bb89e4770845ce1f13d73abc2b3c5826c06
&gt; BUG: 1215550
&gt; Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10416
&gt; Tested-by: NetBSD Build System
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
&gt; Tested-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;

Change-Id: I6e01b16bae1555efb6c20e49c9c473d81c6d46a0
BUG: 1217406
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10468
Reviewed-by: Raghavendra G &lt;rgowdapp@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: NetBSD Build System
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>features/quota: Fixing Logically dead code</title>
<updated>2015-04-10T06:37:00+00:00</updated>
<author>
<name>arao</name>
<email>arao@redhat.com</email>
</author>
<published>2015-02-12T07:19:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=2b9a4799ef6caaeeca438c019f4a1f6cf423324a'/>
<id>2b9a4799ef6caaeeca438c019f4a1f6cf423324a</id>
<content type='text'>
CID: 1134007
The code never reaches the condition check on retlen in
ret label, hence removing the dead code.

Change-Id: Ia0108b69489bb78a2561ff8da6e00685f472ae82
BUG: 789278
Signed-off-by: arao &lt;arao@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9644
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CID: 1134007
The code never reaches the condition check on retlen in
ret label, hence removing the dead code.

Change-Id: Ia0108b69489bb78a2561ff8da6e00685f472ae82
BUG: 789278
Signed-off-by: arao &lt;arao@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9644
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid conflict between contrib/uuid and system uuid</title>
<updated>2015-04-04T17:48:35+00:00</updated>
<author>
<name>Emmanuel Dreyfus</name>
<email>manu@netbsd.org</email>
</author>
<published>2015-04-02T13:51:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=28397cae4102ac3f08576ebaf071ad92683097e8'/>
<id>28397cae4102ac3f08576ebaf071ad92683097e8</id>
<content type='text'>
glusterfs relies on Linux uuid implementation, which
API is incompatible with most other systems's uuid. As
a result, libglusterfs has to embed contrib/uuid,
which is the Linux implementation, on non Linux systems.
This implementation is incompatible with systtem's
built in, but the symbols have the same names.

Usually this is not a problem because when we link
with -lglusterfs, libc's symbols are trumped. However
there is a problem when a program not linked with
-lglusterfs will dlopen() glusterfs component. In
such a case, libc's uuid implementation is already
loaded in the calling program, and it will be used
instead of libglusterfs's implementation, causing
crashes.

A possible workaround is to use pre-load libglusterfs
in the calling program (using LD_PRELOAD on NetBSD for
instance), but such a mechanism is not portable, nor
is it flexible. A much better approach is to rename
libglusterfs's uuid_* functions to gf_uuid_* to avoid
any possible conflict. This is what this change attempts.

BUG: 1206587
Change-Id: I9ccd3e13afed1c7fc18508e92c7beb0f5d49f31a
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10017
Tested-by: Gluster Build System &lt;jenkins@build.gluster.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>
glusterfs relies on Linux uuid implementation, which
API is incompatible with most other systems's uuid. As
a result, libglusterfs has to embed contrib/uuid,
which is the Linux implementation, on non Linux systems.
This implementation is incompatible with systtem's
built in, but the symbols have the same names.

Usually this is not a problem because when we link
with -lglusterfs, libc's symbols are trumped. However
there is a problem when a program not linked with
-lglusterfs will dlopen() glusterfs component. In
such a case, libc's uuid implementation is already
loaded in the calling program, and it will be used
instead of libglusterfs's implementation, causing
crashes.

A possible workaround is to use pre-load libglusterfs
in the calling program (using LD_PRELOAD on NetBSD for
instance), but such a mechanism is not portable, nor
is it flexible. A much better approach is to rename
libglusterfs's uuid_* functions to gf_uuid_* to avoid
any possible conflict. This is what this change attempts.

BUG: 1206587
Change-Id: I9ccd3e13afed1c7fc18508e92c7beb0f5d49f31a
Signed-off-by: Emmanuel Dreyfus &lt;manu@netbsd.org&gt;
Reviewed-on: http://review.gluster.org/10017
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Niels de Vos &lt;ndevos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>quota: enhancement of build ancestry</title>
<updated>2015-04-01T06:38:42+00:00</updated>
<author>
<name>vmallika</name>
<email>vmallika@redhat.com</email>
</author>
<published>2015-03-20T08:55:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=3d4203fe3acad47f0a29ebe094b3e427b13f363f'/>
<id>3d4203fe3acad47f0a29ebe094b3e427b13f363f</id>
<content type='text'>
There can a small race window where marker accounting will
be missed.
Consider below example where NFS mount is used
and bricks are restarted and a write operation is performed

Currently:
T1: lookup from protocol server, quota will initiate ancestry build
T2: opendir FOP from ancestry build
T3: write FOP from client
T4: write_cbk
T5: marker initiate accounting.
    There will be a problem here and txn aborts,
    because build_ancestry is not complete
    and parent not found for an inode
T6: opendir_cbk
T7: initiate readdirp, posix builds ancestry in readdirp


With this patch, now calling readdirp on anonoymous fd 
during build ancestry:

T1: lookup from protocol server, quota will initiate ancestry build
T2: readirp FOP from ancestry build, posix builds ancestry in 
    readdirp 
T3: write FOP from client
T4: write_cbk
T5: marker initiate accounting. 
    No problem here as build ancestry was performed at T1


Change-Id: I2c262c86f34f6c574940a6b8772d94f2bade9465
BUG: 1184885
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9954
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There can a small race window where marker accounting will
be missed.
Consider below example where NFS mount is used
and bricks are restarted and a write operation is performed

Currently:
T1: lookup from protocol server, quota will initiate ancestry build
T2: opendir FOP from ancestry build
T3: write FOP from client
T4: write_cbk
T5: marker initiate accounting.
    There will be a problem here and txn aborts,
    because build_ancestry is not complete
    and parent not found for an inode
T6: opendir_cbk
T7: initiate readdirp, posix builds ancestry in readdirp


With this patch, now calling readdirp on anonoymous fd 
during build ancestry:

T1: lookup from protocol server, quota will initiate ancestry build
T2: readirp FOP from ancestry build, posix builds ancestry in 
    readdirp 
T3: write FOP from client
T4: write_cbk
T5: marker initiate accounting. 
    No problem here as build ancestry was performed at T1


Change-Id: I2c262c86f34f6c574940a6b8772d94f2bade9465
BUG: 1184885
Signed-off-by: vmallika &lt;vmallika@redhat.com&gt;
Reviewed-on: http://review.gluster.org/9954
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
