<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/nfs/server/src/nfs3-helpers.c, branch v3.1.0alpha</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>gfid: changes in inode management</title>
<updated>2010-09-04T08:45:06+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@gluster.com</email>
</author>
<published>2010-09-03T13:58:48+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=ac60a2a7f3c7b07830669e282d9fc796cbc78f38'/>
<id>ac60a2a7f3c7b07830669e282d9fc796cbc78f38</id>
<content type='text'>
- incorporate usage of uuid (gfid) as the key for finding inodes
- deprecate inode number/generation number based inode_get
- undo code specific to generation numbers (attic list etc.)

Signed-off-by: Anand V. Avati &lt;avati@blackhole.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 971 (dynamic volume management)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- incorporate usage of uuid (gfid) as the key for finding inodes
- deprecate inode number/generation number based inode_get
- undo code specific to generation numbers (attic list etc.)

Signed-off-by: Anand V. Avati &lt;avati@blackhole.gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 971 (dynamic volume management)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Return ESTALE when going beyond fh-hashcount or max-hashes</title>
<updated>2010-08-31T14:44:38+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-08-31T06:50:31+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=83e7543be0bf8941cb6383c7e23b9bc0f54e67ba'/>
<id>83e7543be0bf8941cb6383c7e23b9bc0f54e67ba</id>
<content type='text'>
During fh resolution, if we go beyond the max hashes support by
gnfs or if we go beyond the dir depth specified in the filehandle,
then return ESTALE.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1378 (Deep directory creation crashes gnfs)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1378
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
During fh resolution, if we go beyond the max hashes support by
gnfs or if we go beyond the dir depth specified in the filehandle,
then return ESTALE.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1378 (Deep directory creation crashes gnfs)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1378
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Logging and comments made more accurate</title>
<updated>2010-08-31T14:44:33+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-08-31T06:50:30+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=0f40d735c09f2fb09bcf0d1678250e70a40ca56f'/>
<id>0f40d735c09f2fb09bcf0d1678250e70a40ca56f</id>
<content type='text'>
Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1378 (Deep directory creation crashes gnfs)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1378
</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: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1378 (Deep directory creation crashes gnfs)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1378
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Unref dir fd once usage ends in hard fh resolution</title>
<updated>2010-08-31T14:44:21+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-08-31T06:50:28+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=217fb3e2acbb221668ad5d54ef4067a2bac47c4a'/>
<id>217fb3e2acbb221668ad5d54ef4067a2bac47c4a</id>
<content type='text'>
There are three conditions when a dir fd_t needs to be unrefed
when:

a. the inode being searched is found as the candidate entry,
b. we have exhausted all the entries in the current dir,
c. we decide to step into a child directory because of a hash
match.

This decision is made in nfs3_fh_resolve_check_response.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1397 (Cached dir fd_ts are a leakin')
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1397
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are three conditions when a dir fd_t needs to be unrefed
when:

a. the inode being searched is found as the candidate entry,
b. we have exhausted all the entries in the current dir,
c. we decide to step into a child directory because of a hash
match.

This decision is made in nfs3_fh_resolve_check_response.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1397 (Cached dir fd_ts are a leakin')
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1397
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Dont ref dir fd_t used in hard fh resolution</title>
<updated>2010-08-31T14:44:18+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-08-31T06:50:27+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=e1422d796fefd6a3ae599507e71efdb922eede02'/>
<id>e1422d796fefd6a3ae599507e71efdb922eede02</id>
<content type='text'>
..because the extra ref was under the mistaken assumption that
directory fd_t will be cached even during hard fh resolution and
that is not the case.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1397 (Cached dir fd_ts are a leakin')
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1397
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
..because the extra ref was under the mistaken assumption that
directory fd_t will be cached even during hard fh resolution and
that is not the case.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1397 (Cached dir fd_ts are a leakin')
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1397
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs3: Dont ref cached fd after fd_lookup</title>
<updated>2010-08-31T14:44:11+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-08-31T06:50:26+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=713fd9536459f730450fc06177c0feea6d6bdd28'/>
<id>713fd9536459f730450fc06177c0feea6d6bdd28</id>
<content type='text'>
..because fd_lookup returns a ref'd fd_t.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1397 (Cached dir fd_ts are a leakin')
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1397
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
..because fd_lookup returns a ref'd fd_t.

Signed-off-by: Shehjar Tikoo &lt;shehjart@gluster.com&gt;
Signed-off-by: Vijay Bellur &lt;vijay@dev.gluster.com&gt;

BUG: 1397 (Cached dir fd_ts are a leakin')
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1397
</pre>
</div>
</content>
</entry>
<entry>
<title>xlators/nfs: nfs3-helpers.c remove dead assignments.</title>
<updated>2010-08-23T05:27:35+00:00</updated>
<author>
<name>Sachidananda</name>
<email>sac@gluster.com</email>
</author>
<published>2010-08-17T05:19:04+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=37ec7db018979d04d02ae5670b53dbed7a498ba8'/>
<id>37ec7db018979d04d02ae5670b53dbed7a498ba8</id>
<content type='text'>
Signed-off-by: Sachidananda Urs &lt;sac@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 1115 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1115
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Sachidananda Urs &lt;sac@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 1115 ()
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1115
</pre>
</div>
</content>
</entry>
<entry>
<title>nfs, nfs/rpc: Rename functions to prevent gfrpcsvc conflict</title>
<updated>2010-08-10T09:44:22+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2010-08-10T02:41:54+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=0af39ff8d03173a7ba3df1b13476b7ed447131aa'/>
<id>0af39ff8d03173a7ba3df1b13476b7ed447131aa</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: 1274 (nfs fails to start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1274
</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: 1274 (nfs fails to start)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1274
</pre>
</div>
</content>
</entry>
<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://dev.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: 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://dev.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>
</feed>
