• Yan, Zheng's avatar
    ceph: choose readdir frag based on previous readdir reply · b50c2de5
    Yan, Zheng authored
    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: default avatar"Yan, Zheng" <zyan@redhat.com>
    Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
    b50c2de5
Name
Last commit
Last update
..
Kconfig Loading commit data...
Makefile Loading commit data...
acl.c Loading commit data...
addr.c Loading commit data...
cache.c Loading commit data...
cache.h Loading commit data...
caps.c Loading commit data...
ceph_frag.c Loading commit data...
debugfs.c Loading commit data...
dir.c Loading commit data...
export.c Loading commit data...
file.c Loading commit data...
inode.c Loading commit data...
ioctl.c Loading commit data...
ioctl.h Loading commit data...
locks.c Loading commit data...
mds_client.c Loading commit data...
mds_client.h Loading commit data...
mdsmap.c Loading commit data...
snap.c Loading commit data...
strings.c Loading commit data...
super.c Loading commit data...
super.h Loading commit data...
xattr.c Loading commit data...