Re: bug in nfs in 2.6.18-rc5?

Shaya Potter
2006-08-31T15:21:00Z

Shaya Potter wrote:
> so I'm trying to use unionfs, cachefs and nfs, as cachefs is 2.6.18-rc5
> right now, thats what I'm testing, but I hit an oops.
>
> basically unionfs's lookup does a "lookup_one_len()" on the underlying fs.
>
> lookup_one_len() calls __lookup_hash()
>
> __lookup_hash() is called as "__lookup_hash(&this, base, NULL)"
>
> now that NULL is important. that's the nameidata entry of __lookup_hash()
>
> __lookup_hash() ends up calling the underlying fs's lookup op, i.e.
> nfs_lookup()
>
> nfs_lookup() calls nfs_reval_fsid(nd->mnt, dir, &fhandle, &fattr);
>
> see the bug? :)
>
> This doesn't seem like a unionfs bug, as one should be able to call
> lookup_one_len() on an NFS fs.

ok my "fix" is basically that nfs_reval_fsid() uses the nd->mnt to get
to mnt->mnt_root.

I basically switched it to take a dentry and I call it as

nfs_reval_fsid(dentry->d_sb->s_root, dir.....)

have no clue if this is correct, but it doesn't oops anymore and seems
to "work".