Re: hundreds of mount --bind mountpoints?

Trond Myklebust
2001-04-24T22:32:28Z

>>>>> " " == Alexander Viro <viro@math.psu.edu> writes:

> _Ouch_. So what are you going to do if another iget4() comes
> between the moment when you hash the inode and set these
> fields? You are filling them only after you drop inode_lock, so
> AFAICS the current code has the same problem.

The entire call to iget4() is protected by the BKL in all relevant
instances. As long as we don't sleep between find_inode() and
nfs_fill_inode(), we're safe.

In fact the BKL protection is needed also for another reason: we don't
actually initialize the inode in the I_LOCK-protected read_inode() but
instead rely on the caller of iget4 to do it for us. The reason is
that one we would need to pass the struct nfs_fattr to read_inode()
and this wasn't possible until the ReiserFS people introduced
read_inode2().

Cheers,
Trond