Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
3
-
9223372036854775807
Description
Ever since LU-4367 we have a subtle case of breakage that went unnoticed.
The breakage is two-fold:
1. When an application requests an open lock, it is granted, but cannot be used. This is because revalidate always returns 0 for open requests, but we cannot get to inode from new dentry in ll_lookup_it unless we do RPC which defeats the purpose. - Impact: Low since next to nobody cares about it.
2. When an application opens a file that is already opened for the same mode - we now do not have inode access to see that there is an open handle already, so we do a needless RPC same as above to get to the inode and then discard the filehandle right away. - The impact is a bit more, but this still could only happen if we have a lookup lock on the file first, as if we don't, we still do full lookup to get from dentry to inode.