Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
b=17682 fix time unit in message
[fs/lustre-release.git]
/
lustre
/
liblustre
/
dir.c
diff --git
a/lustre/liblustre/dir.c
b/lustre/liblustre/dir.c
index
57960a2
..
ce812de
100644
(file)
--- a/
lustre/liblustre/dir.c
+++ b/
lustre/liblustre/dir.c
@@
-61,8
+61,6
@@
#include <file.h>
#endif
#include <file.h>
#endif
-#undef LIST_HEAD
-
#ifdef HAVE_LINUX_UNISTD_H
#include <linux/unistd.h>
#elif defined(HAVE_UNISTD_H)
#ifdef HAVE_LINUX_UNISTD_H
#include <linux/unistd.h>
#elif defined(HAVE_UNISTD_H)
@@
-132,8
+130,8
@@
static int llu_dir_do_readpage(struct inode *inode, struct page *page)
return rc;
}
return rc;
}
-static cfs_page_t *llu_dir_read_page(struct inode *ino, __u
32
hash,
-
int exact, struct ll_dir_chain *chain)
+static cfs_page_t *llu_dir_read_page(struct inode *ino, __u
64
hash,
+ int exact, struct ll_dir_chain *chain)
{
cfs_page_t *page;
int rc;
{
cfs_page_t *page;
int rc;
@@
-194,12
+192,12
@@
static int filldir(char *buf, int buflen,
return 0;
}
return 0;
}
-/*
+/*
* TODO: much of the code here is similar/identical to llite ll_readdir().
* These code can be factored out and shared in a common module.
*/
* TODO: much of the code here is similar/identical to llite ll_readdir().
* These code can be factored out and shared in a common module.
*/
-ssize_t llu_iop_filldirentries(struct inode *dir, _SYSIO_OFF_T *basep,
+ssize_t llu_iop_filldirentries(struct inode *dir, _SYSIO_OFF_T *basep,
char *buf, size_t nbytes)
{
struct llu_inode_info *lli = llu_i2info(dir);
char *buf, size_t nbytes)
{
struct llu_inode_info *lli = llu_i2info(dir);
@@
-211,6
+209,7
@@
ssize_t llu_iop_filldirentries(struct inode *dir, _SYSIO_OFF_T *basep,
int rc;
int done;
int shift;
int rc;
int done;
int shift;
+ __u16 type;
ENTRY;
liblustre_wait_event(0);
ENTRY;
liblustre_wait_event(0);
@@
-237,9
+236,9
@@
ssize_t llu_iop_filldirentries(struct inode *dir, _SYSIO_OFF_T *basep,
struct lu_dirent *ent;
if (!IS_ERR(page)) {
struct lu_dirent *ent;
if (!IS_ERR(page)) {
- /*
+ /*
* If page is empty (end of directoryis reached),
* If page is empty (end of directoryis reached),
- * use this value.
+ * use this value.
*/
__u64 hash = DIR_END_OFF;
__u64 next;
*/
__u64 hash = DIR_END_OFF;
__u64 next;
@@
-271,10
+270,10
@@
ssize_t llu_iop_filldirentries(struct inode *dir, _SYSIO_OFF_T *basep,
fid = ent->lde_fid;
name = ent->lde_name;
fid_le_to_cpu(&fid, &fid);
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,
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);
&filled);
}
next = le64_to_cpu(dp->ldp_hash_end);
@@
-309,7
+308,7
@@
ssize_t llu_iop_filldirentries(struct inode *dir, _SYSIO_OFF_T *basep,
PFID(&lli->lli_fid), (unsigned long)pos, rc);
}
}
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);
*basep = lli->lli_dir_pos;
out:
ll_dir_chain_fini(&chain);