• Namjae Jeon's avatar
    ksmbd: fix incorrect handling of iterate_dir · 88541cb4
    Namjae Jeon authored
    if iterate_dir() returns non-negative value, caller has to treat it
    as normal and check there is any error while populating dentry
    information. ksmbd doesn't have to do anything because ksmbd already
    checks too small OutputBufferLength to store one file information.
    
    And because ctx->pos is set to file->f_pos when iterative_dir is called,
    remove restart_ctx(). And if iterate_dir() return -EIO, which mean
    directory entry is corrupted, return STATUS_FILE_CORRUPT_ERROR error
    response.
    
    This patch fixes some failure of SMB2_QUERY_DIRECTORY, which happens when
    ntfs3 is local filesystem.
    
    Fixes: e2f34481 ("cifsd: add server-side procedures for SMB3")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarHyunchul Lee <hyc.lee@gmail.com>
    Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    88541cb4
smb2pdu.c 232 KB