diff options
author | Yan, Zheng <zyan@redhat.com> | 2017-04-24 11:56:50 +0800 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2017-05-04 09:19:24 +0200 |
commit | b50c2de51e611da90cf3cf04c058f7e9bbe79e93 (patch) | |
tree | 709577ea2cd61fc1e8402ca7e2db67043a843ff4 /lib/iomap_copy.c | |
parent | e010dd0ada619ed6d3411de7371fba12c1baa48b (diff) | |
download | linux-b50c2de51e611da90cf3cf04c058f7e9bbe79e93.tar.bz2 |
ceph: choose readdir frag based on previous readdir reply
The dirfragtree is lazily updated, it's not always accurate. Infinite
loops happens in following circumstance.
- client send request to read frag A
- frag A has been fragmented into frag B and C. So mds fills the reply
with contents of frag B
- client wants to read next frag C. ceph_choose_frag(frag value of C)
return frag A.
The fix is using previous readdir reply to calculate next readdir frag
when possible.
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'lib/iomap_copy.c')
0 files changed, 0 insertions, 0 deletions