<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/libglusterfsclient, branch v2.0.5</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>libglusterfsclient: Avoid overwrite of inode found through ino number</title>
<updated>2009-07-23T22:20:16+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-07-23T16:19:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=bea6b86ef6defba89274ef85667c56cb52c17d7b'/>
<id>bea6b86ef6defba89274ef85667c56cb52c17d7b</id>
<content type='text'>
In libgf_client_loc_fill, there is a possibility that all
the ino, par and name are specified as non-NULL,non-zero args.

So if an inode is located in the itable using the ino and the
subsequent search for the inode using the par-ino and the file
name does not result in an inode being found, the current
code over-writes the inode that was found through the ino. The
correct behaviour is to stop further searches if inode
was already found using ino.

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

BUG: 161 (unfs3 crashes on link system call by fileop)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In libgf_client_loc_fill, there is a possibility that all
the ino, par and name are specified as non-NULL,non-zero args.

So if an inode is located in the itable using the ino and the
subsequent search for the inode using the par-ino and the file
name does not result in an inode being found, the current
code over-writes the inode that was found through the ino. The
correct behaviour is to stop further searches if inode
was already found using ino.

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

BUG: 161 (unfs3 crashes on link system call by fileop)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Fill new loc with target's ino on link</title>
<updated>2009-07-23T22:20:12+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-07-23T16:18:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=c2733b13aaa6d38eb165e770a936f8bfc19bc685'/>
<id>c2733b13aaa6d38eb165e770a936f8bfc19bc685</id>
<content type='text'>
In the loc_t of the link being created, we must fill in the inode
of the old/target loc since this is a link operation. The
inode_link to the new parent is called in libgf_client_link.

This fixes a crash while running fileop over a fully-loaded
dist-repl vol file.
Ref: Bugzilla 161

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

BUG: 161 (unfs3 crashes on link system call by fileop)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the loc_t of the link being created, we must fill in the inode
of the old/target loc since this is a link operation. The
inode_link to the new parent is called in libgf_client_link.

This fixes a crash while running fileop over a fully-loaded
dist-repl vol file.
Ref: Bugzilla 161

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

BUG: 161 (unfs3 crashes on link system call by fileop)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=161
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Fake a fsid for every VMP</title>
<updated>2009-07-20T21:29:41+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-07-20T01:25:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=2add5760c412d85f56a1ca2fc61ca743d1ee2a74'/>
<id>2add5760c412d85f56a1ca2fc61ca743d1ee2a74</id>
<content type='text'>
This is needed to work around the replicate behaviour of
possibly returning device number for the same file from

different subvolumes.

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

BUG: 148 (replicate: Returns st_dev from different subvols resulting in ESTALE thru unfs3booster)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=148
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is needed to work around the replicate behaviour of
possibly returning device number for the same file from

different subvolumes.

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

BUG: 148 (replicate: Returns st_dev from different subvols resulting in ESTALE thru unfs3booster)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=148
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Move DHT root-lookup workaround to init</title>
<updated>2009-07-20T21:29:37+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-07-19T03:25:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=7b90b90780d3bb5a1b4a1c060fac1d2c4eb2a8dc'/>
<id>7b90b90780d3bb5a1b4a1c060fac1d2c4eb2a8dc</id>
<content type='text'>
The workaround for the DHT requirement for a lookup on /
needs to be done only once when the xlator graph is inited.
Doing it on every path's lookup results in a major performance
penalty when using distribute subvolumes upwards of 16, as reported
by Avati.

Ref: bug 152

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

BUG: 152 (libglusterfsclient: DHT workaround is a major performance bottleneck)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=152
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The workaround for the DHT requirement for a lookup on /
needs to be done only once when the xlator graph is inited.
Doing it on every path's lookup results in a major performance
penalty when using distribute subvolumes upwards of 16, as reported
by Avati.

Ref: bug 152

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

BUG: 152 (libglusterfsclient: DHT workaround is a major performance bottleneck)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=152
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Invalidate not update iattr cache on writev</title>
<updated>2009-07-17T19:01:29+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-07-17T08:47:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=dbccda35cdcad06208e2fc7554287b539e0060a6'/>
<id>dbccda35cdcad06208e2fc7554287b539e0060a6</id>
<content type='text'>
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 149 (libglusterfsclient interacts incorrectly with write-behind on writev)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=149
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 149 (libglusterfsclient interacts incorrectly with write-behind on writev)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=149
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Update attr cache on read/write</title>
<updated>2009-07-07T23:24:53+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-07-02T06:20:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=428d17946b5bb5946996f045811fdc2393378737'/>
<id>428d17946b5bb5946996f045811fdc2393378737</id>
<content type='text'>
We werent updating the attr AKA stat cache on read and write
on files so every stat on the file before the timeout was returning
stale attr from the cache. Yuck!

This fixes it. Turns out there is a good aspect of unfs3's notoriety
when it comes to doing stat()s for every operation.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We werent updating the attr AKA stat cache on read and write
on files so every stat on the file before the timeout was returning
stale attr from the cache. Yuck!

This fixes it. Turns out there is a good aspect of unfs3's notoriety
when it comes to doing stat()s for every operation.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Use O_ACCMODE for access mode checks</title>
<updated>2009-07-02T17:14:48+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-07-02T00:52:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=cf87dfa3f44172635b9d071c83cd2fcd2479c668'/>
<id>cf87dfa3f44172635b9d071c83cd2fcd2479c668</id>
<content type='text'>
Ref: http://www.gnu.org/s/libc/manual/html_node/Access-Modes.html

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ref: http://www.gnu.org/s/libc/manual/html_node/Access-Modes.html

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Fix glusterfs_mount-vmp search deadlock</title>
<updated>2009-06-30T22:24:53+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-06-26T13:05:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=e4a4d04a691a27c1e52e8e0f78458fb4ebf00912'/>
<id>e4a4d04a691a27c1e52e8e0f78458fb4ebf00912</id>
<content type='text'>
It is possible that the only translator in the libglusterfsclient
tree is the posix. In that case, inside gluster_init, the graph
init routines will need to call lstat on the posix subdirectory.

Since even the glusterfs stack is running over booster, those
calls will also first require vmp searching. BUT, the vmp lock
is the same as the mount lock that was already taken when we entered
glusterfs_mount, so a deadlock occurs.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is possible that the only translator in the libglusterfsclient
tree is the posix. In that case, inside gluster_init, the graph
init routines will need to call lstat on the posix subdirectory.

Since even the glusterfs stack is running over booster, those
calls will also first require vmp searching. BUT, the vmp lock
is the same as the mount lock that was already taken when we entered
glusterfs_mount, so a deadlock occurs.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: reset the vmplist and vmpentries to 0 in glusterfs_reset</title>
<updated>2009-06-30T21:36:26+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@zresearch.com</email>
</author>
<published>2009-06-10T07:02:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=804714c01420102e08882e138d9d7071e17ad355'/>
<id>804714c01420102e08882e138d9d7071e17ad355</id>
<content type='text'>
- Generally glusterfs_reset is called after fork in child to empty out
    vmplist.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Generally glusterfs_reset is called after fork in child to empty out
    vmplist.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: implement glusterfs_fcntl.</title>
<updated>2009-06-30T21:36:25+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@zresearch.com</email>
</author>
<published>2009-06-10T07:01:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=84a3008991235a14291706e5dbdaa2e5767b8f32'/>
<id>84a3008991235a14291706e5dbdaa2e5767b8f32</id>
<content type='text'>
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
