>> Getattr request for stat(2) needs to get inode size. MDS revokes Fw >> capability from the writer, to prevent writer from changing inode size >> at the same time. This is price of mantaining POSIX-compliant . > > Thanks, Zheng Yan:-) > > In our case, there is only one client want the "Fw" capability, most > of the clients just needs "Fscr". However, as LOCK_MIX state allows > only "Frwl", CInode::filelock had to wait in LOCK_SYNC_MIX state for > those tens of READ clients to release "Fsc" caps, which led to the > long wait and inefficient processing of getattr requests. We think > waiting for clients to release "Fsc" in this case might not be > necessary, is this right? Oh, sorry, in our case, the transition of CInode::filelock's state from LOCK_SYNC to LOCK_SYNC_MIX is done in the "finish" phase of a getattr request when there are clients who want the "Fw" cap at the time. So I think, this should be the mds waiting for READ clients to release "Fsc" so that it can issue "Fw" to the writing client. -- 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