mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-06 05:06:29 +00:00
net/rds: Set fr_state only to FRMR_IS_FREE if IB_WR_LOCAL_INV had been successful
Fix a bug where fr_state first goes to FRMR_IS_STALE, because of a failure of operation IB_WR_LOCAL_INV, but then gets set back to "FRMR_IS_FREE" uncoditionally, even though the operation failed. Signed-off-by: Gerd Rausch <gerd.rausch@oracle.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
aea01a2234
commit
9547dff108
@ -309,7 +309,8 @@ void rds_ib_mr_cqe_handler(struct rds_ib_connection *ic, struct ib_wc *wc)
|
||||
}
|
||||
|
||||
if (frmr->fr_inv) {
|
||||
frmr->fr_state = FRMR_IS_FREE;
|
||||
if (frmr->fr_state == FRMR_IS_INUSE)
|
||||
frmr->fr_state = FRMR_IS_FREE;
|
||||
frmr->fr_inv = false;
|
||||
wake_up(&frmr->fr_inv_done);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user