Skip to content
  • Gera Kazakov's avatar
    target: Fix >= v3.9+ regression in PR APTPL + ALUA metadata write-out · e041da06
    Gera Kazakov authored
    commit f730f9158f6ee7b5c4d892af6b51a72194445ea4 upstream.
    
    This patch fixes a >= v3.9+ regression in __core_scsi3_write_aptpl_to_file()
    + core_alua_write_tpg_metadata() write-out, where a return value of -EIO was
    incorrectly being returned upon success.
    
    This bug was originally introduced in:
    
    commit 0e9b10a9
    
    
    Author: Al Viro <viro@zeniv.linux.org.uk>
    Date:   Sat Feb 23 15:22:43 2013 -0500
    
        target: writev() on single-element vector is pointless
    
    However, given that the return of core_scsi3_update_and_write_aptpl()
    was not used to determine if a command should be returned with non GOOD
    status, this bug was not being triggered in PR logic until v3.11-rc1 by
    commit:
    
    commit 459f213ba162bd13e113d6f92a8fa6c780fd67ed
    Author: Andy Grover <agrover@redhat.com>
    Date:   Thu May 16 10:41:02 2013 -0700
    
        target: Allocate aptpl_buf inside update_and_write_aptpl()
    
    So, go ahead and only return -EIO if kernel_write() returned a
    negative value.
    
    Reported-by: default avatarGera Kazakov <gkazakov@msn.com>
    Signed-off-by: default avatarGera Kazakov <gkazakov@msn.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Grover <agrover@redhat.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e041da06