Commit 6a0e3999 authored by David Howells's avatar David Howells

afs: Make struct afs_read::remain 64-bit

Make struct afs_read::remain 64-bit so that it can handle huge transfers if
we ever request them or the server decides to give us a bit extra data (the
other fields there are already 64-bit).
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Tested-by: default avatarMarc Dionne <marc.dionne@auristor.com>
parent 29f06985
...@@ -321,7 +321,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call) ...@@ -321,7 +321,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
void *buffer; void *buffer;
int ret; int ret;
_enter("{%u,%zu/%u;%u/%llu}", _enter("{%u,%zu/%u;%llu/%llu}",
call->unmarshall, call->offset, call->count, call->unmarshall, call->offset, call->count,
req->remain, req->actual_len); req->remain, req->actual_len);
...@@ -379,7 +379,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call) ...@@ -379,7 +379,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
/* extract the returned data */ /* extract the returned data */
case 3: case 3:
_debug("extract data %u/%llu %zu/%u", _debug("extract data %llu/%llu %zu/%u",
req->remain, req->actual_len, call->offset, call->count); req->remain, req->actual_len, call->offset, call->count);
buffer = kmap(req->pages[req->index]); buffer = kmap(req->pages[req->index]);
...@@ -405,9 +405,9 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call) ...@@ -405,9 +405,9 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
/* Discard any excess data the server gave us */ /* Discard any excess data the server gave us */
begin_discard: begin_discard:
case 4: case 4:
size = min_t(size_t, sizeof(afs_discard_buffer), req->remain); size = min_t(loff_t, sizeof(afs_discard_buffer), req->remain);
call->count = size; call->count = size;
_debug("extract discard %u/%llu %zu/%u", _debug("extract discard %llu/%llu %zu/%u",
req->remain, req->actual_len, call->offset, call->count); req->remain, req->actual_len, call->offset, call->count);
call->offset = 0; call->offset = 0;
......
...@@ -133,8 +133,8 @@ struct afs_read { ...@@ -133,8 +133,8 @@ struct afs_read {
loff_t pos; /* Where to start reading */ loff_t pos; /* Where to start reading */
loff_t len; /* How much we're asking for */ loff_t len; /* How much we're asking for */
loff_t actual_len; /* How much we're actually getting */ loff_t actual_len; /* How much we're actually getting */
loff_t remain; /* Amount remaining */
atomic_t usage; atomic_t usage;
unsigned int remain; /* Amount remaining */
unsigned int index; /* Which page we're reading into */ unsigned int index; /* Which page we're reading into */
unsigned int nr_pages; unsigned int nr_pages;
void (*page_done)(struct afs_call *, struct afs_read *); void (*page_done)(struct afs_call *, struct afs_read *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment