• Martin Brandenburg's avatar
    orangefs: initialize op on loop restart in orangefs_devreq_read · a0ec1ded
    Martin Brandenburg authored
    In orangefs_devreq_read, there is a loop which picks an op off the list
    of pending ops.  If the loop fails to find an op, there is nothing to
    read, and it returns EAGAIN.  If the op has been given up on, the loop
    is restarted via a goto.  The bug is that the variable which the found
    op is written to is not reinitialized, so if there are no more eligible
    ops on the list, the code runs again on the already handled op.
    
    This is triggered by interrupting a process while the op is being copied
    to the client-core.  It's a fairly small window, but it's there.
    Signed-off-by: default avatarMartin Brandenburg <martin@omnibond.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a0ec1ded
devorangefs-req.c 22.7 KB