<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/mount/fuse/src/fuse-resolve.c, branch v3.5beta1</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>mount/fuse: perform lookup() on inodes linked through readdirplus</title>
<updated>2013-08-23T19:09:58+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@redhat.com</email>
</author>
<published>2013-08-12T16:41:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=2991503d014f634da5cd10bcb851e986a3dcd5c2'/>
<id>2991503d014f634da5cd10bcb851e986a3dcd5c2</id>
<content type='text'>
Some xlators still require lookup() fop to be sent for proper working.
This patch remembers inodes which have been linked through readdiprlus
and makes the resolver send lookups on them.

Change-Id: Ibe8a04a659539d90dfc794521b51bf2bda017a0b
BUG: 979910
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5267
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some xlators still require lookup() fop to be sent for proper working.
This patch remembers inodes which have been linked through readdiprlus
and makes the resolver send lookups on them.

Change-Id: Ibe8a04a659539d90dfc794521b51bf2bda017a0b
BUG: 979910
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/5267
Reviewed-by: Amar Tumballi &lt;amarts@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fuse-bridge: fix posix-only configuration</title>
<updated>2012-11-19T09:17:47+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@redhat.com</email>
</author>
<published>2012-10-20T07:14:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=28994167a7fbbb35370b515eb72a9aaf49f58ac4'/>
<id>28994167a7fbbb35370b515eb72a9aaf49f58ac4</id>
<content type='text'>
Recent changes in fuse-resolver had broken the use case of having
a trivial configuration with only storage/posix translator. Fix
it and include a regression test to avoid breakage in the future.

Change-Id: I85cbcac4b5c2d3517dd03fd3dc6d07610697981b
BUG: 868478
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/4114
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Brian Foster &lt;bfoster@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recent changes in fuse-resolver had broken the use case of having
a trivial configuration with only storage/posix translator. Fix
it and include a regression test to avoid breakage in the future.

Change-Id: I85cbcac4b5c2d3517dd03fd3dc6d07610697981b
BUG: 868478
Signed-off-by: Anand Avati &lt;avati@redhat.com&gt;
Reviewed-on: http://review.gluster.org/4114
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Brian Foster &lt;bfoster@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fuse: create a new fd during fd-migration.</title>
<updated>2012-10-02T21:18:14+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@gluster.com</email>
</author>
<published>2012-08-27T11:29:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=3372f198a8272b3467944c759be9975ee8f0aa02'/>
<id>3372f198a8272b3467944c759be9975ee8f0aa02</id>
<content type='text'>
Migration of fd to new graph involves creation of a new fd
to be used only for calls sent in that graph.

Earlier approach of using same fd across all graphs, with the
associated inode always guaranteed to be the one valid in
currently active graph, had issues because of the broken
immutability of the association of fd with an inode
(for the life of fd).

With this patch, there will be a basefd, which the kernel will be
aware of. This basefd, contains a mapping of an fd which is valid
in currently active graph.

Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Change-Id: I2b459f05bc2690a66498be107fad6444e3158138
BUG: 802414
Reviewed-on: http://review.gluster.org/3566
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Migration of fd to new graph involves creation of a new fd
to be used only for calls sent in that graph.

Earlier approach of using same fd across all graphs, with the
associated inode always guaranteed to be the one valid in
currently active graph, had issues because of the broken
immutability of the association of fd with an inode
(for the life of fd).

With this patch, there will be a basefd, which the kernel will be
aware of. This basefd, contains a mapping of an fd which is valid
in currently active graph.

Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Change-Id: I2b459f05bc2690a66498be107fad6444e3158138
BUG: 802414
Reviewed-on: http://review.gluster.org/3566
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>All: License message change</title>
<updated>2012-09-13T20:19:37+00:00</updated>
<author>
<name>Varun Shastry</name>
<email>vshastry@redhat.com</email>
</author>
<published>2012-09-11T11:04:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=3e2057542da6a0f182243b527bc7f1fd43d1fd3c'/>
<id>3e2057542da6a0f182243b527bc7f1fd43d1fd3c</id>
<content type='text'>
License message changed for server-side, dual license GPLV2 and LGPLv3+.

Change-Id: Ia9e53061b9d2df3b3ef3bc9778dceff77db46a09
BUG: 852318
Signed-off-by: Varun Shastry &lt;vshastry@redhat.com&gt;
Reviewed-on: http://review.gluster.org/3940
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
License message changed for server-side, dual license GPLV2 and LGPLv3+.

Change-Id: Ia9e53061b9d2df3b3ef3bc9778dceff77db46a09
BUG: 852318
Signed-off-by: Varun Shastry &lt;vshastry@redhat.com&gt;
Reviewed-on: http://review.gluster.org/3940
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Kaleb KEITHLEY &lt;kkeithle@redhat.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>All: License message change</title>
<updated>2012-08-28T10:45:06+00:00</updated>
<author>
<name>Varun Shastry</name>
<email>vshastry@redhat.com</email>
</author>
<published>2012-08-27T11:18:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=2ff5e1c2a1c0fedd437d2d892dfab21f720f5a1c'/>
<id>2ff5e1c2a1c0fedd437d2d892dfab21f720f5a1c</id>
<content type='text'>
The license message is changed to
  Copyright (c) 2008-2012 Red Hat, Inc. &lt;http://www.redhat.com&gt;
  This file is part of GlusterFS.

  This file is licensed to you under your choice of the GNU Lesser
  General Public License, version 3 or any later version (LGPLv3 or
  later), or the GNU General Public License, version 2 (GPLv2), in all
  cases as published by the Free Software Foundation.

Change-Id: I07d2b63ed5fbbbd1884f1e74f2dd56013d15b0f4
BUG: 852318
Signed-off-by: Varun Shastry &lt;vshastry@redhat.com&gt;
Reviewed-on: http://review.gluster.org/3858
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The license message is changed to
  Copyright (c) 2008-2012 Red Hat, Inc. &lt;http://www.redhat.com&gt;
  This file is part of GlusterFS.

  This file is licensed to you under your choice of the GNU Lesser
  General Public License, version 3 or any later version (LGPLv3 or
  later), or the GNU General Public License, version 2 (GPLv2), in all
  cases as published by the Free Software Foundation.

Change-Id: I07d2b63ed5fbbbd1884f1e74f2dd56013d15b0f4
BUG: 852318
Signed-off-by: Varun Shastry &lt;vshastry@redhat.com&gt;
Reviewed-on: http://review.gluster.org/3858
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mount/fuse: ignore any erros that might've happened while resolving entry in resolver.</title>
<updated>2012-08-03T08:13:36+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@gluster.com</email>
</author>
<published>2012-05-14T08:53:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=66205114267ec659b4ad8084c7e9497009529c61'/>
<id>66205114267ec659b4ad8084c7e9497009529c61</id>
<content type='text'>
One error we hit was absence of gfid on backend. While the lookup
code-path generates a new uuid and sets it on file, resolver code
doesn't do that. Since, functionally (atleast after resolving parent
inode, we would be resolving the path in new-graph) both resolver
and lookup does same work, it would be no harm in ignoring errors
during resolving the entry. This would help us to continue with
the _extra_ work (like healing gfid as of now) in fuse_lookup_resume.

Change-Id: If46d5e07c32e67b5744287a6ef55d0b0fe347689
BUG: 821138
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3344
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
One error we hit was absence of gfid on backend. While the lookup
code-path generates a new uuid and sets it on file, resolver code
doesn't do that. Since, functionally (atleast after resolving parent
inode, we would be resolving the path in new-graph) both resolver
and lookup does same work, it would be no harm in ignoring errors
during resolving the entry. This would help us to continue with
the _extra_ work (like healing gfid as of now) in fuse_lookup_resume.

Change-Id: If46d5e07c32e67b5744287a6ef55d0b0fe347689
BUG: 821138
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3344
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fuse-resolve: consider cases where an entry should be resolved even when parent belongs to active itable.</title>
<updated>2012-08-03T07:33:48+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@gluster.com</email>
</author>
<published>2012-03-26T13:14:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=6731020700b949e1e7351d8e5d390f329bf4fba2'/>
<id>6731020700b949e1e7351d8e5d390f329bf4fba2</id>
<content type='text'>
When parent is root, the parent inode returned will always be
active_subvol-&gt;itable-&gt;root and hence there can be cases where we
should explicitly resolve the entry in active graph.

BUG: 804592
Change-Id: I5829278e27435e06785a923ce8776616cedfb519
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3710
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When parent is root, the parent inode returned will always be
active_subvol-&gt;itable-&gt;root and hence there can be cases where we
should explicitly resolve the entry in active graph.

BUG: 804592
Change-Id: I5829278e27435e06785a923ce8776616cedfb519
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3710
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "fuse-resolve: consider cases where an entry should be resolved even when parent belongs to active itable."</title>
<updated>2012-05-23T19:21:51+00:00</updated>
<author>
<name>Anand Avati</name>
<email>avati@redhat.com</email>
</author>
<published>2012-05-23T19:03:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=d65a0f9f1b31cb688719d92a257a4d8e70ae83ce'/>
<id>d65a0f9f1b31cb688719d92a257a4d8e70ae83ce</id>
<content type='text'>
This reverts commit 595bc33c1d0a3a6fe3d54d3eb876ac0b336d9dea

Change-Id: I6c67404d4ff0bc83cfac83d786bc6e66d221a84a
Reviewed-on: http://review.gluster.com/3422
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 595bc33c1d0a3a6fe3d54d3eb876ac0b336d9dea

Change-Id: I6c67404d4ff0bc83cfac83d786bc6e66d221a84a
Reviewed-on: http://review.gluster.com/3422
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fuse-resolve: Attempt fd-migration in resolver, if migration</title>
<updated>2012-05-16T00:09:58+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@gluster.com</email>
</author>
<published>2012-04-18T07:00:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=7503c63ee141931556cf066b9b255fc62cefcb68'/>
<id>7503c63ee141931556cf066b9b255fc62cefcb68</id>
<content type='text'>
was never attempted.

Since fd is always associated with an inode, we can create an
fd only after resolver resolves an inode. So, there is a possibility
that graph-switch can happen after resolver kicks in, but before
it can complete, thereby resulting in the newly created fd not
migrated to new graph. So, instead of migrating fds only during
graph-switch, we give a second chance during fd-resolution.

As an example, consider following sequence of events during a
create call:
1. create wants to resolve parent inode, hence it starts
   resolution for parent
2. graph-switch happens (it can happen since fuse-request reader
   thread returns after winding lookup calls)
3. fd-migration of all the fds which are currently in fdtable is
   attempted (Note that the fd corresponding to current create call
   is not yet created and added to fd-table, hence it will not be
   migrated as part of graph switch)
4. resolution of parent triggered as part of create, completes
5. fd is created in fuse_create_resume and this fd is not migrated
   to new graph
6. Any future fops on this fd will fail with EBADF errors
   (create call itself will succeed)

Change-Id: Iae06ecfaca24eaacb2e166ffefbbbb57446332ba
BUG: 804592
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3181
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
was never attempted.

Since fd is always associated with an inode, we can create an
fd only after resolver resolves an inode. So, there is a possibility
that graph-switch can happen after resolver kicks in, but before
it can complete, thereby resulting in the newly created fd not
migrated to new graph. So, instead of migrating fds only during
graph-switch, we give a second chance during fd-resolution.

As an example, consider following sequence of events during a
create call:
1. create wants to resolve parent inode, hence it starts
   resolution for parent
2. graph-switch happens (it can happen since fuse-request reader
   thread returns after winding lookup calls)
3. fd-migration of all the fds which are currently in fdtable is
   attempted (Note that the fd corresponding to current create call
   is not yet created and added to fd-table, hence it will not be
   migrated as part of graph switch)
4. resolution of parent triggered as part of create, completes
5. fd is created in fuse_create_resume and this fd is not migrated
   to new graph
6. Any future fops on this fd will fail with EBADF errors
   (create call itself will succeed)

Change-Id: Iae06ecfaca24eaacb2e166ffefbbbb57446332ba
BUG: 804592
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3181
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fuse-resolve: consider cases where an entry should be resolved even</title>
<updated>2012-05-08T22:34:53+00:00</updated>
<author>
<name>Raghavendra G</name>
<email>raghavendra@gluster.com</email>
</author>
<published>2012-03-26T13:14:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=27fb213be6101bca859502ac87dddc4cd0a6f272'/>
<id>27fb213be6101bca859502ac87dddc4cd0a6f272</id>
<content type='text'>
when parent belongs to active itable.

When parent is root, the parent inode returned will always be
active_subvol-&gt;itable-&gt;root and hence there can be cases where we
should explicitly resolve the entry in active graph.

Change-Id: I4e82df9a351ff6b5304891abc9932495bf7ea79d
BUG: 804592
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3007
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
when parent belongs to active itable.

When parent is root, the parent inode returned will always be
active_subvol-&gt;itable-&gt;root and hence there can be cases where we
should explicitly resolve the entry in active graph.

Change-Id: I4e82df9a351ff6b5304891abc9932495bf7ea79d
BUG: 804592
Signed-off-by: Raghavendra G &lt;raghavendra@gluster.com&gt;
Reviewed-on: http://review.gluster.com/3007
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Anand Avati &lt;avati@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
