The problem is that the reply contains a capability, and as such
is statefull and can't be lost. Forwards by the MDS on behalf of
the client, however, introduce the possibility of multiple copies
or a request in flight if one of the MDSs fails, and the client
will drop any duplicate replies it receives.
Alternatively, the client could _also_ parse duplicate responses
(i.e. call fill_trace). I'm not sure if that's a good idea. In
any case, MDS forwarded requests are only really important for
dealing with flash flood scenarios on extremely large clusters,
so let's just set this aside for now.
}
bool is_idempotent() {
if (head.op == CEPH_MDS_OP_OPEN)
- return open_file_mode_is_readonly();
+ return false; //open_file_mode_is_readonly();
return (head.op & CEPH_MDS_OP_WRITE) == 0;
}
bool auth_is_best() {