• Steve French's avatar
    [CIFS] clean up error handling in cifs_unlink · 6050247d
    Steve French authored
    Currently, if a standard delete fails and we end up getting -EACCES
    we try to clear ATTR_READONLY and try the delete again. If that
    then fails with -ETXTBSY then we try a rename_pending_delete. We
    aren't handling other errors appropriately though.
    
    Another client could have deleted the file in the meantime and
    we get back -ENOENT, for instance. In that case we wouldn't do a
    d_drop. Instead of retrying in a separate call, simply goto the
    original call and use the error handling from that.
    
    Also, we weren't properly undoing any attribute changes that
    were done before returning an error back to the caller.
    
    CC: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
    6050247d
inode.c 52.5 KB