• T
    block: restore multiple bd_link_disk_holder() support · 49731baa
    Tejun Heo 提交于
    Commit e09b457b (block: simplify holder symlink handling) incorrectly
    assumed that there is only one link at maximum.  dm may use multiple
    links and expects block layer to track reference count for each link,
    which is different from and unrelated to the exclusive device holder
    identified by @holder when the device is opened.
    
    Remove the single holder assumption and automatic removal of the link
    and revive the per-link reference count tracking.  The code
    essentially behaves the same as before commit e09b457b sans the
    unnecessary kobject reference count dancing.
    
    While at it, note that this facility should not be used by anyone else
    than the current ones.  Sysfs symlinks shouldn't be abused like this
    and the whole thing doesn't belong in the block layer at all.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Reported-by: NMilan Broz <mbroz@redhat.com>
    Cc: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
    Cc: Neil Brown <neilb@suse.de>
    Cc: linux-raid@vger.kernel.org
    Cc: Kay Sievers <kay.sievers@vrfy.org>
    Signed-off-by: NJens Axboe <jaxboe@fusionio.com>
    49731baa
md.c 191.4 KB