Revert "NFS: More fixes for nfs_direct_write_reschedule_io()"

This reverts commit edd1f06145 which is
commit b11243f720ee5f9376861099019c8542969b6318 upstream.

There are reported NFS problems in the 6.1.56 release, so revert a set
of NFS patches to hopefully resolve the issue.

Reported-by: poester <poester@internetbrands.com>
Link: https://lore.kernel.org/r/20231012165439.137237-2-kernel@linuxace.com
Reported-by: Daniel Díaz <daniel.diaz@linaro.org>
Link: https://lore.kernel.org/r/2023100755-livestock-barcode-fe41@gregkh
Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Anna Schumaker <Anna.Schumaker@Netapp.com>
Cc: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Greg Kroah-Hartman 2023-10-12 19:41:37 +02:00
parent 082280fe94
commit e8db8b5581

View file

@ -782,23 +782,18 @@ static void nfs_write_sync_pgio_error(struct list_head *head, int error)
static void nfs_direct_write_reschedule_io(struct nfs_pgio_header *hdr) static void nfs_direct_write_reschedule_io(struct nfs_pgio_header *hdr)
{ {
struct nfs_direct_req *dreq = hdr->dreq; struct nfs_direct_req *dreq = hdr->dreq;
struct nfs_page *req;
struct nfs_commit_info cinfo;
trace_nfs_direct_write_reschedule_io(dreq); trace_nfs_direct_write_reschedule_io(dreq);
nfs_init_cinfo_from_dreq(&cinfo, dreq);
spin_lock(&dreq->lock); spin_lock(&dreq->lock);
if (dreq->error == 0) if (dreq->error == 0) {
dreq->flags = NFS_ODIRECT_RESCHED_WRITES; dreq->flags = NFS_ODIRECT_RESCHED_WRITES;
set_bit(NFS_IOHDR_REDO, &hdr->flags); /* fake unstable write to let common nfs resend pages */
spin_unlock(&dreq->lock); hdr->verf.committed = NFS_UNSTABLE;
while (!list_empty(&hdr->pages)) { hdr->good_bytes = hdr->args.offset + hdr->args.count -
req = nfs_list_entry(hdr->pages.next); hdr->io_start;
nfs_list_remove_request(req);
nfs_unlock_request(req);
nfs_mark_request_commit(req, NULL, &cinfo, 0);
} }
spin_unlock(&dreq->lock);
} }
static const struct nfs_pgio_completion_ops nfs_direct_write_completion_ops = { static const struct nfs_pgio_completion_ops nfs_direct_write_completion_ops = {