afs_end_vnode_operation() calls the function to translate an abort code into an error return, but never actually assigns the error. Fix this by storing the looked up error back into the cursor. Signed-off-by: David Howells <dhowells@xxxxxxxxxx> --- fs/afs/rotate.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/fs/afs/rotate.c b/fs/afs/rotate.c index 1faef56b12bd..add0dbb18763 100644 --- a/fs/afs/rotate.c +++ b/fs/afs/rotate.c @@ -512,7 +512,6 @@ bool afs_select_current_fileserver(struct afs_fs_cursor *fc) int afs_end_vnode_operation(struct afs_fs_cursor *fc) { struct afs_net *net = afs_v2net(fc->vnode); - int ret; mutex_unlock(&fc->vnode->io_lock); @@ -520,9 +519,8 @@ int afs_end_vnode_operation(struct afs_fs_cursor *fc) afs_put_cb_interest(net, fc->cbi); afs_put_serverlist(net, fc->server_list); - ret = fc->ac.error; - if (ret == -ECONNABORTED) - afs_abort_to_error(fc->ac.abort_code); + if (fc->ac.error == -ECONNABORTED) + fc->ac.error = afs_abort_to_error(fc->ac.abort_code); return fc->ac.error; }