Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

issues #2217, #3681 - set of commits dealing with zvol_*minor*() processing #3830

Closed
wants to merge 2 commits into from

Commits on Mar 3, 2016

  1. zfsonlinux issue openzfs#2217 - zvol minor operations: check snapdev

    property before traversing snapshots of a dataset
    
    zfsonlinux issue openzfs#3681 - lock order inversion between zvol_open()
    and dsl_pool_sync()...zvol_rename_minors()
    
    Add support for asynchronous zvol minor operations.
    
    Create a per-pool zvol taskq for asynchronous zvol tasks.
    There are a few key design decisions to be aware of.
    
    * Each taskq must be single threaded to ensure tasks are always
      processed in the order in which they were dispatched.
    
    * There is a taskq per-pool in order to keep the pools independent.
      This way if one pool is suspended it will not impact another.
    
    * The preferred location to dispatch a zvol minor task is a sync
      task.  In this context there is easy access to the spa_t and
      minimal error handling is required because the sync task must
      succeed.
    
    Support for asynchronous zvol minor operations address issue openzfs#3681.
    
    Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
    bprotopopov committed Mar 3, 2016
    Configuration menu
    Copy the full SHA
    3404cde View commit details
    Browse the repository at this point in the history
  2. zfsonlinux issue openzfs#3681 - lock order inversion between zvol_ope…

    …n() and
    
    dsl_pool_sync()...zvol_rename_minors()
    
    Remove trylock of spa_namespace_lock as it is no longer needed when
    zvol minor operations are performed in a separate context with no
    prior locking state; the spa_namespace_lock is no longer held
    when bdev->bd_mutex or zfs_state_lock might be taken in the code
    paths originating from the zvol minor operation callbacks.
    bprotopopov committed Mar 3, 2016
    Configuration menu
    Copy the full SHA
    c071f0c View commit details
    Browse the repository at this point in the history