Re: [pnfs] [GIT BISECT] first bad commit: 1f36f774 Switch !O_CREATcase to use of do_last()

From: Benny Halevy
Date: Thu Mar 25 2010 - 07:12:44 EST


On Mar. 25, 2010, 13:00 +0200, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> On Thu, Mar 25, 2010 at 12:56:40PM +0200, Benny Halevy wrote:
>> - if (*want_dir && !path->dentry->d_inode->i_op->lookup)
>> + if (*want_dir && !path->dentry->d_inode->i_op->lookup) {
>> + WARN_ON(1);
>> goto exit_dput;
>> + }
>> path_to_nameidata(path, nd);
>> audit_inode(pathname, nd->path.dentry);
>> goto ok;
>>
>> but it is NOT tripping for this scenario.
>>
>> (for some reason I saw it tripping when building the kernel over nfs
>> but it's benign)
>
> It's ENOTDIR, not EISDIR, anyway. Happens if you ask to open foo/ or
> foo with O_DIRECTORY when foo is not a directory.

Hmm, not according to my strace (or am I blind today? :)

> > open(".git/objects/pack", O_RDONLY|O_NONBLOCK|O_DIRECTORY|0x80000) = -1 EISDIR (Is a directory)

The odd thing is the app incorrectly gets EISDIR despite
the fact that it is opening a directory with O_DIRECTORY.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/