<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/nfs/server/src, branch v3.1.0qa3</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>nfs3: NULL fdentry check before removing from fdcache</title>
<updated>2010-07-28T10:10:02+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-07-28T03:51:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=b2b6281e3487d3d797ab7974df69790a28c443c9'/>
<id>b2b6281e3487d3d797ab7974df69790a28c443c9</id>
<content type='text'>
Suppose a file name 1 is created and some data is written to it. After this
another 512 files are newly created and written to. When the the 513th file is
created and an fd_t opened for it, it results in 1's fd_t being replaced in the
fd-lru with 513th file's fd_t. This is the correct behaviour resulting in all
refs getting unref from the fd_t of 1 and the fd and all related state being
freed.

But, in some workloads, some refs are still pending even after the fd_t is
removed from LRU, resulting in the fd still being bound to the inode. In
nfs3svc_remove_cbk, while removing the inode state, we also ensure that any
fd_ts in the cache for this inode are also removed. While removing the fd_t,
this situation where the fd_t has replaced with another, even while a ref
remains on the fd_t, results in a crash in the fdcache_remove path in
nfs3svc_remove_cbk. This happens because the fd_ctx_get results in a NULL value
because the ctx was already deleted when this fd_t was removed from fd-lru
earlier. This patch fixes the crash by introducing a NULL check.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 885 ([NFS Xlator] Crash in nfs3_fdcache_update)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=885
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Suppose a file name 1 is created and some data is written to it. After this
another 512 files are newly created and written to. When the the 513th file is
created and an fd_t opened for it, it results in 1's fd_t being replaced in the
fd-lru with 513th file's fd_t. This is the correct behaviour resulting in all
refs getting unref from the fd_t of 1 and the fd and all related state being
freed.

But, in some workloads, some refs are still pending even after the fd_t is
removed from LRU, resulting in the fd still being bound to the inode. In
nfs3svc_remove_cbk, while removing the inode state, we also ensure that any
fd_ts in the cache for this inode are also removed. While removing the fd_t,
this situation where the fd_t has replaced with another, even while a ref
remains on the fd_t, results in a crash in the fdcache_remove path in
nfs3svc_remove_cbk. This happens because the fd_ctx_get results in a NULL value
because the ctx was already deleted when this fd_t was removed from fd-lru
earlier. This patch fixes the crash by introducing a NULL check.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 885 ([NFS Xlator] Crash in nfs3_fdcache_update)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=885
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Error returns must check for &lt;0, not == -1</title>
<updated>2010-07-28T09:24:45+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-07-27T06:16:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=045efc1f5d59d98fff28ea29039ead4015fe1e6b'/>
<id>045efc1f5d59d98fff28ea29039ead4015fe1e6b</id>
<content type='text'>
Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Return ESTALE when fh resolver exhausts dirents</title>
<updated>2010-07-28T09:24:41+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-07-27T06:16:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=ba98d9f472979d4bd648933b7940eb20e3c82116'/>
<id>ba98d9f472979d4bd648933b7940eb20e3c82116</id>
<content type='text'>
During hard fh resolution, if a directory traversal goes right
through to end-of-dir without finding a hash match, we need to return
an ESTALE, not ENOENT.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
During hard fh resolution, if a directory traversal goes right
through to end-of-dir without finding a hash match, we need to return
an ESTALE, not ENOENT.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Stop ESTALE from falling into SERVERFAULT</title>
<updated>2010-07-28T09:24:37+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-07-27T06:16:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=5e67bfb1dbb279e210d7ad1310818ef4a08ab913'/>
<id>5e67bfb1dbb279e210d7ad1310818ef4a08ab913</id>
<content type='text'>
Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 854 (nfs server didn't start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=854
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Fix race updating op queue on uncached fd open</title>
<updated>2010-07-06T12:58:52+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-07-04T06:20:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=4e14d858bc51f99d89880364249344e1b957f400'/>
<id>4e14d858bc51f99d89880364249344e1b957f400</id>
<content type='text'>
The order of locking while performing async fd opens was resulting in
a deadlock when a particular pattern of operations was generated by
compilebench. This patch improves handling of those situations while
locking the fd-cache, inode and inode queue.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 1047 (Compilebench hangs nfs server)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1047
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The order of locking while performing async fd opens was resulting in
a deadlock when a particular pattern of operations was generated by
compilebench. This patch improves handling of those situations while
locking the fd-cache, inode and inode queue.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 1047 (Compilebench hangs nfs server)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1047
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: Assign incremental lk owner to frames</title>
<updated>2010-07-05T05:52:55+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-06-15T00:39:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=43cdbc3756bde8c4c95dd3c3a89c802ec204c847'/>
<id>43cdbc3756bde8c4c95dd3c3a89c802ec204c847</id>
<content type='text'>
Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 960 (Disk space leakage and fs corruption after VMs are vmotion'ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=960
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 960 (Disk space leakage and fs corruption after VMs are vmotion'ed)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=960
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: Support directory level exports</title>
<updated>2010-07-05T05:52:51+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-06-15T00:39:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=a8ef67630c48dfec336cc2088ac78cb29074022c'/>
<id>a8ef67630c48dfec336cc2088ac78cb29074022c</id>
<content type='text'>
nfsx has followed traditional approach of exporting whole volumes
as NFS exports. The Platform requires and some users have approached us for
introducing exports of only specific directories instead of full Gluster
volumes. This commit introduces this support through two nfsx options:

Option 1:

=========
option nfs3.&lt;volume-name&gt;.export-dir &lt;subdir1-in-vol&gt;,&lt;subdir2-in-vol&gt;,..&lt;subdirN-in-vol&gt;

export-dir will allow the export of a particular dir as a single export
by itself. For eg.:

volume posix
        type storage/posix
        option directory /export/
end-volume

volume posix-ac
        type features/access-control
        subvolumes posix
end-volume

volume nfs
        type nfs/server
        subvolumes posix-ac
        option rpc-auth.addr.allow *
        option nfs3.posix-ac.export-dir /homes/shehjart
end-volume

A comma separate list of sub-directories will set up those dirs as separated exports.
At the nfs client, the mount command will be:

$ mount &lt;nfsserver&gt;:/posix-ac/homes/shehjart /mnt

Option 2:
=========
option nfs3.&lt;volume-name&gt;.export-volumes &lt;on|off&gt;

There can be situations where users only want the directory level
exports and require that volume exports be completely disabled. The
above option allows us to do this. By default, volume exports are
enabled. From the earlier example, replacing &lt;volume-name&gt; with
posix-ac, will disable mounting of the posix-ac volume as a whole.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 989 (Support directory exports in nfsx)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=989
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nfsx has followed traditional approach of exporting whole volumes
as NFS exports. The Platform requires and some users have approached us for
introducing exports of only specific directories instead of full Gluster
volumes. This commit introduces this support through two nfsx options:

Option 1:

=========
option nfs3.&lt;volume-name&gt;.export-dir &lt;subdir1-in-vol&gt;,&lt;subdir2-in-vol&gt;,..&lt;subdirN-in-vol&gt;

export-dir will allow the export of a particular dir as a single export
by itself. For eg.:

volume posix
        type storage/posix
        option directory /export/
end-volume

volume posix-ac
        type features/access-control
        subvolumes posix
end-volume

volume nfs
        type nfs/server
        subvolumes posix-ac
        option rpc-auth.addr.allow *
        option nfs3.posix-ac.export-dir /homes/shehjart
end-volume

A comma separate list of sub-directories will set up those dirs as separated exports.
At the nfs client, the mount command will be:

$ mount &lt;nfsserver&gt;:/posix-ac/homes/shehjart /mnt

Option 2:
=========
option nfs3.&lt;volume-name&gt;.export-volumes &lt;on|off&gt;

There can be situations where users only want the directory level
exports and require that volume exports be completely disabled. The
above option allows us to do this. By default, volume exports are
enabled. From the earlier example, replacing &lt;volume-name&gt; with
posix-ac, will disable mounting of the posix-ac volume as a whole.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 989 (Support directory exports in nfsx)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=989
</pre>
</div>
</content>
</entry>
<entry>
<title>NULL dereference fixes in code base after running with 'clang'</title>
<updated>2010-07-02T12:17:03+00:00</updated>
<author>
<name>Amar Tumballi</name>
<email>amar@gluster.com</email>
</author>
<published>2010-07-02T04:55:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=2f15ffd6b5beef9abd501c594bc3cb38c2683f77'/>
<id>2f15ffd6b5beef9abd501c594bc3cb38c2683f77</id>
<content type='text'>
* 212 logical (NULL deref/divide by zero) errors reduced to 28
  (27 of them in contrib/ and lex part of codebase, 1 is invalid)
* 11 API errors reduced to 0

Signed-off-by: Amar Tumballi &lt;amar@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 966 (NULL check for avoiding NULL dereferencing of pointers..)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=966
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 212 logical (NULL deref/divide by zero) errors reduced to 28
  (27 of them in contrib/ and lex part of codebase, 1 is invalid)
* 11 API errors reduced to 0

Signed-off-by: Amar Tumballi &lt;amar@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 966 (NULL check for avoiding NULL dereferencing of pointers..)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=966
</pre>
</div>
</content>
</entry>
<entry>
<title>mem-types: include *-mem-types.h in noinst_HEADERS variables in all Makefile.am</title>
<updated>2010-06-08T12:25:07+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@gluster.com</email>
</author>
<published>2010-06-08T06:03:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=a912b145157beb1700250872d672bb03fffe658f'/>
<id>a912b145157beb1700250872d672bb03fffe658f</id>
<content type='text'>
Signed-off-by: Anand V. Avati &lt;avati@blackhole.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 329 (Replacing memory allocation functions with mem-type functions)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=329
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Anand V. Avati &lt;avati@blackhole.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 329 (Replacing memory allocation functions with mem-type functions)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=329
</pre>
</div>
</content>
</entry>
<entry>
<title>mount3: Handle unmount for unknown volume names</title>
<updated>2010-06-01T07:23:58+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-05-31T22:43:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=4f49c3d22599b4296e51da0d2684633904ec134e'/>
<id>4f49c3d22599b4296e51da0d2684633904ec134e</id>
<content type='text'>
In case the nfs client sends an unmount request for a volume
that does not exist anymore.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 961 (Unmount with invalid export crashes nfsx)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=961
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case the nfs client sends an unmount request for a volume
that does not exist anymore.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 961 (Unmount with invalid export crashes nfsx)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=961
</pre>
</div>
</content>
</entry>
</feed>
