Yan, Zheng 9403514ba1 ceph: choose readdir frag based on previous readdir reply
commit b50c2de51e611da90cf3cf04c058f7e9bbe79e93 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-12 15:01:02 +02:00
..
2017-05-14 14:00:13 +02:00
2016-10-15 12:09:13 -07:00
2017-06-29 13:00:29 +02:00
2016-05-20 17:58:30 -07:00
2017-06-14 15:06:00 +02:00
2017-03-12 06:41:47 +01:00
2017-06-14 15:06:00 +02:00
2017-06-14 15:06:00 +02:00
2017-06-14 15:06:00 +02:00
2017-06-14 15:06:00 +02:00
2017-06-14 15:06:00 +02:00
2017-06-14 15:06:00 +02:00
2017-06-14 15:06:00 +02:00
2017-07-05 14:40:26 +02:00
2017-06-14 15:06:00 +02:00
2017-06-14 15:06:00 +02:00
2016-09-27 21:20:53 -04:00
2017-06-14 15:06:00 +02:00
2017-07-12 15:01:02 +02:00
2016-09-27 18:47:38 -04:00
2017-06-14 15:06:00 +02:00
2016-06-21 09:23:11 +10:00
2017-06-14 15:06:00 +02:00
2017-06-14 15:06:01 +02:00