afs: Honour wsize Honour the wsize setting in struct netfs_io_request. Signed-off-by: David Howells <dhowells@redhat.com>
diff --git a/fs/afs/write.c b/fs/afs/write.c index 885dd02..03b4170 100644 --- a/fs/afs/write.c +++ b/fs/afs/write.c
@@ -203,12 +203,21 @@ void afs_create_write_requests(struct netfs_io_request *wreq) struct netfs_dirty_region *region; list_for_each_entry(region, &wreq->regions, flush_link) { - subreq = netfs_create_write_request(wreq, NETFS_UPLOAD_TO_SERVER, - region->from, - region->to - region->from, - afs_upload_to_server_worker); - if (subreq) - netfs_queue_write_request(subreq); + unsigned long long from = region->from; + unsigned long long to = region->to; + + while (from < to) { + unsigned long long len = region->to - region->from; + + if (wreq->wsize && len > wreq->wsize) + len = wreq->wsize; + subreq = netfs_create_write_request(wreq, NETFS_UPLOAD_TO_SERVER, + from, len, + afs_upload_to_server_worker); + if (subreq) + netfs_queue_write_request(subreq); + from += len; + } } }