From: Jens Axboe Date: Mon, 15 Apr 2019 14:14:19 +0000 (-0600) Subject: Merge tag 'v5.1-rc5' into for-5.2/block X-Git-Tag: v5.4-rc1~945^2~75^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d7ba866759c63a65a66eb4f329d6f2e0e8c57a0c;p=platform%2Fkernel%2Flinux-rpi.git Merge tag 'v5.1-rc5' into for-5.2/block Pull in v5.1-rc5 to resolve two conflicts. One is in BFQ, in just a comment, and is trivial. The other one is a conflict due to a later fix in the bio multi-page work, and needs a bit more care. * tag 'v5.1-rc5': (476 commits) Linux 5.1-rc5 fs: prevent page refcount overflow in pipe_buf_get mm: prevent get_user_pages() from overflowing page refcount mm: add 'try_get_page()' helper function mm: make page ref count overflow check tighter and more explicit clk: imx: Fix PLL_1416X not rounding rates clk: mediatek: fix clk-gate flag setting arm64: futex: Fix FUTEX_WAKE_OP atomic ops with non-zero result value iommu/amd: Set exclusion range correctly clang-format: Update with the latest for_each macro list perf/core: Fix perf_event_disable_inatomic() race block: fix the return errno for direct IO Revert "SUNRPC: Micro-optimise when the task is known not to be sleeping" NFSv4.1 fix incorrect return value in copy_file_range xprtrdma: Fix helper that drains the transport NFS: Fix handling of reply page vector NFS: Forbid setting AF_INET6 to "struct sockaddr_in"->sin_family. dma-debug: only skip one stackframe entry platform/x86: pmc_atom: Drop __initconst on dmi table nvmet: fix discover log page when offsets are used ... Signed-off-by: Jens Axboe --- d7ba866759c63a65a66eb4f329d6f2e0e8c57a0c diff --cc block/bfq-iosched.c index bcaa4bd,dfb8cb0..3d64e04 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@@ -3582,12 -3348,12 +3583,10 @@@ void bfq_bfqq_expire(struct bfq_data *b * reason. */ __bfq_bfqq_recalc_budget(bfqd, bfqq, reason); - ref = bfqq->ref; - __bfq_bfqq_expire(bfqd, bfqq); - - if (ref == 1) /* bfqq is gone, no more actions on it */ + if (__bfq_bfqq_expire(bfqd, bfqq)) + /* bfqq is gone, no more actions on it */ return; - bfqq->injected_service = 0; - /* mark bfqq as waiting a request only if a bic still points to it */ if (!bfq_bfqq_busy(bfqq) && reason != BFQQE_BUDGET_TIMEOUT && diff --cc include/linux/bvec.h index 44b0f46,3bc9187..3368e5b --- a/include/linux/bvec.h +++ b/include/linux/bvec.h @@@ -151,8 -156,8 +151,8 @@@ static inline void bvec_advance(const s { struct bio_vec *bv = &iter_all->bv; - if (bv->bv_page) { + if (iter_all->done) { - bv->bv_page = nth_page(bv->bv_page, 1); + bv->bv_page++; bv->bv_offset = 0; } else { bv->bv_page = bvec->bv_page;