summaryrefslogtreecommitdiffstats
path: root/fs/cifs
diff options
context:
space:
mode:
authorSteve French <stfrench@microsoft.com>2018-11-01 16:54:32 +0100
committerSteve French <stfrench@microsoft.com>2018-11-02 20:09:42 +0100
commitb98e26df07549d4649ac5b8f24c49f5c722bbc7e (patch)
tree7539c352ac56d64bd2eece3b2e7773f879606c0c /fs/cifs
parentcifs: don't dereference smb_file_target before null check (diff)
downloadlinux-b98e26df07549d4649ac5b8f24c49f5c722bbc7e.tar.xz
linux-b98e26df07549d4649ac5b8f24c49f5c722bbc7e.zip
cifs: fix signed/unsigned mismatch on aio_read patch
The patch "CIFS: Add support for direct I/O read" had a signed/unsigned mismatch (ssize_t vs. size_t) in the return from one function. Similar trivial change in aio_write Signed-off-by: Long Li <longli@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com> Reported-by: Julia Lawall <julia.lawall@lip6.fr>
Diffstat (limited to '')
-rw-r--r--fs/cifs/file.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 937ffa79066b..74c33d5fafc8 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -2625,18 +2625,21 @@ cifs_write_from_iter(loff_t offset, size_t len, struct iov_iter *from,
break;
if (ctx->direct_io) {
- cur_len = iov_iter_get_pages_alloc(
+ ssize_t result;
+
+ result = iov_iter_get_pages_alloc(
from, &pagevec, wsize, &start);
- if (cur_len < 0) {
+ if (result < 0) {
cifs_dbg(VFS,
"direct_writev couldn't get user pages "
"(rc=%zd) iter type %d iov_offset %zd "
"count %zd\n",
- cur_len, from->type,
+ result, from->type,
from->iov_offset, from->count);
dump_stack();
break;
}
+ cur_len = (size_t)result;
iov_iter_advance(from, cur_len);
nr_pages =
@@ -3322,21 +3325,23 @@ cifs_send_async_read(loff_t offset, size_t len, struct cifsFileInfo *open_file,
cur_len = min_t(const size_t, len, rsize);
if (ctx->direct_io) {
+ ssize_t result;
- cur_len = iov_iter_get_pages_alloc(
+ result = iov_iter_get_pages_alloc(
&direct_iov, &pagevec,
cur_len, &start);
- if (cur_len < 0) {
+ if (result < 0) {
cifs_dbg(VFS,
"couldn't get user pages (cur_len=%zd)"
" iter type %d"
" iov_offset %zd count %zd\n",
- cur_len, direct_iov.type,
+ result, direct_iov.type,
direct_iov.iov_offset,
direct_iov.count);
dump_stack();
break;
}
+ cur_len = (size_t)result;
iov_iter_advance(&direct_iov, cur_len);
rdata = cifs_readdata_direct_alloc(