// need security caps? check if I even asked for one
ExtCap ext_cap = reply->get_ext_cap();
- cout << "Received a " << ext_cap.mode() << " capability for uid: "
+ dout(3) << "Received a " << ext_cap.mode() << " capability for uid: "
<< ext_cap.get_uid() << " for inode: " << ext_cap.get_ino() << endl;
assert(ext_cap.verif_extcap(monmap->get_key()));
// cache it
- f->inode->set_ext_cap(uid, ext_cap);
+ f->inode->set_ext_cap(uid, &ext_cap);
assert(reply->get_file_caps_seq() >= f->inode->caps[mds].seq);
if (reply->get_file_caps_seq() > f->inode->caps[mds].seq) {
dout(0) << "open failure result " << result << endl;
}
- cout << "Before delete!!" << endl << endl;
delete reply;
- cout << "After delete!!" << endl << endl;
put_user_ticket(tk);
trim_cache();
string *symlink; // symlink content, if it's a symlink
// secure caps
- map<uid_t, ExtCap*> ext_cap_cache;
+ map<uid_t, ExtCap> ext_cap_cache;
// for caching i/o mode
FileCache fc;
return (inode.mode & INODE_TYPE_MASK) == INODE_MODE_DIR;
}
- void set_ext_cap(uid_t user, ExtCap *ecap) { ext_cap_cache[user] = ecap; }
+ void set_ext_cap(uid_t user, ExtCap *ecap) { ext_cap_cache[user] = (*ecap); }
ExtCap* get_ext_cap(uid_t user) {
if (ext_cap_cache.count(user))
- return ext_cap_cache[user];
+ return &(ext_cap_cache[user]);
return 0;
}
// make new cap
ext_cap = new ExtCap(my_want, my_user, in->ino());
- cout << "Made new " << my_want << " capability for uid: "
+ dout(3) << "Made new " << my_want << " capability for uid: "
<< ext_cap->get_uid() << " for inode: " << ext_cap->get_ino()<< endl;
ext_cap->sign_extcap(mds->getPrvKey());
// we want to index based on mode, so we can cache more caps
// does the cached cap have the write mode?
else {
- cout << "Got cached " << my_want << " capability for uid: "
+ dout(3) << "Got cached " << my_want << " capability for uid: "
<< ext_cap->get_uid() << " for inode: " << ext_cap->get_ino() << endl;
if (ext_cap->mode() < mode) {
ext_cap->set_mode(mode);