mirror of
https://github.com/ceph/ceph
synced 2024-12-18 01:16:55 +00:00
*** empty log message ***
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@423 29311d96-e01e-0410-9327-a35deaab8ce9
This commit is contained in:
parent
b6147530cc
commit
3c5a7f1bb0
@ -300,7 +300,9 @@ Dentry *Client::lookup(filepath& path)
|
||||
|
||||
// -------
|
||||
|
||||
MClientReply *Client::make_request(MClientRequest *req, bool auth_best)
|
||||
MClientReply *Client::make_request(MClientRequest *req,
|
||||
bool auth_best,
|
||||
int use_auth) // this param is icky!
|
||||
{
|
||||
// send to what MDS? find deepest known prefix
|
||||
Inode *cur = root;
|
||||
@ -340,6 +342,10 @@ MClientReply *Client::make_request(MClientRequest *req, bool auth_best)
|
||||
dout(9) << "i have no idea where " << req->get_filepath() << " is" << endl;
|
||||
}
|
||||
|
||||
// force use of a particular mds auth?
|
||||
if (use_auth >= 0)
|
||||
mds = use_auth;
|
||||
|
||||
// drop mutex for duration of call
|
||||
client_lock.Unlock();
|
||||
MClientReply *reply = (MClientReply*)messenger->sendrecv(req,
|
||||
@ -1192,10 +1198,13 @@ int Client::close(fileh_t fh)
|
||||
fh_map.erase(fh);
|
||||
delete f;
|
||||
|
||||
// note mds auth.. we'll send the close there! FIXME this is sort of icky
|
||||
int mds_auth = in->authority();
|
||||
|
||||
release_inode_buffers(in);
|
||||
put_inode( in );
|
||||
|
||||
MClientReply *reply = make_request(req, true);
|
||||
MClientReply *reply = make_request(req, true, mds_auth);
|
||||
assert(reply);
|
||||
int result = reply->get_result();
|
||||
dout(3) << "close " << fh << " result = " << result << endl;
|
||||
|
@ -268,7 +268,7 @@ class Client : public Dispatcher {
|
||||
|
||||
|
||||
// blocking mds call
|
||||
MClientReply *make_request(MClientRequest *req, bool auth_best=false);
|
||||
MClientReply *make_request(MClientRequest *req, bool auth_best=false, int use_auth=-1);
|
||||
|
||||
|
||||
// buffer cache
|
||||
|
@ -330,6 +330,7 @@ int SyntheticClient::play_trace(Trace& t, string& prefix)
|
||||
for (map<__int64_t, __int64_t>::iterator fi = open_files.begin();
|
||||
fi != open_files.end();
|
||||
fi++) {
|
||||
dout(1) << "leftover close " << fi->second << endl;
|
||||
client->close(fi->second);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user