• Eric Van Hensbergen's avatar
    9p: fix readdir corner cases · 3e2796a9
    Eric Van Hensbergen authored
    The patch below also addresses a couple of other corner cases in readdir
    seen with a large (e.g. 64k) msize.  I'm not sure what people think of
    my co-opting of fid->aux here.  I'd be happy to rework if there's a better
    way.
    
    When the size of the user supplied buffer passed to readdir is smaller
    than the data returned in one go by the 9P read request, v9fs_dir_readdir()
    currently discards extra data so that, on the next call, a 9P read
    request will be issued with offset < previous offset + bytes returned,
    which voilates the constraint described in paragraph 3 of read(5) description.
    This patch preseves the leftover data in fid->aux for use in the next call.
    Signed-off-by: default avatarJim Garlick <garlick@llnl.gov>
    Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
    3e2796a9
vfs_dir.c 4.27 KB