]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: handle dirfrag mismatch when processing readdir request
authorYan, Zheng <zheng.z.yan@intel.com>
Thu, 19 Sep 2013 05:48:38 +0000 (13:48 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Sat, 5 Oct 2013 03:31:12 +0000 (11:31 +0800)
commit5074464017eea816ff534bdd8dec446278fddd09
tree05a149b08df5e32eb89ceed294a11e26215f8a72
parentfe99882583d7373a71a3a1c22bddc8452d140a0a
mds: handle dirfrag mismatch when processing readdir request

If client has outdated dirfrags information, readdir request from
it may specify a non-existing dirfrag. Current method to handle this
case is reply -EAGAIN and let client retry. When client receives the
the -EAGAIN reply, it need to refresh its dirfrags information first,
then re-send the readdir request.

A better way to handle client request that specify a non-existing
dirfrag is: MDS chooses a approximate dirfrag, then handle the request
like normal. When client receives the readdir reply, it will also
update its dirfrags information.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
src/mds/Server.cc