summaryrefslogtreecommitdiff
path: root/fs/afs
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2017-03-16 19:27:46 +0300
committerDavid Howells <dhowells@redhat.com>2017-03-16 19:27:46 +0300
commit6a0e3999e5cb3daa0468073fcdee0767422a4056 (patch)
tree02039f55658e91cebdca8d426ca2d8499458fc6e /fs/afs
parent29f069853287dcb46eaf45a50dbf1232c1444ac6 (diff)
downloadlinux-6a0e3999e5cb3daa0468073fcdee0767422a4056.tar.xz
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: David Howells <dhowells@redhat.com> Tested-by: Marc Dionne <marc.dionne@auristor.com>
Diffstat (limited to 'fs/afs')
-rw-r--r--fs/afs/fsclient.c8
-rw-r--r--fs/afs/internal.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
index 4314f9e63a2c..0778c5b6b59b 100644
--- a/fs/afs/fsclient.c
+++ b/fs/afs/fsclient.c
@@ -321,7 +321,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
void *buffer;
int ret;
- _enter("{%u,%zu/%u;%u/%llu}",
+ _enter("{%u,%zu/%u;%llu/%llu}",
call->unmarshall, call->offset, call->count,
req->remain, req->actual_len);
@@ -379,7 +379,7 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
/* extract the returned data */
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);
buffer = kmap(req->pages[req->index]);
@@ -405,9 +405,9 @@ static int afs_deliver_fs_fetch_data(struct afs_call *call)
/* Discard any excess data the server gave us */
begin_discard:
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;
- _debug("extract discard %u/%llu %zu/%u",
+ _debug("extract discard %llu/%llu %zu/%u",
req->remain, req->actual_len, call->offset, call->count);
call->offset = 0;
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index 832555003d03..a6901360fb81 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -133,8 +133,8 @@ struct afs_read {
loff_t pos; /* Where to start reading */
loff_t len; /* How much we're asking for */
loff_t actual_len; /* How much we're actually getting */
+ loff_t remain; /* Amount remaining */
atomic_t usage;
- unsigned int remain; /* Amount remaining */
unsigned int index; /* Which page we're reading into */
unsigned int nr_pages;
void (*page_done)(struct afs_call *, struct afs_read *);