• Li Zhong's avatar
    scsi: target: tcmu: clean the nl_cmd of the udev when nl send fails · 7d894862
    Li Zhong authored
    If the userspace process crashes while we send the nl msg, it is possible
    that the cmd in curr_nl_cmd of tcmu_dev never gets reset to 0, and and
    returns busy for other commands after the userspace process is restartd.
    
    More details below:
    
    /backstores/user:file/file> set attribute dev_size=2048
    Cannot set attribute dev_size: [Errno 3] No such process
    /backstores/user:file/file> set attribute dev_size=2048
    Cannot set attribute dev_size: [Errno 16] Device or resource busy
    
    with following kernel messages:
    [173605.747169] Unable to reconfigure device
    [173616.686674] tcmu daemon: command reply support 1.
    [173623.866978] netlink cmd 3 already executing on file
    [173623.866984] Unable to reconfigure device
    
    Also, it is not safe to leave the nl_cmd in the list, and not get deleted.
    
    This patch removes the nl_cmd from the list, and clear its data if it is
    not sent successfully.
    Signed-off-by: default avatarLi Zhong <lizhongfs@gmail.com>
    Acked-by: default avatarMike Christie <mchristi@redhat.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    7d894862
target_core_user.c 68.9 KB