<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/contrib/stdlib, branch v3.13.0rc0</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>Renamed TMP_MAX to GF_TMP_MAX to avoid namespace clash on OSX.</title>
<updated>2013-03-13T17:33:02+00:00</updated>
<author>
<name>Kaleb S. KEITHLEY</name>
<email>kkeithle@redhat.com</email>
</author>
<published>2013-03-13T05:05:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=caac150b2b0f799a09cab7b3b49498b9dc7ec0e8'/>
<id>caac150b2b0f799a09cab7b3b49498b9dc7ec0e8</id>
<content type='text'>
(Just moving things along. I don't mean to step on any toes, but wasn't
sure if I had confused things with my previous review comment.)

Change-Id: I095abf751ef952ba6e225305ec5c2afc5e62ee95
BUG: 919953
Signed-off-by: Justin Clift &lt;jclift@redhat.com&gt;
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-on: http://review.gluster.org/4654
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(Just moving things along. I don't mean to step on any toes, but wasn't
sure if I had confused things with my previous review comment.)

Change-Id: I095abf751ef952ba6e225305ec5c2afc5e62ee95
BUG: 919953
Signed-off-by: Justin Clift &lt;jclift@redhat.com&gt;
Signed-off-by: Kaleb S. KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-on: http://review.gluster.org/4654
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>glusterfs: add gf_mkostemp api and use it instead of mkostemp of libc</title>
<updated>2012-10-18T06:37:03+00:00</updated>
<author>
<name>Raghavendra Bhat</name>
<email>raghavendra@redhat.com</email>
</author>
<published>2012-10-08T05:32:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=56d1f81949fde78615cd9fec048259d261f99c40'/>
<id>56d1f81949fde78615cd9fec048259d261f99c40</id>
<content type='text'>
Change-Id: Icc12b99e2233d22037e2c4bb2b6966e45668b7dd
BUG: 764890
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Reviewed-on: http://review.gluster.org/4091
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
Tested-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Icc12b99e2233d22037e2c4bb2b6966e45668b7dd
BUG: 764890
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;
Reviewed-on: http://review.gluster.org/4091
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
Tested-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
57e4904fe'>tree</a><a href='/cgit/glusterfs.git/commit/xlators/debug?id=7ec3a8527f2fb341fc1f6e54ded36b157e4904fe'>commit</a><a href='/cgit/glusterfs.git/diff/xlators/debug?id=7ec3a8527f2fb341fc1f6e54ded36b157e4904fe'>diff</a><a href='/cgit/glusterfs.git/stats/xlators/debug'>stats</a></td><td class='form'><form class='right' method='get' action='/cgit/glusterfs.git/log/xlators/debug'>
<input type='hidden' name='id' value='7ec3a8527f2fb341fc1f6e54ded36b157e4904fe'/><input type='hidden' name='showmsg' value='1'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit/glusterfs.git/log/?id=7ec3a8527f2fb341fc1f6e54ded36b157e4904fe&amp;showmsg=1'>root</a>/<a href='/cgit/glusterfs.git/log/xlators?id=7ec3a8527f2fb341fc1f6e54ded36b157e4904fe&amp;showmsg=1'>xlators</a>/<a href='/cgit/glusterfs.git/log/xlators/debug?id=7ec3a8527f2fb341fc1f6e54ded36b157e4904fe&amp;showmsg=1'>debug</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/cgit/glusterfs.git/log/xlators/debug?id=7ec3a8527f2fb341fc1f6e54ded36b157e4904fe'>Collapse</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=d2de3f66393d4f737e21eedab4200563a60f8bcc'>core: Log level changes do not effect on running client process</a><span class='decoration'></span></td><td>Mohit Agrawal</td><td><span title='2019-04-16 10:59:36 +0000'>2019-04-16</span></td><td>1</td><td><span class='deletions'>-9</span>/<span class='insertions'>+13</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Problem: commit c34e4161f3cb6539ec83a9020f3d27eb4759a975 set log-level
         per xlator during reconfigure only for a brick process not for
         the client process.

Solution: 1) Change per xlator log-level only if brick_mux is enabled.To make sure
             about brick multiplex introudce a flag brick_mux at ctx-&gt;cmd_args.

Note: There are two other changes done with this patch
      1) Ignore client-log-level option to attach a brick with
         already running brick if brick_mux is enabled
      2) Add a log to print pid of the running process to make easier
         debugging

&gt; Change-Id: I39e85de778e150d0685cd9a79425ce8b4783f9c9
&gt; Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;
&gt; Fixes: bz#1696046
&gt; (Cherry picked from commit 798aadbe51a9a02dd98a0f861cc239ecf7c8ed57)
&gt; (Reviewed on upstream link https://review.gluster.org/#/c/glusterfs/+/22495/)

Change-Id: If91682830f894ab8f6857f19dcb1797fc15ca64c
Fixes: bz#1699715
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=c228f0c2d94c028619088c07b66f88488f7c3335'>Don't depend on string options to be valid always</a><span class='decoration'></span></td><td>Pranith Kumar K</td><td><span title='2018-12-17 17:19:00 +0000'>2018-12-17</span></td><td>3</td><td><span class='deletions'>-19</span>/<span class='insertions'>+20</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
updates bz#1650403
Change-Id: Ib5a11e691599ce4bd93c1ed5aca6060592893961
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=af7e957b4954bd84b8f7df6bfbd59c939092ead2'>xlator: make 'xlator_api' mandatory</a><span class='decoration'></span></td><td>Amar Tumballi</td><td><span title='2018-12-13 14:41:50 +0530'>2018-12-13</span></td><td>4</td><td><span class='deletions'>-2</span>/<span class='insertions'>+58</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
* Remove the options to load old symbol.
* keep only 'xlator_api' symbol from being exported using xlator.sym
* add xlator_api to all the xlators where its missing

NOTE: This covers all the xlators which has at least a test case
to validate its loading. If there is a translator, which doesn't
have any test, then we should probably remove that from codebase.

fixes: #164
Change-Id: Ibcdc8c9844cda6b4463d907a15813745d14c1ebb
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=7dadea15c58eb92e5f5727190bf9446dd6fe7a3c'>copy_file_range support in GlusterFS</a><span class='decoration'></span></td><td>Raghavendra Bhat</td><td><span title='2018-12-12 15:56:55 +0000'>2018-12-12</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+27</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
* libglusterfs changes to add new fop

    * Fuse changes:
      - Changes in fuse bridge xlator to receive and send responses

    * posix changes to perform the op on the backend filesystem

    * protocol and rpc changes for sending and receiving the fop

    * gfapi changes for performing the fop

    * tools: glfs-copy-file-range tool for testing copy_file_range fop

      - Although, copy_file_range support has been added to the upstream
	    fuse kernel module, no release has been made yet of a kernel
        which contains the support. It is expected to come in the
        upcoming release of linux-4.20

        So, as of now, executing copy_file_range fop on a fused based
        filesystem results in fuse kernel module sending read on the
	    source fd and write on the destination fd.

	    Therefore a small gfapi based tool has been written to be able
        test the copy_file_range fop. This tool is similar (in functionality)
	    to the example program given in copy_file_range man page.

	    So, running regular copy_file_range on a fuse mount point and
	    running gfapi based glfs-copy-file-range tool gives some idea about
	    how fast, the copy_file_range (or reflink) can be.

	    On the local machine this was the result obtained.

	    mount -t glusterfs workstation:new /mnt/glusterfs
	    [root@workstation ~]# cd /mnt/glusterfs/
	    [root@workstation glusterfs]# ls
	    file
	    [root@workstation glusterfs]# cd
	    [root@workstation ~]# time /tmp/a.out /mnt/glusterfs/file /mnt/glusterfs/new
	    real  0m6.495s
	    user  0m0.000s
	    sys   0m1.439s
	    [root@workstation ~]# time glfs-copy-file-range $(hostname) new /tmp/glfs.log /file /rrr
	    OPEN_SRC: opening /file is success
	    OPEN_DST: opening /rrr is success
	    FSTAT_SRC: fstat on /rrr is success
	    copy_file_range successful

        real  0m0.309s
        user  0m0.039s
        sys   0m0.017s

        This tool needs following arguments
         1) hostname
         2) volume name
         3) log file path
         4) source file path (relative to the gluster volume root)
         5) destination file path (relative to the gluster volume root)

        "glfs-copy-file-range &lt;hostname&gt; &lt;volume&gt; &lt;log file path&gt; &lt;source&gt; &lt;destination&gt;"

      - Added a testcase as well to run glfs-copy-file-range tool

    * io-stats changes to capture the fop for profiling

    * NOTE:

      - Added conditional check to see whether the copy_file_range syscall
        is available or not. If not, then return ENOSYS.

      - Added conditional check for kernel minor version in fuse_kernel.h
        and fuse-bridge while referring to copy_file_range. And the kernel
        minor version is kept as it is. i.e. 24. Increment it in future
        when there is a kernel release which contains the support for
        copy_file_range fop in fuse kernel module.

    * The document which contains a writeup on this enhancement can be found at
      https://docs.google.com/document/d/1BSILbXr_knynNwxSyyu503JoTz5QFM_4suNIh2WwrSc/edit

Change-Id: I280069c814dd21ce6ec3be00a884fc24ab692367
updates: #536
Signed-off-by: Raghavendra Bhat &lt;raghavendra@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=340e58f9b3bcdfe4314da65e592dcd5c2daf6fd9'>all: add xlator_api to many translators</a><span class='decoration'></span></td><td>Amar Tumballi</td><td><span title='2018-12-06 07:54:28 +0000'>2018-12-06</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+15</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Fixes: #164
Change-Id: I93ad6f0232a1dc534df099059f69951e1339086f
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=20ef211cfa5b5fcc437484a879fdc5d4c66bbaf5'>libglusterfs: Move devel headers under glusterfs directory</a><span class='decoration'></span></td><td>ShyamsundarR</td><td><span title='2018-12-05 21:47:04 +0000'>2018-12-05</span></td><td>10</td><td><span class='deletions'>-30</span>/<span class='insertions'>+30</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
libglusterfs devel package headers are referenced in code using
include semantics for a program, this while it works can be better
especially when dealing with out of tree xlator builds or in
general out of tree devel package usage.

Towards this, the following changes are done,
- moved all devel headers under a glusterfs directory
- Included these headers using system header notation &lt;&gt; in all
code outside of libglusterfs
- Included these headers using own program notation "" within
libglusterfs

This change although big, is just moving around the headers and
making it correct when including these headers from other sources.

This helps us correctly include libglusterfs includes without
namespace conflicts.

Change-Id: Id2a98854e671a7ee5d73be44da5ba1a74252423b
Updates: bz#1193929
Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=5a8a06bc9d84c188d18b60e4bf0a97963572f065'>debug/io-stats: Fix json output</a><span class='decoration'></span></td><td>Chris Holcombe</td><td><span title='2018-12-05 15:04:19 +0000'>2018-12-05</span></td><td>1</td><td><span class='deletions'>-33</span>/<span class='insertions'>+29</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Summary: The json being output by the io-stats debug xlator
quotes the numbers. This is not necessary and makes parsing
in strongly typed languages more difficult.

Change-Id: I3ac13700e2c52dbdc29d0bcdd39896d7871f36fe
fixes: bz#1654521
Signed-off-by: Chris Holcombe &lt;xfactor973@gmail.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=0b54c92a22c89fd1d8e03cad2dfb70a5b73ee12a'>clang: Fix io-stats.c NULL pointer issue reported by clang</a><span class='decoration'></span></td><td>ShyamsundarR</td><td><span title='2018-12-03 05:47:21 +0000'>2018-12-03</span></td><td>1</td><td><span class='deletions'>-5</span>/<span class='insertions'>+6</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
The issue pertains to checking if conf is NULL in BUMP_FOP
but not providing that safety in io_stats_release when using
conf to lock and bump nr_opens.

This is now corrected to check if conf is non-NULL before
attempting the lock and bump nr_opens.

Tested with local clang analyzer to ensure this fixes the
problem.

Change-Id: Iffd6a97c2060d0a6930a8dc5914b1956c192cab1
Updates: bz#1622665
Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=74e8328d3f6901d6ba38a313965fe910c8411324'>all: fix the format string exceptions</a><span class='decoration'></span></td><td>Amar Tumballi</td><td><span title='2018-11-05 18:50:59 +0000'>2018-11-05</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Currently, there are possibilities in few places, where a user-controlled
(like filename, program parameter etc) string can be passed as 'fmt' for
printf(), which can lead to segfault, if the user's string contains '%s',
'%d' in it.

While fixing it, makes sense to make the explicit check for such issues
across the codebase, by making the format call properly.

Fixes: CVE-2018-14661

Fixes: bz#1644763
Change-Id: Ib547293f2d9eb618594cbff0df3b9c800e88bde4
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=acb208221bfe3ac897d8eb4fbe18fa6c8aa9286e'>io-stats: prevent taking file dump on server side</a><span class='decoration'></span></td><td>Amar Tumballi</td><td><span title='2018-11-05 18:49:51 +0000'>2018-11-05</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+9</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
By allowing clients taking dump in a file on brick process, we are
allowing compromised clients to create io-stats dumps on server,
which can exhaust all the available inodes.

Fixes: CVE-2018-14659

Fixes: bz#1644757
Change-Id: I32bfde9d4fe646d819a45e627805b928cae2e1ca
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=c34e4161f3cb6539ec83a9020f3d27eb4759a975'>glusterfs: During reconfigure set log-level per xlator level</a><span class='decoration'></span></td><td>Mohit Agrawal</td><td><span title='2018-10-24 06:29:35 +0000'>2018-10-24</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+31</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Problem: In brick_mux environment, while a user has enabled brick-log-level
         for anyone volume, it automatically enables for other volumes
         also those are attached with same brick.

Solution: A log-level option is automatically enabled for other volumes
          because log-level saved in glusterfsd_ctx and ctx is common for
          volumes those are attached with same brick. To resolve it
          set log level for all children xlator's at the time of the graph
          reconfigure at io-stat xlator.

Change-Id: Id9a6efa05d286e0bea2d47f49292d084e7bb2fcf
fixes: bz#1640495
Signed-off-by: Mohit Agrawal &lt;moagrawal@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=219cd649fdbd7bfd6c2268a0a4f66bcc15918e31'>debug/io-stats: io stats filenames contain garbage</a><span class='decoration'></span></td><td>N Balachandran</td><td><span title='2018-10-17 23:42:56 +0000'>2018-10-17</span></td><td>1</td><td><span class='deletions'>-4</span>/<span class='insertions'>+23</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
As dict_unserialize does not null terminate the value,
using snprintf adds garbage characters to the buffer
used to create the filename.
The code also used this-&gt;name in the filename which
will be the same for all bricks for a volume. The
files were thus overwritten if a node contained
multiple bricks for a volume. The code now uses
the conf-&gt;unique instead if available.

Change-Id: I2c72534b32634b87961d3b3f7d53c5f2ca2c068c
fixes: bz#1640165
Signed-off-by: N Balachandran &lt;nbalacha@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=98f68cf115a30a101d3be2252ecbe1391720ed88'>Multiple xlators: perform gettimeofday() not under lock</a><span class='decoration'></span></td><td>Yaniv Kaul</td><td><span title='2018-10-16 06:33:29 +0000'>2018-10-16</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+6</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
While it may slightly reduce accuracy, I think it's better to
acquire the time outside a lock and then memcpy the value while
under lock.

Compile-tested only!

updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;

Change-Id: Ic8fb94a56c4fa2d3b13e59767e13646fb39342ba


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=2d96ce8faa277809c0c94aca54320483889f577d'>all: fix warnings on non 64-bits architectures</a><span class='decoration'></span></td><td>Xavi Hernandez</td><td><span title='2018-10-10 05:50:29 +0000'>2018-10-10</span></td><td>2</td><td><span class='deletions'>-5</span>/<span class='insertions'>+5</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
When compiling in other architectures there appear many warnings. Some
of them are actual problems that prevent gluster to work correctly on
those architectures.

Change-Id: Icdc7107a2bc2da662903c51910beddb84bdf03c0
fixes: bz#1632717
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=e16868dede6455cab644805af6fe1ac312775e13'>Land part 2 of clang-format changes</a></td><td>Gluster Ant</td><td><span title='2018-09-12 17:52:45 +0530'>2018-09-12</span></td><td>5</td><td><span class='deletions'>-7988</span>/<span class='insertions'>+7750</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Change-Id: Ia84cc24c8924e6d22d02ac15f611c10e26db99b4
Signed-off-by: Nigel Babu &lt;nigelb@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=45a71c0548b6fd2c757aa2e7b7671a1411948894'>Land clang-format changes</a></td><td>Gluster Ant</td><td><span title='2018-09-12 17:22:48 +0530'>2018-09-12</span></td><td>7</td><td><span class='deletions'>-63</span>/<span class='insertions'>+58</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Change-Id: I6f5d8140a06f3c1b2d196849299f8d483028d33b


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=9716ce88b3a1faf135a6badc02d94249898059dd'>io-stats: dump io-stats info in /var/run/gluster</a><span class='decoration'></span></td><td>Amar Tumballi</td><td><span title='2018-09-05 09:24:52 +0000'>2018-09-05</span></td><td>1</td><td><span class='deletions'>-9</span>/<span class='insertions'>+25</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
It wouldn't make sense to allow iostats file to be written in
*any* directory. While the formating makes sure we try to append
io-stats-name for the file, so overwriting existing file is slim,
but in any case it makes sense to restrict dumping to one directory.

Below are the sample commands, and files created for the corresponding
values:

 $ setfattr -n trusted.io-stats-dump -v file-for-dump $M0

In this case, the file would be in /var/run/gluster/file-for-dump

 $ setfattr -n trusted.io-stats-dump -v /dir1/dir2/file-for-dump $M0

In this case, then the dump file is in /var/run/gluster/dir1-dir2-file-for-dump

Note that the value passed for this virtual xattr would be treated as a
file, and even if the value has '/' in it, it would be changed to '-'
for sanity.

Fixes: bz#1625106

Change-Id: Id9ae6a40a190b8937c51662e6e1c2a0f6c86a0e0
Signed-off-by: Amar Tumballi &lt;amarts@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=3cb5b63a0a78048f8d09e59ab5d79bc2f659ed17'>debug/error-gen: Prevent a possible null dereference</a><span class='decoration'></span></td><td>Vijay Bellur</td><td><span title='2018-08-24 11:17:57 +0000'>2018-08-24</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+2</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Addresses CID: 1124492

Change-Id: I92f807b5e45537e68c318bcbf54ccaa23d18b0dd
Updates: bz#789278
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=045d70a5450daa85aa5564b6e9f93065c342ab12'>debug/error-gen: Fix null deref and out of bounds read issues</a><span class='decoration'></span></td><td>Vijay Bellur</td><td><span title='2018-08-18 05:50:00 +0000'>2018-08-18</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+7</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Addresses CID: 1124492, 1124700, 1124701

Change-Id: If9916df1b0a4e67ad74fe0f6ea6f2544598ddacb
updates: bz#789278
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=b2b6ab8eff317f6a507ab23897ea6cd5c718d99a'>All: remove memset() before sprintf()</a><span class='decoration'></span></td><td>Yaniv Kaul</td><td><span title='2018-08-14 05:15:04 +0000'>2018-08-14</span></td><td>1</td><td><span class='deletions'>-8</span>/<span class='insertions'>+0</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
It's not needed.
There's a good chance the compiler is smart enough to remove it
anyway, but it can't hurt - I hope.

Compile-tested only!

Change-Id: Id7c054e146ba630227affa591007803f3046416b
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=32c8f70f49c0e287c53998e37867f00fa775377b'>error-gen, locks: Fix a typo in comments</a><span class='decoration'></span></td><td>Vijay Bellur</td><td><span title='2018-08-14 05:12:27 +0000'>2018-08-14</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
s/coverty/coverity/

Change-Id: Iac7c13176162eace4247dd3236373aa76d906380
updates: bz#789278
Signed-off-by: Vijay Bellur &lt;vbellur@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=621138ce763eda8270d0a4f6d7209fd50ada8787'>All: run codespell on the code and fix issues.</a><span class='decoration'></span></td><td>Yaniv Kaul</td><td><span title='2018-07-22 14:40:16 +0000'>2018-07-22</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Please review, it's not always just the comments that were fixed.
I've had to revert of course all calls to creat() that were changed
to create() ...

Only compile-tested!

Change-Id: I7d02e82d9766e272a7fd9cc68e51901d69e5aab5
updates: bz#1193929
Signed-off-by: Yaniv Kaul &lt;ykaul@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=6dc5dfef819cad69d6d4b4c1c305efa74236ad84'>Fix compile warnings</a><span class='decoration'></span></td><td>Xavi Hernandez</td><td><span title='2018-07-10 16:28:24 +0200'>2018-07-10</span></td><td>1</td><td><span class='deletions'>-58</span>/<span class='insertions'>+58</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
This patch fixes compile warnings that appear with newer compilers. The
solution applied is only to remove the warnings, but it doesn't always
solve the problem in the best way. It assumes that the problem will never
happen, as the previous code assumed.

Change-Id: I6e8470d6c2e2dbd3bd7d324b5fd2f92ffdc3d6ec
updates: bz#1193929
Signed-off-by: Xavi Hernandez &lt;xhernandez@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=c30283fd2786dc24b6adf5aff8d39e24730b1a11'>io-stats: Terminate dump thread when dump interval is set to 0</a><span class='decoration'></span></td><td>ShyamsundarR</td><td><span title='2018-07-09 15:07:56 +0000'>2018-07-09</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+11</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
_ios_dump_thread is not terminated by the function
_ios_destroy_dump_thread when the diagnostic interval is set
to 0 (which means disable auto dumping).

During reconfigure, if the value changes from 0 to another
then the thread is started, but on reconfiguring this to 0
the thread is not being terminated.

Further, if the value is changed from 0 to X to 0 to Y, where
X and Y are 2 arbitrary duration numbers, the reconfigure
code ends up starting one more thread (for each change from
0 to a valid interval).

This patch fixes the same by terminating the thread when the
value changes from non-zero to 0.

NOTE: It would seem nicer to use conf-&gt;dump_thread and check
its value for thread presence etc. but there is no documented
invalid value for the same, and hence an invalid check is not
feasible, thus introducing a new running bool to determine the
same.

Fixes: bz#1598548
Change-Id: I3e7d2ce8f033879542932ac730d57bfcaf14af73
Signed-off-by: ShyamsundarR &lt;srangana@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=7c3cc485054e4ede1efb358552135b432fb7047a'>glusterfsd: Memleak in glusterfsd process while  brick mux is on</a><span class='decoration'></span></td><td>Mohit Agrawal</td><td><span title='2018-02-27 07:11:15 +0000'>2018-02-27</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+0</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Problem: At the time of stopping the volume while brick multiplex is
         enabled memory is not cleanup from all server side xlators.

Solution: To cleanup memory for all server side xlators call fini
          in glusterfs_handle_terminate after send GF_EVENT_CLEANUP
          notification to top xlator.

BUG: 1544090
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;

Note: Run all test-cases in separate build (https://review.gluster.org/19574)
      with same patch after enable brick mux forcefully, all test cases are
      passed.

Change-Id: Ia10dc7f2605aa50f2b90b3fe4eb380ba9299e2fc


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=d0e7177416be3005b3f092addf0bba4dd9dc7a2d'>xlators/features/namespace: Add namespace xlator and link into brick graph</a><span class='decoration'></span></td><td>Varsha Rao</td><td><span title='2018-02-21 09:52:17 +0000'>2018-02-21</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
The following release-3.8-fb branch patch is upstreamed:
&gt; features/namespace: Add namespace xlator and link into brick graph
&gt; Commit ID: dbd30776f26e
&gt; https://review.gluster.org/#/c/18041/
&gt; By Michael Goulet &lt;mgoulet@fb.com&gt;

Changes in this patch:
Removes extra config.h and namespace.h file in namespace.c
Adds default_getspec_cbk to libglusterfs.sym
Rename dict_for_each to dict_foreach_inline
Remove fd.h header file stack.h
Add test case for truncate, open and symlink

This patch is required to forward port io-threads namespace patch.
Updates: #401

Change-Id: Ib88c95b89eecee9b8957df8a4c8712c899c761d1
Signed-off-by: Varsha Rao &lt;varao@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=e3e7cdbde5463ff6d20af52329a784ca629c6aef'>Revert "glusterfsd: Memleak in glusterfsd process while  brick mux is on"</a><span class='decoration'></span></td><td>Mohit Agrawal</td><td><span title='2018-02-19 19:30:56 +0000'>2018-02-19</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
There are still remain some code paths where cleanup is required while
brick mux is on.I will upload a new patch after resolve all code paths.

This reverts commit b313d97faa766443a7f8128b6e19f3d2f1b267dd.

BUG: 1544090
Change-Id: I26ef1d29061092bd9a409c8933d5488e968ed90e
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=b313d97faa766443a7f8128b6e19f3d2f1b267dd'>glusterfsd: Memleak in glusterfsd process while  brick mux is on</a><span class='decoration'></span></td><td>Mohit Agrawal</td><td><span title='2018-02-15 17:03:20 +0000'>2018-02-15</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+0</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Problem: At the time of stopping the volume while brick multiplex is
         enabled memory is not cleanup from all server side xlators.

Solution: To cleanup memory for all server side xlators call fini
          in glusterfs_handle_terminate after send GF_EVENT_CLEANUP
          notification to top xlator.

BUG: 1544090
Change-Id: Ifa1525e25b697371276158705026b421b4f81140
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=aa4372bf427152f671de52fc6e02b93ca09f22c7'>performance/io-threads: expose io-thread queue depths</a><span class='decoration'></span></td><td>Varsha Rao</td><td><span title='2018-02-08 17:01:12 +0000'>2018-02-08</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+27</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
The following release-3.8-fb branch patch is upstreamed:

&gt; io-stats: Expose io-thread queue depths
&gt; Commit ID: 69509ee7d2
&gt; https://review.gluster.org/#/c/18143/
&gt; By Shreyas Siravara &lt;sshreyas@fb.com&gt;

Changes in this patch:
- Replace iot_pri_t with gf_fop_pri_t
- Replace IOT_PRI_{HI, LO, NORMAL, MAX, LEAST} with
  GF_FOP_PRI_{HI, LO, NORMAL, MAX, LEAST}
- Use dict_unref() instead of dict_destroy()

This patch is required to forward port io-threads namespace patch.
Updates: #401
Change-Id: I1b47a63185a441a30fbc423ca1015df7b36c2518
Signed-off-by: Varsha Rao &lt;varao@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=cd66e4edae84033f426820e359927272ad4ae641'>debug/io-stats: io-stats options for GD2</a><span class='decoration'></span></td><td>Krutika Dhananjay</td><td><span title='2018-01-26 11:33:18 +0000'>2018-01-26</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+54</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Updates #302

Change-Id: I8e7ff391cec88ea76f63ffe05b7404bdb31eaf8e
Signed-off-by: Krutika Dhananjay &lt;kdhananj@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=a35f158f1cbe142a1f65bfc5f3c7584ec3e7bab0'>features/error-gen: update volume options for GD2</a><span class='decoration'></span></td><td>Atin Mukherjee</td><td><span title='2018-01-23 04:07:41 +0000'>2018-01-23</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+11</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Updates #302

Change-Id: I8d04bb4f46b1e53a8d176a75da2382fdbf0cfc6f
Signed-off-by: Atin Mukherjee &lt;amukherj@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=2632738aea79e61fda0381d3ac1c0a4a4560d32d'>debug/delay-gen: volume option fixes for GD2</a><span class='decoration'></span></td><td>Pranith Kumar K</td><td><span title='2018-01-03 15:07:11 +0530'>2018-01-03</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+15</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Updates #302
Change-Id: I2c7ab85364337d0bc00428e0001ddc4038e08174
Signed-off-by: Pranith Kumar K &lt;pkarampu@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=9fd17c1c3c44944ea280c4c15bad0d49b298b8a9'>posix: Introduce flags for validity of iatt members</a><span class='decoration'></span></td><td>Ravishankar N</td><td><span title='2017-12-29 17:13:25 +0000'>2017-12-29</span></td><td>1</td><td><span class='deletions'>-3</span>/<span class='insertions'>+3</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
v1 of the patch started off as adding new fields to iatt that can be
filled up using statx but the discussions were more around introducing
masks to check the validity of different fields from a RIO perspective.
To that extent, I have dropped the statx call in this version and
introduced a 64 bit mask for existing fields. The masks I have defined
are similar with the statx() flags' masks.

I have *not* changed iatt_to_stat() to use the macros IATT_TYPE_VALID,
IATT_GFID_VALID etc before blindly copying from struct iatt to struct.

Also fixed warnings in xlators because of atime/mtime/ctime seconds
field change from uint32_t to int64_t.

Change-Id: I4ac614f1e8d5c8246fc99d5bc2d2a23e7941512b
Signed-off-by: Ravishankar N &lt;ravishankar@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=415e0bcc80b350fc75f325b490560f44ba419b20'>all: Simplify component message id's definition</a><span class='decoration'></span></td><td>Xavier Hernandez</td><td><span title='2017-12-14 02:33:51 +0000'>2017-12-14</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+10</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
This patch creates a new way of defining message id's that is easier
and less error prone because it doesn't require so many manual changes
each time a new component is defined or a new message created.

Change-Id: I71ba8af9ac068f5add7e74f316a2478bc991c67b
Signed-off-by: Xavier Hernandez &lt;jahernan@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=430484c92ab5a6234958d1143e0bb14aeb0cd1c0'>glusterfs: Use gcc builtin ATOMIC operator to increase/decreate refcount.</a><span class='decoration'></span></td><td>Mohit Agrawal</td><td><span title='2017-12-12 09:05:56 +0000'>2017-12-12</span></td><td>1</td><td><span class='deletions'>-17</span>/<span class='insertions'>+12</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Problem: In glusterfs code base we call mutex_lock/unlock to take
         reference/dereference for a object.Sometime it could be
         reason for lock contention also.

Solution: There is no need to use mutex to increase/decrease ref
          counter, instead of using mutex use gcc builtin ATOMIC
          operation.

Test:   I have not observed yet how much performance gain after apply
        this patch specific to glusterfs but i have tested same
        with below small program(mutex and atomic both) and
        get good difference.

static int numOuterLoops;
static void *
threadFunc(void *arg)
{
    int j;

    for (j = 0; j &lt; numOuterLoops; j++) {
            __atomic_add_fetch (&amp;glob, 1,__ATOMIC_ACQ_REL);
    }
    return NULL;
}

int
main(int argc, char *argv[])
{
    int opt, s, j;
    int numThreads;
    pthread_t *thread;
    int verbose;
    int64_t n = 0;

    if (argc &lt; 2 ) {
     printf(" Please provide 2 args Num of threads &amp;&amp; Outer Loop\n");
     exit (-1);
    }
    numThreads = atoi(argv[1]);
    numOuterLoops = atoi (argv[2]);

    if (1) {
        printf("\tthreads: %d; outer loops: %d;\n",
                numThreads, numOuterLoops);
    }

    thread = calloc(numThreads, sizeof(pthread_t));
    if (thread == NULL) {
        printf ("calloc error so exit\n");
        exit (-1);
    }

    __atomic_store (&amp;glob, &amp;n, __ATOMIC_RELEASE);
    for (j = 0; j &lt; numThreads; j++) {
        s = pthread_create(&amp;thread[j], NULL, threadFunc, NULL);
        if (s != 0) {
            printf ("pthread_create failed so exit\n");
            exit (-1);
        }
    }

    for (j = 0; j &lt; numThreads; j++) {
        s = pthread_join(thread[j], NULL);
        if (s != 0) {
            printf ("pthread_join failed so exit\n");
            exit (-1);
        }
    }
    printf("glob value is %ld\n",__atomic_load_n (&amp;glob,__ATOMIC_RELAXED));

    exit(0);
}

   time ./thr_count 800 800000
   threads: 800; outer loops: 800000;
   glob value is 640000000

real	1m10.288s
user	0m57.269s
sys	3m31.565s

time ./thr_count_atomic 800 800000
     threads: 800; outer loops: 800000;
glob value is 640000000

real	0m20.313s
user	1m20.558s
sys	0m0.028

Change-Id: Ie5030a52ea264875e002e108dd4b207b15ab7cc7
Signed-off-by: Mohit Agrawal &lt;moagrawa@redhat.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=aeff5def7e11de418d55f996926cbd5818c0494d'>debug/io-stats: Adding stat for weighted &amp; unweighted average latency</a><span class='decoration'></span></td><td>Richard Wareing</td><td><span title='2017-12-09 04:04:44 +0000'>2017-12-09</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+32</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
Summary:
- Our current approach to measuring "average fop latency" is badly
  flawed in that it doesn't weight the FOPs correctly according to how
  many occurred in the time interval.  This makes Statisticians very
  sad.  This patch adds an internally computed weighted average
  latency which will be far more efficient to display via ODS, as well
  as having the benefit of not being complete nonsense.

Reviewers: kvigor, dph, sshreyas

Reviewed By: sshreyas

Change-Id: Ie3618f279b545610b7ed1a8482243fcc8dc53217
BUG: 1523353
Reviewed-on: https://review.gluster.org/18192
Reviewed-by: Shreyas Siravara &lt;sshreyas@fb.com&gt;
Smoke: Gluster Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.org&gt;
Signed-off-by: Ana M. Neri &lt;amnerip@fb.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=28202631fecbc3b20a55cfc5fa339663db37e955'>libglusterfs: specify ctx in gf_log_set_loglevel</a><span class='decoration'></span></td><td>Zhang Huan</td><td><span title='2017-12-06 23:45:23 +0000'>2017-12-06</span></td><td>2</td><td><span class='deletions'>-3</span>/<span class='insertions'>+3</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
specify ctx in gf_log_set_loglevel, instead of getting it from a thread
specific variable.

Change-Id: I498f826e8e32231235a6b0005026a27c327727fd
BUG: 1521213
Signed-off-by: Zhang Huan &lt;zhanghuan@open-fs.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=aaef7e0d214b94a798b727af125006d07335b53c'>Revert "debug/io-stats: Append stats for each interval in the same file"</a><span class='decoration'></span></td><td>cholcombe973</td><td><span title='2017-11-20 18:33:52 +0000'>2017-11-20</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr class='nohover-highlight'><td class='commitgraph'><span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> 
<span class='column1'>|</span> </td>
<td colspan='5' class='logmsg'>
This reverts commit fc73ae5f81ef5926e3dc2311db116250d0f2a321.
See bug: https://bugzilla.redhat.com/show_bug.cgi?id=1513692

Change-Id: I00d5989b042d4e345621c596d5370d324948557f
Bug: 1513692
Signed-off-by: Chris Holcombe &lt;xfactor973@gmail.com&gt;


</td></tr>
<tr class='logheader'><td class='commitgraph'>* </td><td class='logsubject'><a href='/cgit/glusterfs.git/commit/xlators/debug?id=3f8d118e48f11f448f35aca0c48ad40e0fd34f5b'>libglusterfs/atomic: Improved atomic support</a><span class='decoration'></span></td><td>Xavier Hernandez</td><td><span title='2017-11-14 05:22:00 +0000'>2017-11-14</span>