Merge tag 'for-linus-20190715' of git://git.kernel.dk/linux-block
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 16 Jul 2019 04:20:52 +0000 (21:20 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 16 Jul 2019 04:20:52 +0000 (21:20 -0700)
Pull more block updates from Jens Axboe:
 "A later pull request with some followup items. I had some vacation
  coming up to the merge window, so certain things items were delayed a
  bit. This pull request also contains fixes that came in within the
  last few days of the merge window, which I didn't want to push right
  before sending you a pull request.

  This contains:

   - NVMe pull request, mostly fixes, but also a few minor items on the
     feature side that were timing constrained (Christoph et al)

   - Report zones fixes (Damien)

   - Removal of dead code (Damien)

   - Turn on cgroup psi memstall (Josef)

   - block cgroup MAINTAINERS entry (Konstantin)

   - Flush init fix (Josef)

   - blk-throttle low iops timing fix (Konstantin)

   - nbd resize fixes (Mike)

   - nbd 0 blocksize crash fix (Xiubo)

   - block integrity error leak fix (Wenwen)

   - blk-cgroup writeback and priority inheritance fixes (Tejun)"

* tag 'for-linus-20190715' of git://git.kernel.dk/linux-block: (42 commits)
  MAINTAINERS: add entry for block io cgroup
  null_blk: fixup ->report_zones() for !CONFIG_BLK_DEV_ZONED
  block: Limit zone array allocation size
  sd_zbc: Fix report zones buffer allocation
  block: Kill gfp_t argument of blkdev_report_zones()
  block: Allow mapping of vmalloc-ed buffers
  block/bio-integrity: fix a memory leak bug
  nvme: fix NULL deref for fabrics options
  nbd: add netlink reconfigure resize support
  nbd: fix crash when the blksize is zero
  block: Disable write plugging for zoned block devices
  block: Fix elevator name declaration
  block: Remove unused definitions
  nvme: fix regression upon hot device removal and insertion
  blk-throttle: fix zero wait time for iops throttled group
  block: Fix potential overflow in blk_report_zones()
  blkcg: implement REQ_CGROUP_PUNT
  blkcg, writeback: Implement wbc_blkcg_css()
  blkcg, writeback: Add wbc->no_cgroup_owner
  blkcg, writeback: Rename wbc_account_io() to wbc_account_cgroup_owner()
  ...

1  2 
Documentation/admin-guide/cgroup-v2.rst
MAINTAINERS
drivers/nvme/host/fc.c
fs/buffer.c
fs/ext4/page-io.c
fs/f2fs/data.c
fs/f2fs/super.c
fs/xfs/xfs_aops.c
include/linux/cgroup.h

diff --cc MAINTAINERS
Simple merge
Simple merge
diff --cc fs/buffer.c
Simple merge
Simple merge
diff --cc fs/f2fs/data.c
index 0ca530afc684ee622fbff18781e432420c1bc12a,e1cab1717ac77681412fabbe523196295f95058a..4eb2f39201401e228a5698329200cf008cd8c485
@@@ -481,61 -481,6 +481,61 @@@ int f2fs_submit_page_bio(struct f2fs_io
        return 0;
  }
  
-               wbc_account_io(fio->io_wbc, page, PAGE_SIZE);
 +int f2fs_merge_page_bio(struct f2fs_io_info *fio)
 +{
 +      struct bio *bio = *fio->bio;
 +      struct page *page = fio->encrypted_page ?
 +                      fio->encrypted_page : fio->page;
 +
 +      if (!f2fs_is_valid_blkaddr(fio->sbi, fio->new_blkaddr,
 +                      __is_meta_io(fio) ? META_GENERIC : DATA_GENERIC))
 +              return -EFSCORRUPTED;
 +
 +      trace_f2fs_submit_page_bio(page, fio);
 +      f2fs_trace_ios(fio, 0);
 +
 +      if (bio && (*fio->last_block + 1 != fio->new_blkaddr ||
 +                      !__same_bdev(fio->sbi, fio->new_blkaddr, bio))) {
 +              __submit_bio(fio->sbi, bio, fio->type);
 +              bio = NULL;
 +      }
 +alloc_new:
 +      if (!bio) {
 +              bio = __bio_alloc(fio->sbi, fio->new_blkaddr, fio->io_wbc,
 +                              BIO_MAX_PAGES, false, fio->type, fio->temp);
 +              bio_set_op_attrs(bio, fio->op, fio->op_flags);
 +      }
 +
 +      if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) {
 +              __submit_bio(fio->sbi, bio, fio->type);
 +              bio = NULL;
 +              goto alloc_new;
 +      }
 +
 +      if (fio->io_wbc)
++              wbc_account_cgroup_owner(fio->io_wbc, page, PAGE_SIZE);
 +
 +      inc_page_count(fio->sbi, WB_DATA_TYPE(page));
 +
 +      *fio->last_block = fio->new_blkaddr;
 +      *fio->bio = bio;
 +
 +      return 0;
 +}
 +
 +static void f2fs_submit_ipu_bio(struct f2fs_sb_info *sbi, struct bio **bio,
 +                                                      struct page *page)
 +{
 +      if (!bio)
 +              return;
 +
 +      if (!__has_merged_page(*bio, NULL, page, 0))
 +              return;
 +
 +      __submit_bio(sbi, *bio, DATA);
 +      *bio = NULL;
 +}
 +
  void f2fs_submit_page_write(struct f2fs_io_info *fio)
  {
        struct f2fs_sb_info *sbi = fio->sbi;
diff --cc fs/f2fs/super.c
Simple merge
index 761248ee27785afe07be567cf9d4aa87705aa031,11f703d4a60568fff5c2fa3e93647ebc8424ca38..f16d5f196c6b15cfb7cd84807984a76cf10b52dd
@@@ -796,7 -788,6 +796,7 @@@ xfs_add_to_ioend
        }
  
        wpc->ioend->io_size += len;
-       wbc_account_io(wbc, page, len);
++      wbc_account_cgroup_owner(wbc, page, len);
  }
  
  STATIC void
Simple merge