<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/nfs/server/src, branch v3.1.0qa2</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<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>
<entry>
<title>mount3: Handle &lt;volname&gt; as well for unmount dirpath</title>
<updated>2010-06-01T07:23:54+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-05-31T22:43:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=91afbb094ce97fb8f8183227cd56410ad3746449'/>
<id>91afbb094ce97fb8f8183227cd56410ad3746449</id>
<content type='text'>
Till now nfsx would crash if the export was mounted simply as
&lt;volname&gt; as compared to the traditional method of /&lt;volname&gt;.

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

BUG: 944 (vmware unmount crashes nfsx)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=944
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Till now nfsx would crash if the export was mounted simply as
&lt;volname&gt; as compared to the traditional method of /&lt;volname&gt;.

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

BUG: 944 (vmware unmount crashes nfsx)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=944
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Special-case the lookup for parent dir of root</title>
<updated>2010-06-01T07:23:51+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-05-31T22:43:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=7cda6661979dfec1614575a9729b84cbf49e6b25'/>
<id>7cda6661979dfec1614575a9729b84cbf49e6b25</id>
<content type='text'>
When a lookup request comes in for (rootfh, ".."), we need to handle
it in a way that returns the attributes and handle of the root dir.
Not doing so crashes nfsx because the inode table is not able to
find a inode for the root's parent. This inode was being referenced in
nfs3_lookup_parentdir_resume when filling a loc for the lookup fop.

For the record, such a lookup request is sent by vmkernel.

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

BUG: 942 (NFS crashes as a vmware ESX data store)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=942
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a lookup request comes in for (rootfh, ".."), we need to handle
it in a way that returns the attributes and handle of the root dir.
Not doing so crashes nfsx because the inode table is not able to
find a inode for the root's parent. This inode was being referenced in
nfs3_lookup_parentdir_resume when filling a loc for the lookup fop.

For the record, such a lookup request is sent by vmkernel.

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

BUG: 942 (NFS crashes as a vmware ESX data store)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=942
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Funge . and .. ino/gen in readdir of root</title>
<updated>2010-06-01T07:23:46+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-05-31T22:43:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=da08199c57cedb3dc922ed6bec07932cd2aefabd'/>
<id>da08199c57cedb3dc922ed6bec07932cd2aefabd</id>
<content type='text'>
In the readdir reply for the root of the export, replace the ino
and gen number for the . and .. entries with 1 and 0 respectively.
On clients which inspect this field, the client will error out due
to the change in inode number of the root directory when see for "."

.. also needs to be replaced because we do not have a concept of
the parent directory of root. The return of 1 and 0 is the same as
the behaviour of: stat /.. command.

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

BUG: 942 (NFS crashes as a vmware ESX data store)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=942
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the readdir reply for the root of the export, replace the ino
and gen number for the . and .. entries with 1 and 0 respectively.
On clients which inspect this field, the client will error out due
to the change in inode number of the root directory when see for "."

.. also needs to be replaced because we do not have a concept of
the parent directory of root. The return of 1 and 0 is the same as
the behaviour of: stat /.. command.

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

BUG: 942 (NFS crashes as a vmware ESX data store)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=942
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs: Introduce trusted-write and trusted-sync options</title>
<updated>2010-05-21T07:32:04+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-05-18T01:37:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=c705b679fbe41aa9ac4486ebf46d3b2ae95d1628'/>
<id>c705b679fbe41aa9ac4486ebf46d3b2ae95d1628</id>
<content type='text'>
Introduces two new options:

1. nfs3.*.trusted-write: Forces UNSTABLE writes to return STABLE to NFS
clients to prevent the clients from sending a COMMIT. STABLE writes
are still handled in a sync manner and so are COMMITs if they're sent
at all.

2. nfs3.*.trusted-sync: Forces all WRITEs and COMMITs to return STABLE
return flags to NFS clients to avoid the overhead of STABLE writes, and
COMMITs that follow UNSTABLE writes. This includes the trusted-write
functionality. In addition to the trusted-write, it also writes
STABLE writes in an UNSTABLE manner.

Both violate the NFS protocol but allow better write perf in most
configurations. Use with caution.

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

BUG: 924 (Slow NFS synchronous writes)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=924
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduces two new options:

1. nfs3.*.trusted-write: Forces UNSTABLE writes to return STABLE to NFS
clients to prevent the clients from sending a COMMIT. STABLE writes
are still handled in a sync manner and so are COMMITs if they're sent
at all.

2. nfs3.*.trusted-sync: Forces all WRITEs and COMMITs to return STABLE
return flags to NFS clients to avoid the overhead of STABLE writes, and
COMMITs that follow UNSTABLE writes. This includes the trusted-write
functionality. In addition to the trusted-write, it also writes
STABLE writes in an UNSTABLE manner.

Both violate the NFS protocol but allow better write perf in most
configurations. Use with caution.

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

BUG: 924 (Slow NFS synchronous writes)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=924
</pre>
</div>
</content>
</entry>
</feed>
