de->d_off = next_off;
#endif
de->d_reclen = 1;
- de->d_type = MODE_TO_DT(type);
+ de->d_type = IFTODT(type);
ldout(cct, 10) << "fill_dirent '" << de->d_name << "' -> " << inodeno_t(de->d_ino)
<< " type " << (int)de->d_type << " w/ next_off " << hex << next_off << dec << dendl;
#endif
struct readdir_context *c = (struct readdir_context *)p;
st->st_ino = make_fake_ino(de->d_ino, c->snap);
- st->st_mode = DT_TO_MODE(de->d_type);
+ st->st_mode = DTTOIF(de->d_type);
st->st_rdev = new_encode_dev(st->st_rdev);
size_t room = c->size - c->pos;
return (mode & CEPH_FILE_MODE_WR) == 0;
}
-inline int DT_TO_MODE(int dt) {
- return dt << 12;
-}
-
-inline unsigned char MODE_TO_DT(int mode) {
- return mode >> 12;
-}
-
-
struct SnapRealmInfo {
mutable ceph_mds_snap_realm h;
if (dn.get_linkage()->is_null()) out << " NULL";
if (dn.get_linkage()->is_remote()) {
out << " REMOTE(";
- switch (dn.get_linkage()->get_remote_d_type() << 12) {
+ switch (DTTOIF(dn.get_linkage()->get_remote_d_type())) {
case S_IFSOCK: out << "sock"; break;
case S_IFLNK: out << "lnk"; break;
case S_IFREG: out << "reg"; break;
void CDir::link_remote_inode(CDentry *dn, CInode *in)
{
- link_remote_inode(dn, in->ino(), MODE_TO_DT(in->get_projected_inode()->mode));
+ link_remote_inode(dn, in->ino(), IFTODT(in->get_projected_inode()->mode));
}
void CDir::link_remote_inode(CDentry *dn, inodeno_t ino, unsigned char d_type)
if (in->is_dirty_rstat())
dirty_rstat_inodes.push_back(&in->dirty_rstat_item);
} else if (dn->get_linkage()->is_remote()) {
- if (dn->get_linkage()->get_remote_d_type() == (S_IFDIR >> 12))
+ if (dn->get_linkage()->get_remote_d_type() == DT_DIR)
fnode.fragstat.nsubdirs++;
else
fnode.fragstat.nfiles++;
c.nfiles++;
}
if (dn->is_remote()) {
- if (dn->get_remote_d_type() == (S_IFDIR >> 12))
+ if (dn->get_remote_d_type() == DT_DIR)
c.nsubdirs++;
else
c.nfiles++;
inodeno_t ino() const { return inode.ino; }
vinodeno_t vino() const { return vinodeno_t(inode.ino, last); }
- int d_type() const { return MODE_TO_DT(inode.mode); }
+ int d_type() const { return IFTODT(inode.mode); }
inode_t& get_inode() { return inode; }
CDentry* get_parent_dn() { return parent; }