• D
    afs: Fix error propagation from server record check/update · 0ab4c959
    David Howells 提交于
    afs_check/update_server_record() should be setting fc->error rather than
    fc->ac.error as they're called from within the cursor iteration function.
    
    afs_fs_cursor::error is where the error code of the attempt to call the
    operation on multiple servers is integrated and is the final result,
    whereas afs_addr_cursor::error is used to hold the error from individual
    iterations of the call loop.  (Note there's also an afs_vl_cursor which
    also wraps afs_addr_cursor for accessing VL servers rather than file
    servers).
    
    Fix this by setting fc->error in the afs_check/update_server_record() so
    that any error incurred whilst talking to the VL server correctly
    propagates to the final result.
    
    This results in:
    
    	kAFS: Unexpected error from FS.StoreData -512
    
    being seen, even though the store-data op is non-interruptible.  The error
    is actually coming from the server record update getting interrupted.
    
    Fixes: d2ddc776 ("afs: Overhaul volume and server record caching and fileserver rotation")
    Signed-off-by: NDavid Howells <dhowells@redhat.com>
    0ab4c959
server.c 14.3 KB