24 Mar, 2019

1 commit

  • Pull io_uring fixes and improvements from Jens Axboe:
    "The first five in this series are heavily inspired by the work Al did
    on the aio side to fix the races there.

    The last two re-introduce a feature that was in io_uring before it got
    merged, but which I pulled since we didn't have a good way to have
    BVEC iters that already have a stable reference. These aren't
    necessarily related to block, it's just how io_uring pins fixed
    buffers"

    * tag 'io_uring-20190323' of git://git.kernel.dk/linux-block:
    block: add BIO_NO_PAGE_REF flag
    iov_iter: add ITER_BVEC_FLAG_NO_REF flag
    io_uring: mark me as the maintainer
    io_uring: retry bulk slab allocs as single allocs
    io_uring: fix poll races
    io_uring: fix fget/fput handling
    io_uring: add prepped flag
    io_uring: make io_read/write return an integer
    io_uring: use regular request ref counts

    Linus Torvalds
     

21 Mar, 2019

4 commits

  • Avoid that the following warnings are reported when building with W=1:

    block/blk-cgroup.c:1755: warning: Function parameter or member 'q' not described in 'blkcg_schedule_throttle'
    block/blk-cgroup.c:1755: warning: Function parameter or member 'use_memdelay' not described in 'blkcg_schedule_throttle'
    block/blk-cgroup.c:1779: warning: Function parameter or member 'blkg' not described in 'blkcg_add_delay'
    block/blk-cgroup.c:1779: warning: Function parameter or member 'now' not described in 'blkcg_add_delay'
    block/blk-cgroup.c:1779: warning: Function parameter or member 'delta' not described in 'blkcg_add_delay'

    Signed-off-by: Bart Van Assche
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • This patch avoids that the following warning is reported when building
    with W=1:

    block/blk-iolatency.c:734:5: warning: no previous prototype for 'blk_iolatency_init' [-Wmissing-prototypes]

    Cc: Josef Bacik
    Fixes: d70675121546 ("block: introduce blk-iolatency io controller") # v4.19
    Signed-off-by: Bart Van Assche
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • This function is not used outside the block layer core. Hence unexport it.

    Cc: Christoph Hellwig
    Cc: Ming Lei
    Signed-off-by: Bart Van Assche
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • For q->poll_nsec == -1, means doing classic poll, not hybrid poll.
    We introduce a new flag BLK_MQ_POLL_CLASSIC to replace -1, which
    may make code much easier to read.

    Additionally, since val is an int obtained with kstrtoint(), val can be
    a negative value other than -1, so return -EINVAL for that case.

    Thanks to Damien Le Moal for some good suggestion.

    Reviewed-by: Damien Le Moal
    Signed-off-by: Yufen Yu
    Signed-off-by: Jens Axboe

    Yufen Yu
     

19 Mar, 2019

1 commit

  • If bio_iov_iter_get_pages() is called on an iov_iter that is flagged
    with NO_REF, then we don't need to add a page reference for the pages
    that we add.

    Add BIO_NO_PAGE_REF to track this in the bio, so IO completion knows
    not to drop a reference to these pages.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

18 Mar, 2019

1 commit


17 Mar, 2019

1 commit

  • Pull more block layer changes from Jens Axboe:
    "This is a collection of both stragglers, and fixes that came in after
    I finalized the initial pull. This contains:

    - An MD pull request from Song, with a few minor fixes

    - Set of NVMe patches via Christoph

    - Pull request from Konrad, with a few fixes for xen/blkback

    - pblk fix IO calculation fix (Javier)

    - Segment calculation fix for pass-through (Ming)

    - Fallthrough annotation for blkcg (Mathieu)"

    * tag 'for-5.1/block-post-20190315' of git://git.kernel.dk/linux-block: (25 commits)
    blkcg: annotate implicit fall through
    nvme-tcp: support C2HData with SUCCESS flag
    nvmet: ignore EOPNOTSUPP for discard
    nvme: add proper write zeroes setup for the multipath device
    nvme: add proper discard setup for the multipath device
    nvme: remove nvme_ns_config_oncs
    nvme: disable Write Zeroes for qemu controllers
    nvmet-fc: bring Disconnect into compliance with FC-NVME spec
    nvmet-fc: fix issues with targetport assoc_list list walking
    nvme-fc: reject reconnect if io queue count is reduced to zero
    nvme-fc: fix numa_node when dev is null
    nvme-fc: use nr_phys_segments to determine existence of sgl
    nvme-loop: init nvmet_ctrl fatal_err_work when allocate
    nvme: update comment to make the code easier to read
    nvme: put ns_head ref if namespace fails allocation
    nvme-trace: fix cdw10 buffer overrun
    nvme: don't warn on block content change effects
    nvme: add get-feature to admin cmds tracer
    md: Fix failed allocation of md_register_thread
    It's wrong to add len to sector_nr in raid10 reshape twice
    ...

    Linus Torvalds
     

13 Mar, 2019

1 commit

  • All users of VM_MAX_READAHEAD actually convert it to kbytes and then to
    pages. Define the macro explicitly as (SZ_128K / PAGE_SIZE). This
    simplifies the expression in every filesystem. Also rename the macro to
    VM_READAHEAD_PAGES to properly convey its meaning. Finally remove unused
    VM_MIN_READAHEAD

    [akpm@linux-foundation.org: fix fs/io_uring.c, per Stephen]
    Link: http://lkml.kernel.org/r/20181221144053.24318-1-nborisov@suse.com
    Signed-off-by: Nikolay Borisov
    Reviewed-by: Matthew Wilcox
    Reviewed-by: David Hildenbrand
    Cc: Jens Axboe
    Cc: Eric Van Hensbergen
    Cc: Latchesar Ionkov
    Cc: Dominique Martinet
    Cc: David Howells
    Cc: Chris Mason
    Cc: Josef Bacik
    Cc: David Sterba
    Cc: Miklos Szeredi
    Cc: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nikolay Borisov
     

10 Mar, 2019

1 commit

  • Pull SCSI updates from James Bottomley:
    "This is mostly update of the usual drivers: arcmsr, qla2xxx, lpfc,
    hisi_sas, target/iscsi and target/core.

    Additionally Christoph refactored gdth as part of the dma changes. The
    major mid-layer change this time is the removal of bidi commands and
    with them the whole of the osd/exofs driver and filesystem. This is a
    major simplification for block and mq in particular"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (240 commits)
    scsi: cxgb4i: validate tcp sequence number only if chip version pf
    scsi: core: replace GFP_ATOMIC with GFP_KERNEL in scsi_scan.c
    scsi: mpt3sas: Add missing breaks in switch statements
    scsi: aacraid: Fix missing break in switch statement
    scsi: kill command serial number
    scsi: csiostor: drop serial_number usage
    scsi: mvumi: use request tag instead of serial_number
    scsi: dpt_i2o: remove serial number usage
    scsi: st: osst: Remove negative constant left-shifts
    scsi: ufs-bsg: Allow reading descriptors
    scsi: ufs: Allow reading descriptor via raw upiu
    scsi: ufs-bsg: Change the calling convention for write descriptor
    scsi: ufs: Remove unused device quirks
    Revert "scsi: ufs: disable vccq if it's not needed by UFS device"
    scsi: megaraid_sas: Remove a bunch of set but not used variables
    scsi: clean obsolete return values of eh_timed_out
    scsi: sd: Optimal I/O size should be a multiple of physical block size
    scsi: MAINTAINERS: SCSI initiator and target tweaks
    scsi: fcoe: make use of fip_mode enum complete
    ...

    Linus Torvalds
     

09 Mar, 2019

2 commits

  • Pull io_uring IO interface from Jens Axboe:
    "Second attempt at adding the io_uring interface.

    Since the first one, we've added basic unit testing of the three
    system calls, that resides in liburing like the other unit tests that
    we have so far. It'll take a while to get full coverage of it, but
    we're working towards it. I've also added two basic test programs to
    tools/io_uring. One uses the raw interface and has support for all the
    various features that io_uring supports outside of standard IO, like
    fixed files, fixed IO buffers, and polled IO. The other uses the
    liburing API, and is a simplified version of cp(1).

    This adds support for a new IO interface, io_uring.

    io_uring allows an application to communicate with the kernel through
    two rings, the submission queue (SQ) and completion queue (CQ) ring.
    This allows for very efficient handling of IOs, see the v5 posting for
    some basic numbers:

    https://lore.kernel.org/linux-block/20190116175003.17880-1-axboe@kernel.dk/

    Outside of just efficiency, the interface is also flexible and
    extendable, and allows for future use cases like the upcoming NVMe
    key-value store API, networked IO, and so on. It also supports async
    buffered IO, something that we've always failed to support in the
    kernel.

    Outside of basic IO features, it supports async polled IO as well.
    This particular feature has already been tested at Facebook months ago
    for flash storage boxes, with 25-33% improvements. It makes polled IO
    actually useful for real world use cases, where even basic flash sees
    a nice win in terms of efficiency, latency, and performance. These
    boxes were IOPS bound before, now they are not.

    This series adds three new system calls. One for setting up an
    io_uring instance (io_uring_setup(2)), one for submitting/completing
    IO (io_uring_enter(2)), and one for aux functions like registrating
    file sets, buffers, etc (io_uring_register(2)). Through the help of
    Arnd, I've coordinated the syscall numbers so merge on that front
    should be painless.

    Jon did a writeup of the interface a while back, which (except for
    minor details that have been tweaked) is still accurate. Find that
    here:

    https://lwn.net/Articles/776703/

    Huge thanks to Al Viro for helping getting the reference cycle code
    correct, and to Jann Horn for his extensive reviews focused on both
    security and bugs in general.

    There's a userspace library that provides basic functionality for
    applications that don't need or want to care about how to fiddle with
    the rings directly. It has helpers to allow applications to easily set
    up an io_uring instance, and submit/complete IO through it without
    knowing about the intricacies of the rings. It also includes man pages
    (thanks to Jeff Moyer), and will continue to grow support helper
    functions and features as time progresses. Find it here:

    git://git.kernel.dk/liburing

    Fio has full support for the raw interface, both in the form of an IO
    engine (io_uring), but also with a small test application (t/io_uring)
    that can exercise and benchmark the interface"

    * tag 'io_uring-2019-03-06' of git://git.kernel.dk/linux-block:
    io_uring: add a few test tools
    io_uring: allow workqueue item to handle multiple buffered requests
    io_uring: add support for IORING_OP_POLL
    io_uring: add io_kiocb ref count
    io_uring: add submission polling
    io_uring: add file set registration
    net: split out functions related to registering inflight socket files
    io_uring: add support for pre-mapped user IO buffers
    block: implement bio helper to add iter bvec pages to bio
    io_uring: batch io_kiocb allocation
    io_uring: use fget/fput_many() for file references
    fs: add fget_many() and fput_many()
    io_uring: support for IO polling
    io_uring: add fsync support
    Add io_uring IO interface

    Linus Torvalds
     
  • Pull block layer updates from Jens Axboe:
    "Not a huge amount of changes in this round, the biggest one is that we
    finally have Mings multi-page bvec support merged. Apart from that,
    this pull request contains:

    - Small series that avoids quiescing the queue for sysfs changes that
    match what we currently have (Aleksei)

    - Series of bcache fixes (via Coly)

    - Series of lightnvm fixes (via Mathias)

    - NVMe pull request from Christoph. Nothing major, just SPDX/license
    cleanups, RR mp policy (Hannes), and little fixes (Bart,
    Chaitanya).

    - BFQ series (Paolo)

    - Save blk-mq cpu -> hw queue mapping, removing a pointer indirection
    for the fast path (Jianchao)

    - fops->iopoll() added for async IO polling, this is a feature that
    the upcoming io_uring interface will use (Christoph, me)

    - Partition scan loop fixes (Dongli)

    - mtip32xx conversion from managed resource API (Christoph)

    - cdrom registration race fix (Guenter)

    - MD pull from Song, two minor fixes.

    - Various documentation fixes (Marcos)

    - Multi-page bvec feature. This brings a lot of nice improvements
    with it, like more efficient splitting, larger IOs can be supported
    without growing the bvec table size, and so on. (Ming)

    - Various little fixes to core and drivers"

    * tag 'for-5.1/block-20190302' of git://git.kernel.dk/linux-block: (117 commits)
    block: fix updating bio's front segment size
    block: Replace function name in string with __func__
    nbd: propagate genlmsg_reply return code
    floppy: remove set but not used variable 'q'
    null_blk: fix checking for REQ_FUA
    block: fix NULL pointer dereference in register_disk
    fs: fix guard_bio_eod to check for real EOD errors
    blk-mq: use HCTX_TYPE_DEFAULT but not 0 to index blk_mq_tag_set->map
    block: optimize bvec iteration in bvec_iter_advance
    block: introduce mp_bvec_for_each_page() for iterating over page
    block: optimize blk_bio_segment_split for single-page bvec
    block: optimize __blk_segment_map_sg() for single-page bvec
    block: introduce bvec_nth_page()
    iomap: wire up the iopoll method
    block: add bio_set_polled() helper
    block: wire up block device iopoll method
    fs: add an iopoll method to struct file_operations
    loop: set GENHD_FL_NO_PART_SCAN after blkdev_reread_part()
    loop: do not print warn message if partition scan is successful
    block: bounce: make sure that bvec table is updated
    ...

    Linus Torvalds
     

07 Mar, 2019

1 commit

  • blk_recount_segments() can be called in bio_add_pc_page() for
    calculating how many segments this bio will has after one page is added
    to this bio. If the resulted segment number is beyond the queue limit,
    the added page will be removed.

    The try-and-fix policy requires blk_recount_segments(__blk_recalc_rq_segments)
    to not consider the segment number limit. Unfortunately bvec_split_segs()
    does check this limit, and causes small segment number returned to
    bio_add_pc_page(), then page still may be added to the bio even though
    segment number limit becomes broken.

    Fixes this issue by not considering segment number limit when calcualting
    bio's segment number.

    Fixes: dcebd755926b ("block: use bio_for_each_bvec() to compute multi-page bvec count")
    Cc: Christoph Hellwig
    Cc: Omar Sandoval
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     

03 Mar, 2019

1 commit

  • When the current bvec can be merged to the 1st segment, the bio's front
    segment size has to be updated.

    However, dcebd755926b doesn't consider that case, then bio's front
    segment size may not be correct.

    This patch fixes this issue.

    Cc: Christoph Hellwig
    Cc: Omar Sandoval
    Fixes: dcebd755926b ("block: use bio_for_each_bvec() to compute multi-page bvec count")
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     

01 Mar, 2019

3 commits


28 Feb, 2019

1 commit

  • For an ITER_BVEC, we can just iterate the iov and add the pages
    to the bio directly. For now, we grab a reference to those pages,
    and release them normally on IO completion. This isn't really needed
    for the normal case of O_DIRECT from/to a file, but some of the more
    esoteric use cases (like splice(2)) will unconditionally put the
    pipe buffer pages when the buffers are released. Until we can manage
    that case properly, ITER_BVEC pages are treated like normal pages
    in terms of reference counting.

    Reviewed-by: Hannes Reinecke
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Jens Axboe
     

27 Feb, 2019

3 commits


22 Feb, 2019

1 commit

  • Block bounce needs to allocate new page for doing IO, and the
    new page has to be updated to bvec table.

    Commit 6dc4f100c switches __blk_queue_bounce() to use the new
    bio_for_each_segment_all() interface. Unfortunately the new
    bio_for_each_segment_all() can't be used to update bvec table.

    This patch fixes this issue by retrieving bvec from the table
    directly, then the new allocated page can be updated to the bio.
    This way is safe because the cloned bio is single page bvec.

    Fixes: 6dc4f100c ("block: allow bio_for_each_segment_all() to iterate over multi-page bvec")
    Cc: Christoph Hellwig
    Cc: Omar Sandoval
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     

20 Feb, 2019

1 commit

  • rq->bio can be NULL sometimes, such as flush request, so don't
    read bio->bi_seg_front_size until this 'bio' is checked as valid.

    Cc: Bart Van Assche
    Reported-by: Bart Van Assche
    Fixes: dcebd755926b0f39dd1e ("block: use bio_for_each_bvec() to compute multi-page bvec count")
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     

16 Feb, 2019

1 commit

  • Pull block fixes from Jens Axboe:

    - Ensure we insert into the hctx dispatch list, if a request is marked
    as DONTPREP (Jianchao)

    - NVMe pull request, single missing unlock on error fix (Keith)

    - MD pull request, single fix for a potentially data corrupting issue
    (Nate)

    - Floppy check_events regression fix (Yufen)

    * tag 'for-linus-20190215' of git://git.kernel.dk/linux-block:
    md/raid1: don't clear bitmap bits on interrupted recovery.
    floppy: check_events callback should not return a negative number
    nvme-pci: add missing unlock for reset error
    blk-mq: insert rq with DONTPREP to hctx dispatch list when requeue

    Linus Torvalds
     

15 Feb, 2019

8 commits

  • Pull in 5.0-rc6 to avoid a dumb merge conflict with fs/iomap.c.
    This is needed since io_uring is now based on the block branch,
    to avoid a conflict between the multi-page bvecs and the bits
    of io_uring that touch the core block parts.

    * tag 'v5.0-rc6': (525 commits)
    Linux 5.0-rc6
    x86/mm: Make set_pmd_at() paravirt aware
    MAINTAINERS: Update the ocores i2c bus driver maintainer, etc
    blk-mq: remove duplicated definition of blk_mq_freeze_queue
    Blk-iolatency: warn on negative inflight IO counter
    blk-iolatency: fix IO hang due to negative inflight counter
    MAINTAINERS: unify reference to xen-devel list
    x86/mm/cpa: Fix set_mce_nospec()
    futex: Handle early deadlock return correctly
    futex: Fix barrier comment
    net: dsa: b53: Fix for failure when irq is not defined in dt
    blktrace: Show requests without sector
    mips: cm: reprime error cause
    mips: loongson64: remove unreachable(), fix loongson_poweroff().
    sit: check if IPv6 enabled before calling ip6_err_gen_icmpv6_unreach()
    geneve: should not call rt6_lookup() when ipv6 was disabled
    KVM: nVMX: unconditionally cancel preemption timer in free_nested (CVE-2019-7221)
    KVM: x86: work around leak of uninitialized stack contents (CVE-2019-7222)
    kvm: fix kvm_ioctl_create_device() reference counting (CVE-2019-6974)
    signal: Better detection of synchronous signals
    ...

    Jens Axboe
     
  • QUEUE_FLAG_NO_SG_MERGE has been killed, so kill BLK_MQ_F_SG_MERGE too.

    Reviewed-by: Christoph Hellwig
    Reviewed-by: Omar Sandoval
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     
  • Since bdced438acd83ad83a6c ("block: setup bi_phys_segments after splitting"),
    physical segment number is mainly figured out in blk_queue_split() for
    fast path, and the flag of BIO_SEG_VALID is set there too.

    Now only blk_recount_segments() and blk_recalc_rq_segments() use this
    flag.

    Basically blk_recount_segments() is bypassed in fast path given BIO_SEG_VALID
    is set in blk_queue_split().

    For another user of blk_recalc_rq_segments():

    - run in partial completion branch of blk_update_request, which is an unusual case

    - run in blk_cloned_rq_check_limits(), still not a big problem if the flag is killed
    since dm-rq is the only user.

    Multi-page bvec is enabled now, not doing S/G merging is rather pointless with the
    current setup of the I/O path, as it isn't going to save you a significant amount
    of cycles.

    Reviewed-by: Christoph Hellwig
    Reviewed-by: Omar Sandoval
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     
  • This patch pulls the trigger for multi-page bvecs.

    Reviewed-by: Omar Sandoval
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     
  • This patch introduces one extra iterator variable to bio_for_each_segment_all(),
    then we can allow bio_for_each_segment_all() to iterate over multi-page bvec.

    Given it is just one mechannical & simple change on all bio_for_each_segment_all()
    users, this patch does tree-wide change in one single patch, so that we can
    avoid to use a temporary helper for this conversion.

    Reviewed-by: Omar Sandoval
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     
  • It is more efficient to use bio_for_each_bvec() to map sg, meantime
    we have to consider splitting multipage bvec as done in blk_bio_segment_split().

    Reviewed-by: Omar Sandoval
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     
  • First it is more efficient to use bio_for_each_bvec() in both
    blk_bio_segment_split() and __blk_recalc_rq_segments() to compute how
    many multi-page bvecs there are in the bio.

    Secondly once bio_for_each_bvec() is used, the bvec may need to be
    splitted because its length can be very longer than max segment size,
    so we have to split the big bvec into several segments.

    Thirdly when splitting multi-page bvec into segments, the max segment
    limit may be reached, so the bio split need to be considered under
    this situation too.

    Reviewed-by: Christoph Hellwig
    Reviewed-by: Omar Sandoval
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     
  • It is wrong to use bio->bi_vcnt to figure out how many segments
    there are in the bio even though CLONED flag isn't set on this bio,
    because this bio may be splitted or advanced.

    So always use bio_segments() in blk_recount_segments(), and it shouldn't
    cause any performance loss now because the physical segment number is figured
    out in blk_queue_split() and BIO_SEG_VALID is set meantime since
    bdced438acd83ad83a6c ("block: setup bi_phys_segments after splitting").

    Reviewed-by: Omar Sandoval
    Reviewed-by: Christoph Hellwig
    Fixes: 76d8137a3113 ("blk-merge: recaculate segment if it isn't less than max segments")
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     

12 Feb, 2019

1 commit

  • When requeue, if RQF_DONTPREP, rq has contained some driver
    specific data, so insert it to hctx dispatch list to avoid any
    merge. Take scsi as example, here is the trace event log (no
    io scheduler, because RQF_STARTED would prevent merging),

    kworker/0:1H-339 [000] ...1 2037.209289: block_rq_insert: 8,0 R 4096 () 32768 + 8 [kworker/0:1H]
    scsi_inert_test-1987 [000] .... 2037.220465: block_bio_queue: 8,0 R 32776 + 8 [scsi_inert_test]
    scsi_inert_test-1987 [000] ...2 2037.220466: block_bio_backmerge: 8,0 R 32776 + 8 [scsi_inert_test]
    kworker/0:1H-339 [000] .... 2047.220913: block_rq_issue: 8,0 R 8192 () 32768 + 16 [kworker/0:1H]
    scsi_inert_test-1996 [000] ..s1 2047.221007: block_rq_complete: 8,0 R () 32768 + 8 [0]
    scsi_inert_test-1996 [000] .Ns1 2047.221045: block_rq_requeue: 8,0 R () 32776 + 8 [0]
    kworker/0:1H-339 [000] ...1 2047.221054: block_rq_insert: 8,0 R 4096 () 32776 + 8 [kworker/0:1H]
    kworker/0:1H-339 [000] ...1 2047.221056: block_rq_issue: 8,0 R 4096 () 32776 + 8 [kworker/0:1H]
    scsi_inert_test-1986 [000] ..s1 2047.221119: block_rq_complete: 8,0 R () 32776 + 8 [0]

    (32768 + 8) was requeued by scsi_queue_insert and had RQF_DONTPREP.
    Then it was merged with (32776 + 8) and issued. Due to RQF_DONTPREP,
    the sdb only contained the part of (32768 + 8), then only that part
    was completed. The lucky thing was that scsi_io_completion detected
    it and requeued the remaining part. So we didn't get corrupted data.
    However, the requeue of (32776 + 8) is not expected.

    Suggested-by: Jens Axboe
    Signed-off-by: Jianchao Wang
    Signed-off-by: Jens Axboe

    Jianchao Wang
     

11 Feb, 2019

3 commits


10 Feb, 2019

3 commits

  • Since 4cf6324b17e9, a portion of function blk_cleanup_queue was moved to
    a newly created function called blk_exit_queue, including the call of
    blkcg_exit_queue. So, adjust the documenation according.

    Reviewed-by: Bart Van Assche
    Signed-off-by: Marcos Paulo de Souza
    Signed-off-by: Jens Axboe

    Marcos Paulo de Souza
     
  • We have various helpers for setting/clearing this flag, and also
    a helper to check if the queue supports queueable flushes or not.
    But nobody uses them anymore, kill it with fire.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Pull block fixes from Jens Axboe:

    - NVMe pull request from Christoph, fixing namespace locking when
    dealing with the effects log, and a rapid add/remove issue (Keith)

    - blktrace tweak, ensuring requests with -1 sectors are shown (Jan)

    - link power management quirk for a Smasung SSD (Hans)

    - m68k nfblock dynamic major number fix (Chengguang)

    - series fixing blk-iolatency inflight counter issue (Liu)

    - ensure that we clear ->private when setting up the aio kiocb (Mike)

    - __find_get_block_slow() rate limit print (Tetsuo)

    * tag 'for-linus-20190209' of git://git.kernel.dk/linux-block:
    blk-mq: remove duplicated definition of blk_mq_freeze_queue
    Blk-iolatency: warn on negative inflight IO counter
    blk-iolatency: fix IO hang due to negative inflight counter
    blktrace: Show requests without sector
    fs: ratelimit __find_get_block_slow() failure message.
    m68k: set proper major_num when specifying module param major_num
    libata: Add NOLPM quirk for SAMSUNG MZ7TE512HMHP-000L1 SSD
    nvme-pci: fix rapid add remove sequence
    nvme: lock NS list changes while handling command effects
    aio: initialize kiocb private in case any filesystems expect it.

    Linus Torvalds
     

09 Feb, 2019

1 commit