NFS: Ensure that we break out of read/write_schedule_segment on error
Currently we do break out of the for() loop, but we also need to break out of the enclosing do {} while()... Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Fred Isaman <iisaman@netapp.com>
This commit is contained in:
parent
68cd6fa4f3
commit
71e8cc00c6
|
@ -396,7 +396,7 @@ static ssize_t nfs_direct_read_schedule_segment(struct nfs_pageio_descriptor *de
|
||||||
pos += req_len;
|
pos += req_len;
|
||||||
count -= req_len;
|
count -= req_len;
|
||||||
}
|
}
|
||||||
} while (count != 0);
|
} while (count != 0 && result >= 0);
|
||||||
|
|
||||||
kfree(pagevec);
|
kfree(pagevec);
|
||||||
|
|
||||||
|
@ -692,6 +692,7 @@ static ssize_t nfs_direct_write_schedule_segment(struct nfs_pageio_descriptor *d
|
||||||
nfs_release_request(req);
|
nfs_release_request(req);
|
||||||
nfs_direct_release_pages(pagevec + i,
|
nfs_direct_release_pages(pagevec + i,
|
||||||
npages - i);
|
npages - i);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
pgbase = 0;
|
pgbase = 0;
|
||||||
bytes -= req_len;
|
bytes -= req_len;
|
||||||
|
@ -700,7 +701,7 @@ static ssize_t nfs_direct_write_schedule_segment(struct nfs_pageio_descriptor *d
|
||||||
pos += req_len;
|
pos += req_len;
|
||||||
count -= req_len;
|
count -= req_len;
|
||||||
}
|
}
|
||||||
} while (count != 0);
|
} while (count != 0 && result >= 0);
|
||||||
|
|
||||||
kfree(pagevec);
|
kfree(pagevec);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue