diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/iov_iter.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/iov_iter.c b/lib/iov_iter.c index 41b06af19536..957e3e58df65 100644 --- a/lib/iov_iter.c +++ b/lib/iov_iter.c @@ -1302,7 +1302,7 @@ ssize_t iov_iter_get_pages(struct iov_iter *i, res = get_user_pages_fast(addr, n, iov_iter_rw(i) != WRITE ? FOLL_WRITE : 0, pages); - if (unlikely(res < 0)) + if (unlikely(res <= 0)) return res; return (res == n ? len : res * PAGE_SIZE) - *start; 0;}),({ @@ -1384,8 +1384,9 @@ ssize_t iov_iter_get_pages_alloc(struct iov_iter *i, return -ENOMEM; res = get_user_pages_fast(addr, n, iov_iter_rw(i) != WRITE ? FOLL_WRITE : 0, p); - if (unlikely(res < 0)) { + if (unlikely(res <= 0)) { kvfree(p); + *pages = NULL; return res; } *pages = p; |