1. 15 Jun, 2018 3 commits
  2. 14 Jun, 2018 5 commits
    • Christoph Hellwig's avatar
      blk-mq: remove blk_mq_tagset_iter · e6c3456a
      Christoph Hellwig authored
      Unused now that nvme stopped using it.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
      e6c3456a
    • Christoph Hellwig's avatar
      nvme: remove nvme_reinit_tagset · 14dfa400
      Christoph Hellwig authored
      Unused now that all transports stopped using it.
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
      14dfa400
    • James Smart's avatar
      nvme-fc: fix nulling of queue data on reconnect · 3e493c00
      James Smart authored
      The reconnect path is calling the init routines to clear a queue
      structure. But the queue structure has state that perhaps needs
      to persist as long as the controller is live.
      
      Remove the nvme_fc_init_queue() calls on reconnect.
      The nvme_fc_free_queue() calls will clear state bits and reset
      any relevant queue state for a new connection.
      Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      3e493c00
    • James Smart's avatar
      nvme-fc: remove reinit_request routine · 587331f7
      James Smart authored
      The reinit_request routine is not necessary. Remove support for the
      op callback.
      
      As all that nvme_reinit_tagset() does is itterate and call the
      reinit routine, it too has no purpose. Remove the call.
      Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      587331f7
    • James Smart's avatar
      nvme-fc: change controllers first connect to use reconnect path · 4c984154
      James Smart authored
      Current code follows the framework that has been in the transports
      from the beginning where initial link-side controller connect occurs
      as part of "creating the controller". Thus that first connect fully
      talks to the controller and obtains values that can then be used in
      for blk-mq setup, etc. It also means that everything about the
      controller is fully know before the "create controller" call returns.
      
      This has several weaknesses:
      - The initial create_ctrl call made by the cli will block for a long
        time as wire transactions are performed synchronously. This delay
        becomes longer if errors occur or connectivity is lost and retries
        need to be performed.
      - Code wise, it means there is a separate connect path for initial
        controller connect vs the (same) steps used in the reconnect path.
      - And as there's separate paths, it means there's separate error
        handling and retry logic. It also plays havoc with the NEW state
        (should transition out of it after successful initial connect) vs
        the RESETTING and CONNECTING (reconnect) states that want to be
        transitioned to on error.
      - As there's separate paths, to recover from errors and disruptions,
        it requires separate recovery/retry paths as well and can severely
        convolute the controller state.
      
      This patch reworks the fc transport to use the same connect paths
      for the initial connection as it uses for reconnect. This makes a
      single path for error recovery and handling.
      
      This patch:
      - Removes the driving of the initial connect and replaces it with
        a state transition to CONNECTING and initiating the reconnect
        thread. A dummy state transition of RESETTING had to be traversed
        as a direct transtion of NEW->CONNECTING is not allowed. Given
        that the controller is "new", the RESETTING transition is a simple
        no-op. Once in the reconnecting thread, the normal behaviors of
        ctrl_loss_tmo (max_retries * connect_delay) and dev_loss_tmo will
        apply before the controller is torn down.
      - Only if the state transitions couldn't be traversed and the
        reconnect thread not scheduled, will the controller be torn down
        while in create_ctrl.
      - The prior code used the controller state of NEW to indicate
        whether request queues had been initialized or not. For the admin
        queue, the request queue is always created, so there's no need to
        check a state. For IO queues, change to tracking whether a successful
        io request queue create has occurred (e.g. 1st successful connect).
      - The initial controller id is initialized to the dynamic controller
        id used in the initial connect message. It will be overwritten by
        the real controller id once the controller is connected on the wire.
      Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      4c984154
  3. 13 Jun, 2018 1 commit
  4. 11 Jun, 2018 4 commits
  5. 09 Jun, 2018 1 commit
  6. 08 Jun, 2018 14 commits
  7. 07 Jun, 2018 1 commit
  8. 06 Jun, 2018 1 commit
  9. 05 Jun, 2018 7 commits
  10. 04 Jun, 2018 3 commits
    • Jianchao Wang's avatar
      blk-mq: return when hctx is stopped in blk_mq_run_work_fn · 0196d6b4
      Jianchao Wang authored
      If a hardware queue is stopped, it should not be run again before
      explicitly started. Ignore stopped queues in blk_mq_run_work_fn(),
      fixing a regression recently introduced when the START_ON_RUN bit
      was removed.
      
      Fixes: 15fe8a90 ("blk-mq: remove blk_mq_delay_queue()")
      Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
      Reviewed-by: default avatarBart Van Assche <bart.vanassche@wdc.com>
      Signed-off-by: default avatarJianchao Wang <jianchao.w.wang@oracle.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      0196d6b4
    • Linus Torvalds's avatar
      Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · f956d08a
      Linus Torvalds authored
      Pull misc vfs updates from Al Viro:
       "Misc bits and pieces not fitting into anything more specific"
      
      * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: delete unnecessary assignment in vfs_listxattr
        Documentation: filesystems: update filesystem locking documentation
        vfs: namei: use path_equal() in follow_dotdot()
        fs.h: fix outdated comment about file flags
        __inode_security_revalidate() never gets NULL opt_dentry
        make xattr_getsecurity() static
        vfat: simplify checks in vfat_lookup()
        get rid of dead code in d_find_alias()
        it's SB_BORN, not MS_BORN...
        msdos_rmdir(): kill BS comment
        remove rpc_rmdir()
        fs: avoid fdput() after failed fdget() in vfs_dedupe_file_range()
      f956d08a
    • Linus Torvalds's avatar
      Merge branch 'hch.procfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · cf626b0d
      Linus Torvalds authored
      Pull procfs updates from Al Viro:
       "Christoph's proc_create_... cleanups series"
      
      * 'hch.procfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (44 commits)
        xfs, proc: hide unused xfs procfs helpers
        isdn/gigaset: add back gigaset_procinfo assignment
        proc: update SIZEOF_PDE_INLINE_NAME for the new pde fields
        tty: replace ->proc_fops with ->proc_show
        ide: replace ->proc_fops with ->proc_show
        ide: remove ide_driver_proc_write
        isdn: replace ->proc_fops with ->proc_show
        atm: switch to proc_create_seq_private
        atm: simplify procfs code
        bluetooth: switch to proc_create_seq_data
        netfilter/x_tables: switch to proc_create_seq_private
        netfilter/xt_hashlimit: switch to proc_create_{seq,single}_data
        neigh: switch to proc_create_seq_data
        hostap: switch to proc_create_{seq,single}_data
        bonding: switch to proc_create_seq_data
        rtc/proc: switch to proc_create_single_data
        drbd: switch to proc_create_single
        resource: switch to proc_create_seq_data
        staging/rtl8192u: simplify procfs code
        jfs: simplify procfs code
        ...
      cf626b0d