Loading fs/cifs/smbdirect.c +19 −19 Original line number Diff line number Diff line Loading @@ -2295,8 +2295,12 @@ static void smbd_mr_recovery_work(struct work_struct *work) int rc; list_for_each_entry(smbdirect_mr, &info->mr_list, list) { if (smbdirect_mr->state == MR_INVALIDATED || smbdirect_mr->state == MR_ERROR) { if (smbdirect_mr->state == MR_INVALIDATED) ib_dma_unmap_sg( info->id->device, smbdirect_mr->sgl, smbdirect_mr->sgl_count, smbdirect_mr->dir); else if (smbdirect_mr->state == MR_ERROR) { /* recover this MR entry */ rc = ib_dereg_mr(smbdirect_mr->mr); Loading @@ -2320,12 +2324,9 @@ static void smbd_mr_recovery_work(struct work_struct *work) smbd_disconnect_rdma_connection(info); continue; } if (smbdirect_mr->state == MR_INVALIDATED) ib_dma_unmap_sg( info->id->device, smbdirect_mr->sgl, smbdirect_mr->sgl_count, smbdirect_mr->dir); } else /* This MR is being used, don't recover it */ continue; smbdirect_mr->state = MR_READY; Loading @@ -2340,7 +2341,6 @@ static void smbd_mr_recovery_work(struct work_struct *work) wake_up_interruptible(&info->wait_mr); } } } static void destroy_mr_list(struct smbd_connection *info) { Loading Loading
fs/cifs/smbdirect.c +19 −19 Original line number Diff line number Diff line Loading @@ -2295,8 +2295,12 @@ static void smbd_mr_recovery_work(struct work_struct *work) int rc; list_for_each_entry(smbdirect_mr, &info->mr_list, list) { if (smbdirect_mr->state == MR_INVALIDATED || smbdirect_mr->state == MR_ERROR) { if (smbdirect_mr->state == MR_INVALIDATED) ib_dma_unmap_sg( info->id->device, smbdirect_mr->sgl, smbdirect_mr->sgl_count, smbdirect_mr->dir); else if (smbdirect_mr->state == MR_ERROR) { /* recover this MR entry */ rc = ib_dereg_mr(smbdirect_mr->mr); Loading @@ -2320,12 +2324,9 @@ static void smbd_mr_recovery_work(struct work_struct *work) smbd_disconnect_rdma_connection(info); continue; } if (smbdirect_mr->state == MR_INVALIDATED) ib_dma_unmap_sg( info->id->device, smbdirect_mr->sgl, smbdirect_mr->sgl_count, smbdirect_mr->dir); } else /* This MR is being used, don't recover it */ continue; smbdirect_mr->state = MR_READY; Loading @@ -2340,7 +2341,6 @@ static void smbd_mr_recovery_work(struct work_struct *work) wake_up_interruptible(&info->wait_mr); } } } static void destroy_mr_list(struct smbd_connection *info) { Loading