#include <file.h>
#endif
-#undef LIST_HEAD
-
#ifdef HAVE_LINUX_UNISTD_H
#include <linux/unistd.h>
#elif defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
-#include <dirent.h>
#include "llite_lib.h"
+#include <dirent.h>
/* (new) readdir implementation overview can be found in lustre/llite/dir.c */
return rc;
}
-static cfs_page_t *llu_dir_read_page(struct inode *ino, __u32 hash,
- int exact, struct ll_dir_chain *chain)
+static cfs_page_t *llu_dir_read_page(struct inode *ino, __u64 hash,
+ int exact, struct ll_dir_chain *chain)
{
cfs_page_t *page;
int rc;
int rc;
int done;
int shift;
+ __u16 type;
ENTRY;
liblustre_wait_event(0);
fid = ent->lde_fid;
name = ent->lde_name;
fid_le_to_cpu(&fid, &fid);
- ino = llu_fid_build_ino(llu_i2sbi(dir), &fid);
-
+ ino = cl_fid_build_ino(&fid);
+ type = ll_dirent_type_get(ent);
done = filldir(buf, nbytes, name, namelen,
- (loff_t)hash, ino, DT_UNKNOWN,
+ (loff_t)hash, ino, type,
&filled);
}
next = le64_to_cpu(dp->ldp_hash_end);
PFID(&lli->lli_fid), (unsigned long)pos, rc);
}
}
- lli->lli_dir_pos = (loff_t)(__s32)pos;
+ lli->lli_dir_pos = (loff_t)pos;
*basep = lli->lli_dir_pos;
out:
ll_dir_chain_fini(&chain);