On Wed, 14 Mar 2012, Noah Watkins wrote: > On Mar 7, 2012, at 10:02 AM, Noah Watkins wrote: > > > As for producing an upstream patch, I think the two biggest concerns are: > > > > 1. Reporting hostname/racks rather than IPs for object location. > > 2. Address (or at least document) the time synchronization issue. > > Regarding (1), my last comment in this ticket (http://tracker.newdream.net/issues/1666) seems to indicate that a stat occurs on a client and the mtime in the cached inode is returned, but the client is expecting the mtime in the updated inode in the OSD. > > Is there an easy way to invalidate the the inodes in a client to at > least verify the problem? Well, you can kludge the code to do it with diff --git a/src/client/Client.cc b/src/client/Client.cc index 4a9ae3c..2bb24b7 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -3858,7 +3858,7 @@ int Client::readlink(const char *relpath, char *buf, loff_t size) int Client::_getattr(Inode *in, int mask, int uid, int gid) { - bool yes = in->caps_issued_mask(mask); + bool yes = false; //in->caps_issued_mask(mask); ldout(cct, 10) << "_getattr mask " << ccap_string(mask) << " issued=" << yes << dendl; if (yes) A less intrusive workaround would be to do a readdir on the containing directory, which will refresh the client inode. I'm still not sure what a graceful solution to the problem is... :( sage -- 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