• Kent Overstreet's avatar
    percpu_ida: Make percpu_ida_alloc + callers accept task state bitmask · 6f6b5d1e
    Kent Overstreet authored
    This patch changes percpu_ida_alloc() + callers to accept task state
    bitmask for prepare_to_wait() for code like target/iscsi that needs
    it for interruptible sleep, that is provided in a subsequent patch.
    
    It now expects TASK_UNINTERRUPTIBLE when the caller is able to sleep
    waiting for a new tag, or TASK_RUNNING when the caller cannot sleep,
    and is forced to return a negative value when no tags are available.
    
    v2 changes:
      - Include blk-mq + tcm_fc + vhost/scsi + target/iscsi changes
      - Drop signal_pending_state() call
    v3 changes:
      - Only call prepare_to_wait() + finish_wait() when != TASK_RUNNING
        (PeterZ)
    Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: default avatarKent Overstreet <kmo@daterainc.com>
    Cc: <stable@vger.kernel.org> #3.12+
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    6f6b5d1e
blk-mq-tag.c 4.72 KB