Whamcloud - gitweb
LU-904 ptlrpc: redo io on -EINPROGRESS
authorNiu Yawei <niu@whamcloud.com>
Fri, 13 Jan 2012 08:33:22 +0000 (00:33 -0800)
committerOleg Drokin <green@whamcloud.com>
Mon, 7 May 2012 19:34:34 +0000 (15:34 -0400)
commit51206e8cd42134400fa0b6259a92d7138f3dc984
treeaffd9e7f4db581c98c4ab4ec475171b0bea5c380
parentfe10f991534936fcee413836e88b06d6bf7992b5
LU-904 ptlrpc: redo io on -EINPROGRESS

When server return -EINPROGRESS for a write RPC, the client
should keep resending the RPC until server return other
error code or the client is evicted.

This is required by the new quota design: when a write on
OST can't acquire quota from master for broken network, it
should return -EINPROGRESS to inform the client to retry
write infinitely.

This patch also fixed the defect of redo io RPC can't be
aborted during eviction, in a lightweight manner.

Signed-off-by: Niu Yawei <niu@whamcloud.com>
Change-Id: Iea393cb1ea55e9d006f52dbfc39a2b9a3670d682
Reviewed-on: http://review.whamcloud.com/1962
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/lustre/lustre_idl.h
lustre/include/lustre_net.h
lustre/include/obd_support.h
lustre/liblustre/super.c
lustre/llite/llite_lib.c
lustre/obdfilter/filter_io_26.c
lustre/osc/osc_internal.h
lustre/osc/osc_request.c
lustre/ptlrpc/client.c
lustre/tests/replay-ost-single.sh