OSDN Git Service

Merge tag 'v5.1-rc6' into for-5.2/block
authorJens Axboe <axboe@kernel.dk>
Mon, 22 Apr 2019 15:47:36 +0000 (09:47 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 22 Apr 2019 15:47:36 +0000 (09:47 -0600)
Pull in v5.1-rc6 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-rc6': (770 commits)
  Linux 5.1-rc6
  block: make sure that bvec length can't be overflow
  block: kill all_q_node in request_queue
  x86/cpu/intel: Lower the "ENERGY_PERF_BIAS: Set to normal" message's log priority
  coredump: fix race condition between mmget_not_zero()/get_task_mm() and core dumping
  mm/kmemleak.c: fix unused-function warning
  init: initialize jump labels before command line option parsing
  kernel/watchdog_hld.c: hard lockup message should end with a newline
  kcov: improve CONFIG_ARCH_HAS_KCOV help text
  mm: fix inactive list balancing between NUMA nodes and cgroups
  mm/hotplug: treat CMA pages as unmovable
  proc: fixup proc-pid-vm test
  proc: fix map_files test on F29
  mm/vmstat.c: fix /proc/vmstat format for CONFIG_DEBUG_TLBFLUSH=y CONFIG_SMP=n
  mm/memory_hotplug: do not unlock after failing to take the device_hotplug_lock
  mm: swapoff: shmem_unuse() stop eviction without igrab()
  mm: swapoff: take notice of completion sooner
  mm: swapoff: remove too limiting SWAP_UNUSE_MAX_TRIES
  mm: swapoff: shmem_find_swap_entries() filter out other types
  slab: store tagged freelist for off-slab slabmgmt
  ...

Signed-off-by: Jens Axboe <axboe@kernel.dk>
15 files changed:
1  2 
block/bfq-iosched.c
block/bfq-iosched.h
block/bfq-wf2q.c
block/bio.c
drivers/block/paride/pcd.c
drivers/block/paride/pf.c
drivers/block/virtio_blk.c
drivers/block/xsysace.c
drivers/md/dm-integrity.c
drivers/nvme/host/core.c
include/linux/bio.h
include/linux/blkdev.h
include/linux/bvec.h
include/linux/kernel.h
lib/Kconfig.debug

@@@ -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 &&
Simple merge
Simple merge
diff --cc block/bio.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -146,17 -151,18 +146,23 @@@ static inline struct bio_vec *bvec_init
        return &iter_all->bv;
  }
  
- static inline void mp_bvec_next_segment(const struct bio_vec *bvec,
-                                       struct bvec_iter_all *iter_all)
++static inline struct page *bvec_nth_page(struct page *page, int idx)
++{
++      return idx == 0 ? page : nth_page(page, idx);
++}
++
+ static inline void bvec_advance(const struct bio_vec *bvec,
+                               struct bvec_iter_all *iter_all)
  {
        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;
-               bv->bv_offset = bvec->bv_offset;
+               bv->bv_page = bvec_nth_page(bvec->bv_page, bvec->bv_offset /
+                                           PAGE_SIZE);
+               bv->bv_offset = bvec->bv_offset & ~PAGE_MASK;
        }
        bv->bv_len = min_t(unsigned int, PAGE_SIZE - bv->bv_offset,
                           bvec->bv_len - iter_all->done);
Simple merge
Simple merge