lookuphash

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey Brian,

I just pushed some improvements to the MDS lookuphash that should fix the 
NFS issues.  The first piece will search for an ino in other MDS's caches 
(this actually needed for cross-mds unlink/rename as well).  The other 
piece looks at the on-disk directory objects to discover the ino path and 
then does a traverse.  Both methods are now wired up to lookuphash.

Once you have a test case that can reliably reproduce the NFS ESTALE, 
let's see if this fixes it!  (You may have to disable it with something 
like the below to get the test case right.  The improvements are now in 
the master branch of ceph.git.)

Thanks!
sage


diff --git a/src/mds/Server.cc b/src/mds/Server.cc
index 58be710..0b36011 100644
--- a/src/mds/Server.cc
+++ b/src/mds/Server.cc
@@ -2065,8 +2065,9 @@ void Server::handle_client_lookup_hash(MDRequest 
*mdr)
     // try the directory
     CInode *diri = mdcache->get_inode(req->get_filepath2().get_ino());
     if (!diri) {
-      mdcache->find_ino_peers(req->get_filepath2().get_ino(),
-                             new C_MDS_LookupHash(this, mdr), -1);
+      reply_request(mdr, -ESTALE);
+      /*      mdcache->find_ino_peers(req->get_filepath2().get_ino(),
+             new C_MDS_LookupHash(this, mdr), -1);*/
       return;
     }
     if (diri->state_test(CInode::STATE_PURGING)) {





--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux