On 01/29/2013 05:44 AM, Sage Weil wrote: > On Wed, 23 Jan 2013, Yan, Zheng wrote: >> From: "Yan, Zheng" <zheng.z.yan@xxxxxxxxx> >> >> _rename_finish() does not send dentry link/unlink message to replicas. >> We should prevent dentries that are modified by the rename operation >> from getting new replicas when the rename operation is committing. So >> don't mark xlocks "done" and early reply for rename > > Can we change this to only skip early reply if there are replicas? Or > change things so we do send thos messages (or something isilar) early? As > is this will kill workloads like rsync that rename every file. > How about not mark xlocks on dentries done. Regards Yan, Zheng > Thanks! > s > >> >> Signed-off-by: Yan, Zheng <zheng.z.yan@xxxxxxxxx> >> --- >> src/mds/Server.cc | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/src/mds/Server.cc b/src/mds/Server.cc >> index eced76f..4492341 100644 >> --- a/src/mds/Server.cc >> +++ b/src/mds/Server.cc >> @@ -796,6 +796,14 @@ void Server::early_reply(MDRequest *mdr, CInode *tracei, CDentry *tracedn) >> return; >> } >> >> + // _rename_finish() does not send dentry link/unlink message to replicas. >> + // so do not mark xlocks "done", the xlocks prevent srcdn and destdn from >> + // getting new replica. >> + if (mdr->client_request->get_op() == CEPH_MDS_OP_RENAME) { >> + dout(10) << "early_reply - rename, not allowed" << dendl; >> + return; >> + } >> + >> MClientRequest *req = mdr->client_request; >> entity_inst_t client_inst = req->get_source_inst(); >> if (client_inst.name.is_mds()) >> -- >> 1.7.11.7 >> >> -- >> 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 >> >> -- 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