ceph: fix ceph_dir_llseek()
authorYan, Zheng <zheng.z.yan@intel.com>
Thu, 27 Feb 2014 08:26:24 +0000 (16:26 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Thu, 3 Apr 2014 02:33:52 +0000 (10:33 +0800)
commitf0494206076703aaa0c8005eff41c413216ae26b
treee12b390f7d458c085fb91b9ebe220e4147dbe41c
parent0ccd59266973047770d5160318561c9189b79c93
ceph: fix ceph_dir_llseek()

Comparing offset with inode->i_sb->s_maxbytes doesn't make sense for
directory. For a fragmented directory, offset (frag_t, off) can be
larger than inode->i_sb->s_maxbytes.

At the very beginning of ceph_dir_llseek(), local variable old_offset
is initialized to parameter offset. This doesn't make sense neither.
Old_offset should be ceph_make_fpos(fi->frag, fi->next_offset).

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: Alex Elder <elder@linaro.org>
fs/ceph/dir.c
fs/ceph/super.h