ceph: fix __dcache_readdir()
authorYan, Zheng <zheng.z.yan@intel.com>
Thu, 13 Feb 2014 11:40:26 +0000 (19:40 +0800)
committerSage Weil <sage@inktank.com>
Mon, 17 Feb 2014 20:37:13 +0000 (12:37 -0800)
If directory is fragmented, readdir() read its dirfrags one by one.
After reading all dirfrags, the corresponding dentries are sorted in
(frag_t, off) order in the dcache. If dentries of a directory are all
cached, __dcache_readdir() can use the cached dentries to satisfy
readdir syscall. But when checking if a given dentry is after the
position of readdir, __dcache_readdir() compares numerical value of
frag_t directly. This is wrong, it should use ceph_frag_compare().

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
fs/ceph/dir.c

diff --cc fs/ceph/dir.c
Simple merge