diff --git a/[refs] b/[refs] index 68e03e6f78a4..bcb3bd4f3f56 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 69aa3f71580990f39e387d96ed1001d2f5fb04b1 +refs/heads/master: f021e9210185b46e41ec3a0e78ec1621e168eacb diff --git a/trunk/mm/filemap.c b/trunk/mm/filemap.c index 93595c327bbd..9b74674e36ad 100644 --- a/trunk/mm/filemap.c +++ b/trunk/mm/filemap.c @@ -1949,7 +1949,7 @@ generic_file_buffered_write(struct kiocb *iocb, const struct iovec *iov, buf = iov->iov_base + written; else { filemap_set_next_iovec(&cur_iov, &iov_base, written); - buf = iov->iov_base + iov_base; + buf = cur_iov->iov_base + iov_base; } do { @@ -2007,9 +2007,11 @@ generic_file_buffered_write(struct kiocb *iocb, const struct iovec *iov, count -= status; pos += status; buf += status; - if (unlikely(nr_segs > 1)) + if (unlikely(nr_segs > 1)) { filemap_set_next_iovec(&cur_iov, &iov_base, status); + buf = cur_iov->iov_base + iov_base; + } } } if (unlikely(copied != bytes))