linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* vfs-scale, keep the errno
@ 2011-01-14  3:38 J. R. Okajima
  2011-01-14  4:01 ` Nick Piggin
  0 siblings, 1 reply; 5+ messages in thread
From: J. R. Okajima @ 2011-01-14  3:38 UTC (permalink / raw)
  To: Nick Piggin; +Cc: linux-fsdevel, linux-kernel


When open(2) without O_DIRECTORY opens an existing dir, it should return
EISDIR. In do_last(), the variable 'error' is initialized EISDIR, but it
is changed by d_revalidate() which returns any positive to represent
'the target dir is valid.'
Should we keep and return the initialized 'error' in this case.


J. R. Okajima

diff --git a/fs/namei.c b/fs/namei.c
index 5bb7588..26fa823 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -2102,17 +2118,20 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
 	struct file *filp;
 	int error = -EISDIR;
 
 	switch (nd->last_type) {
 	case LAST_DOTDOT:
 		follow_dotdot(nd);
 		dir = nd->path.dentry;
 	case LAST_DOT:
 		if (need_reval_dot(dir)) {
-			error = d_revalidate(nd->path.dentry, nd);
-			if (!error)
+			int e;
+			e = d_revalidate(nd->path.dentry, nd);
+			if (!e)
 				error = -ESTALE;
-			if (error < 0)
+			if (e < 0) {
+				error = e;
 				goto exit;
+			}
 		}
 		/* fallthrough */
 	case LAST_ROOT:

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: vfs-scale, keep the errno
  2011-01-14  3:38 vfs-scale, keep the errno J. R. Okajima
@ 2011-01-14  4:01 ` Nick Piggin
  2011-01-14  4:47   ` J. R. Okajima
  2011-01-14 13:17   ` Hans-Peter Jansen
  0 siblings, 2 replies; 5+ messages in thread
From: Nick Piggin @ 2011-01-14  4:01 UTC (permalink / raw)
  To: J. R. Okajima; +Cc: linux-fsdevel, linux-kernel

On Fri, Jan 14, 2011 at 2:38 PM, J. R. Okajima <hooanon05@yahoo.co.jp> wrote:
>
> When open(2) without O_DIRECTORY opens an existing dir, it should return
> EISDIR. In do_last(), the variable 'error' is initialized EISDIR, but it
> is changed by d_revalidate() which returns any positive to represent
> 'the target dir is valid.'
> Should we keep and return the initialized 'error' in this case.

Great, thank you very much. I just changed a few variable names but
applied it. Would you please add you Signed-off-by: on patches from
now on?

Good reviewing work. Are you finding these by review or testing? I
think ltptests on an nfs mount should find this kind of bug... which I
should do.

Thanks,
Nick

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: vfs-scale, keep the errno
  2011-01-14  4:01 ` Nick Piggin
@ 2011-01-14  4:47   ` J. R. Okajima
  2011-01-14 13:17   ` Hans-Peter Jansen
  1 sibling, 0 replies; 5+ messages in thread
From: J. R. Okajima @ 2011-01-14  4:47 UTC (permalink / raw)
  To: Nick Piggin; +Cc: linux-fsdevel, linux-kernel


Nick Piggin:
> Great, thank you very much. I just changed a few variable names but
> applied it. Would you please add you Signed-off-by: on patches from
> now on?

Yes, of course.
I am just not confident, and guessed you may take another approach.


> Good reviewing work. Are you finding these by review or testing? I
> think ltptests on an nfs mount should find this kind of bug... which I
> should do.

First, review. And then modify/test the filesystem which I am developing
(FS_REVAL_DOT is used).
Some of my mails are from the reviewing and modifying phase.
I am in my testing phase. Someday my fs ->d_revalidate will be gone, I
hope.

Anyway your vfs-scale work is great which you definetly spent big time
and effort I believe.


J. R. Okajima

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: vfs-scale, keep the errno
  2011-01-14  4:01 ` Nick Piggin
  2011-01-14  4:47   ` J. R. Okajima
@ 2011-01-14 13:17   ` Hans-Peter Jansen
  2011-01-14 15:26     ` Nick Piggin
  1 sibling, 1 reply; 5+ messages in thread
From: Hans-Peter Jansen @ 2011-01-14 13:17 UTC (permalink / raw)
  To: Nick Piggin; +Cc: J. R. Okajima, linux-fsdevel, linux-kernel

On Friday 14 January 2011, 05:01:37 Nick Piggin wrote:
> On Fri, Jan 14, 2011 at 2:38 PM, J. R. Okajima <hooanon05@yahoo.co.jp> 
wrote:
> > When open(2) without O_DIRECTORY opens an existing dir, it should
> > return EISDIR. In do_last(), the variable 'error' is initialized
> > EISDIR, but it is changed by d_revalidate() which returns any
> > positive to represent 'the target dir is valid.'
> > Should we keep and return the initialized 'error' in this case.
>
> Great, thank you very much. I just changed a few variable names but
> applied it. Would you please add you Signed-off-by: on patches from
> now on?
>
> Good reviewing work. Are you finding these by review or testing? I
> think ltptests on an nfs mount should find this kind of bug... which
> I should do.

Nick, Junjiro is well known as a very smart (and|but) humble guy in the 
kernel niche of layered filesystems. Be assured, that almost every live 
distribution (one, that is runnable from RO media directly) _relies_ on 
his work: aufs (http://aufs.sourceforge.net/) to get the job done. Also 
many diskless setups (as do mine) relies on aufs.

It's a real pity, that all other approaches to layered filesystems (or 
filesystem unification, overlay filesystems), that are done by others, 
are either
 - technically inferior
 - restricted in usage scenarios
 - simply unfinished

but get more attention in the kernel guild. All, that Junjiro's approach 
takes is exporting a handful of symbols in order to be able to build it 
as a module also (and the number decreases as other lately merged 
subsystems do need them as well, i.e. apparmor). That's all. 

Layered filesystems are a killer feature, that could have been in the 
kernel for years, but is still missing for hard to follow (e.g. 
political, emotional) reasons. There are many interesting things, that 
can be done with layered filesystems, hard to archive up to impossible 
to be done otherwise). 

Sadly,
Pete

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: vfs-scale, keep the errno
  2011-01-14 13:17   ` Hans-Peter Jansen
@ 2011-01-14 15:26     ` Nick Piggin
  0 siblings, 0 replies; 5+ messages in thread
From: Nick Piggin @ 2011-01-14 15:26 UTC (permalink / raw)
  To: Hans-Peter Jansen; +Cc: J. R. Okajima, linux-fsdevel, linux-kernel

On Sat, Jan 15, 2011 at 12:17 AM, Hans-Peter Jansen <hpj@urpla.net> wrote:
> On Friday 14 January 2011, 05:01:37 Nick Piggin wrote:
>> On Fri, Jan 14, 2011 at 2:38 PM, J. R. Okajima <hooanon05@yahoo.co.jp>
> wrote:
>> > When open(2) without O_DIRECTORY opens an existing dir, it should
>> > return EISDIR. In do_last(), the variable 'error' is initialized
>> > EISDIR, but it is changed by d_revalidate() which returns any
>> > positive to represent 'the target dir is valid.'
>> > Should we keep and return the initialized 'error' in this case.
>>
>> Great, thank you very much. I just changed a few variable names but
>> applied it. Would you please add you Signed-off-by: on patches from
>> now on?
>>
>> Good reviewing work. Are you finding these by review or testing? I
>> think ltptests on an nfs mount should find this kind of bug... which
>> I should do.
>
> Nick, Junjiro is well known as a very smart (and|but) humble guy in the

I agree, based on the thoughtful review comments and patches :)

Thanks,
Nick

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-01-14 15:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-14  3:38 vfs-scale, keep the errno J. R. Okajima
2011-01-14  4:01 ` Nick Piggin
2011-01-14  4:47   ` J. R. Okajima
2011-01-14 13:17   ` Hans-Peter Jansen
2011-01-14 15:26     ` Nick Piggin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).