Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
FSAL_CEPH: do an inode lookup vs. MDS when the Inode is not in cache
FSAL_CEPH just does a ceph_ll_get_inode when asked to create a filehandle today, which only does a query of the local Ceph client cache. This means that it can only find Inodes that were previously found via name lookup. When ganesha is restarted, we have a blank-slate Client, and the Inode will not be in cache, so the NFS client can end up seeing ESTALE errors. We must be able to find Inodes that may not be in the cache. When ceph_ll_get_inode can't find an Inode, try a lookup vs. the MDS for it. The only problem is that we currently have no way to look up a snapped inode from scratch. I think we'll probably need to add that ability to libcephfs, but for now the best we can do is just bail out with an ESTALE in that case. While we're in there, remove the comment about ceph_ll_connectable_m. There is no such function in libcephfs and never has been. The ds code does seem to refer to such a call, but it's not clear to me what it's supposed to do. Change-Id: I2d0e362ef8f28ba78575b60f3fb2890096d98fc6 Signed-off-by: Jeff Layton <[email protected]> Tested-by: "Yan, Zheng" <[email protected]>
- Loading branch information