<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/libglusterfsclient/src/libglusterfsclient-dentry.c, branch v3.1.0qa6</title>
<subtitle>GlusterFS is a distributed file-system capable of scaling to several petabytes. It aggregates various storage bricks over Infiniband RDMA or TCP/IP interconnect into one large parallel network file system.</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/'/>
<entry>
<title>libglusterfsclient: fix __do_path_resolve to return zero if the path happens to be resolved in path_to_parenti.</title>
<updated>2009-11-19T05:14:41+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@gluster.com</email>
</author>
<published>2009-11-18T01:17:36+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=8d22d68815fbd27e7ef1b4b2f5bb70c3d82ddb96'/>
<id>8d22d68815fbd27e7ef1b4b2f5bb70c3d82ddb96</id>
<content type='text'>
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 369 (Samba does not work with booster.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;

BUG: 369 (Samba does not work with booster.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=369
</pre>
</div>
</content>
</entry>
<entry>
<title>Changed occurrences of Z Research to Gluster.</title>
<updated>2009-10-07T10:54:49+00:00</updated>
<author>
<name>Vijay Bellur</name>
<email>vijay@gluster.com</email>
</author>
<published>2009-10-05T23:59:13+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=0b1197defa255ee533e568c9534bc6a5b5aadc29'/>
<id>0b1197defa255ee533e568c9534bc6a5b5aadc29</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>
<entry>
<title>libglusterfsclient: Re-validate root inode on every path resolution</title>
<updated>2009-09-24T08:18:46+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-09-24T01:01:00+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=03764d0d308b46ebfa53d21df1d49a549c459e64'/>
<id>03764d0d308b46ebfa53d21df1d49a549c459e64</id>
<content type='text'>
If the root inode's is outdated, send a revalidate on it.
A revalidate on root inode also reduces the window in which an
op will fail over distribute because the layout of the root
directory did not  get constructed when we sent the lookup on
root in glusterfs_init. That can happen when not all children of a
distribute volume were up at the time of glusterfs_init.

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

BUG: 256 (revalidates should be sent on '/' in libglusterfsclient.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=256
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the root inode's is outdated, send a revalidate on it.
A revalidate on root inode also reduces the window in which an
op will fail over distribute because the layout of the root
directory did not  get constructed when we sent the lookup on
root in glusterfs_init. That can happen when not all children of a
distribute volume were up at the time of glusterfs_init.

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

BUG: 256 (revalidates should be sent on '/' in libglusterfsclient.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=256
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Move DHT root-lookup workaround to init</title>
<updated>2009-07-20T21:29:26+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-07-19T03:26:13+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=a12f332cff050db3aa3905436158cbd339fa6963'/>
<id>a12f332cff050db3aa3905436158cbd339fa6963</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: Simplify inode and stat caching</title>
<updated>2009-06-03T07:25:55+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@gluster.com</email>
</author>
<published>2009-06-03T01:31:37+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=bc99744f209d2c6905f858e9ab44d09fb661e94a'/>
<id>bc99744f209d2c6905f858e9ab44d09fb661e94a</id>
<content type='text'>
There is a mechanism for caching the inode numbers got from a lookup
and a struct stat got from a stat or fstat but I wasnt sure if it worked.
This commit simplifies cache updates and checks and the accompanying
tests have made sure that the cache does work.

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>
There is a mechanism for caching the inode numbers got from a lookup
and a struct stat got from a stat or fstat but I wasnt sure if it worked.
This commit simplifies cache updates and checks and the accompanying
tests have made sure that the cache does work.

Signed-off-by: Anand V. Avati &lt;avati@dev.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: __do_path_resolve: Fix pathname resolution bug</title>
<updated>2009-05-18T13:43:12+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@zresearch.com</email>
</author>
<published>2009-05-11T12:54:34+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=95ce0a87f5fbb139f7002360d63a005bfb9c097d'/>
<id>95ce0a87f5fbb139f7002360d63a005bfb9c097d</id>
<content type='text'>
In __do_path_resolve, we need to use the new_loc.path as the input
for resolution rather than the resolved variable, simply because we're
not interested in resolving the names that have been resolved, as
pointed out by the variable name 'resolved'. Instead, we need to resolve
new_loc, which stores the next component in the path to
be looked up.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In __do_path_resolve, we need to use the new_loc.path as the input
for resolution rather than the resolved variable, simply because we're
not interested in resolving the names that have been resolved, as
pointed out by the variable name 'resolved'. Instead, we need to resolve
new_loc, which stores the next component in the path to
be looked up.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Fix segfault on non-NULL loc-&gt;name</title>
<updated>2009-04-17T07:48:16+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@zresearch.com</email>
</author>
<published>2009-04-17T06:52:27+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=ba4833355a1ee77f828b538a357e07c46f36b037'/>
<id>ba4833355a1ee77f828b538a357e07c46f36b037</id>
<content type='text'>
The gf_log message actually assumes that loc-&gt;name will have a valid
non-NULL name in it, whereas if the loc_t being passed to it was
actually created on a function stack, i.e. a local function variable
and was then passed down the code path to do_path_resolve without ever
initing it or zeroing the structure, its possible that the name member
has a non-NULL but corrupted address. This leads to a segfault.
Whereas, we know loc-&gt;path will always have the full path.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The gf_log message actually assumes that loc-&gt;name will have a valid
non-NULL name in it, whereas if the loc_t being passed to it was
actually created on a function stack, i.e. a local function variable
and was then passed down the code path to do_path_resolve without ever
initing it or zeroing the structure, its possible that the name member
has a non-NULL but corrupted address. This leads to a segfault.
Whereas, we know loc-&gt;path will always have the full path.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Remove spurious strcmp</title>
<updated>2009-04-08T09:35:38+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@zresearch.com</email>
</author>
<published>2009-04-07T12:34:24+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=ccbb9c7df1d887bc835a04e0f76799770ba3e2b8'/>
<id>ccbb9c7df1d887bc835a04e0f76799770ba3e2b8</id>
<content type='text'>
This strcmp existed because of assumptions that do
not hold true since the change in libglusterfsclient
internals recently.

This is another step in fixing the seg-fault on glusterfs_create.
Patch adapted from Raghu's original fix to the problem.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This strcmp existed because of assumptions that do
not hold true since the change in libglusterfsclient
internals recently.

This is another step in fixing the seg-fault on glusterfs_create.
Patch adapted from Raghu's original fix to the problem.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient: Resolve path on empty caches</title>
<updated>2009-04-08T09:35:30+00:00</updated>
<author>
<name>Shehjar Tikoo</name>
<email>shehjart@zresearch.com</email>
</author>
<published>2009-04-07T12:33:56+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=2524bf2e9cb89627833b1120eac0f78b279c1751'/>
<id>2524bf2e9cb89627833b1120eac0f78b279c1751</id>
<content type='text'>
The earlier case was that the explicit lookups to the server
were being sent only when the parent inode was NULL. This situation
breaks when the parent inode is available in the i- or d-cache
but the child dirent is not. In such a case, no explicit lookups
were being sent to get the missing child dirent.

Now, explicit path lookup happens even if the inode for parent or basename
is not found in the caches.

This also fixes a seg-fault occuring during glusterfs_open, in my test
case, but one that could occur almost anywhere lookup code is used.
Patch adapted from Raghu's original patch.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The earlier case was that the explicit lookups to the server
were being sent only when the parent inode was NULL. This situation
breaks when the parent inode is available in the i- or d-cache
but the child dirent is not. In such a case, no explicit lookups
were being sent to get the missing child dirent.

Now, explicit path lookup happens even if the inode for parent or basename
is not found in the caches.

This also fixes a seg-fault occuring during glusterfs_open, in my test
case, but one that could occur almost anywhere lookup code is used.
Patch adapted from Raghu's original patch.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libglusterfsclient - fix bug in __do_path_resolve</title>
<updated>2009-04-03T13:54:48+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@zresearch.com</email>
</author>
<published>2009-03-30T14:20:35+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/anoopcs/public_git/glusterfs.git/commit/?id=475a5909f3f80a1fc91630ea22bec228bfdc676b'/>
<id>475a5909f3f80a1fc91630ea22bec228bfdc676b</id>
<content type='text'>
- add argument lookup_basename to __do_path_resolve which indicates whether to
    lookup basename(path). This is necessary for apis like glusterfs_get, which
    dont want basename(path) to be looked up by libgf_client_lookup_path.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- add argument lookup_basename to __do_path_resolve which indicates whether to
    lookup basename(path). This is necessary for apis like glusterfs_get, which
    dont want basename(path) to be looked up by libgf_client_lookup_path.

Signed-off-by: Anand V. Avati &lt;avati@amp.gluster.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
