int Client::lstat(const char *relpath, struct stat *stbuf, frag_info_t *dirstat, int mask)
{
+ dout(3) << "lstat enter (relpath" << relpath << " mask " << mask << ")" << dendl;
Mutex::Locker lock(client_lock);
tout << "lstat" << std::endl;
tout << relpath << std::endl;
if (r < 0)
return r;
fill_stat(in, stbuf, dirstat);
+ dout(3) << "lstat exit (relpath" << relpath << " mask " << mask << ")" << dendl;
return r;
}
int Client::fill_stat_precise(Inode *in, struct stat_precise *st, frag_info_t *dirstat, nest_info_t *rstat)
int Client::lstat_precise(const char *relpath, struct stat_precise *stbuf,
frag_info_t *dirstat, int mask) {
+ dout(3) << "lstat enter (relpath" << relpath << " mask " << mask << ")" << dendl;
Mutex::Locker lock(client_lock);
tout << "lstat_precise" << std::endl;
tout << relpath << std::endl;
if (r < 0)
return r;
r = _getattr(in, mask);
- if (r < 0)
+ if (r < 0) {
+ dout(3) << "lstat exit on error!" << dendl;
return r;
+ }
fill_stat_precise(in, stbuf, dirstat);
+ dout(3) << "lstat exit (relpath" << relpath << " mask " << mask << ")" << dendl;
return r;
}
int Client::open(const char *relpath, int flags, mode_t mode)
{
+ dout(3) << "open enter(" << relpath << ", " << flags << ") = " << dendl;
Mutex::Locker lock(client_lock);
tout << "open" << std::endl;
tout << relpath << std::endl;
out:
tout << r << std::endl;
- dout(3) << "open(" << path << ", " << flags << ") = " << r << dendl;
+ dout(3) << "open exit(" << path << ", " << flags << ") = " << r << dendl;
return r;
}
int Client::close(int fd)
{
+ dout(3) << "close enter(" << fd << ")" << dendl;
Mutex::Locker lock(client_lock);
tout << "close" << std::endl;
tout << fd << std::endl;
- dout(3) << "close(" << fd << ")" << dendl;
assert(fd_map.count(fd));
Fh *fh = fd_map[fd];
_release(fh);
fd_map.erase(fd);
+ dout(3) << "close exit(" << fd << ")" << dendl;
return 0;
}