1. 14 May, 2012 6 commits
  2. 07 May, 2012 11 commits
  3. 05 Apr, 2012 1 commit
    • Alex Elder's avatar
      rbd: don't hold spinlock during messenger flush · cd9d9f5d
      Alex Elder authored
      A recent change made changes to the rbd_client_list be protected by
      a spinlock.  Unfortunately in rbd_put_client(), the lock is taken
      before possibly dropping the last reference to an rbd_client, and on
      the last reference that eventually calls flush_workqueue() which can
      sleep.
      
      The problem was flagged by a debug spinlock warning:
          BUG: spinlock wrong CPU on CPU#3, rbd/27814
      
      The solution is to move the spinlock acquisition and release inside
      rbd_client_release(), which is the spot where it's really needed for
      protecting the removal of the rbd_client from the client list.
      Signed-off-by: default avatarAlex Elder <elder@dreamhost.com>
      Reviewed-by: default avatarSage Weil <sage@newdream.net>
      cd9d9f5d
  4. 22 Mar, 2012 22 commits