• Jens Axboe's avatar
    bio: skip atomic inc/dec of ->bi_cnt for most use cases · dac56212
    Jens Axboe authored
    Struct bio has a reference count that controls when it can be freed.
    Most uses cases is allocating the bio, which then returns with a
    single reference to it, doing IO, and then dropping that single
    reference. We can remove this atomic_dec_and_test() in the completion
    path, if nobody else is holding a reference to the bio.
    
    If someone does call bio_get() on the bio, then we flag the bio as
    now having valid count and that we must properly honor the reference
    count when it's being put.
    Tested-by: default avatarRobert Elliott <elliott@hp.com>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    dac56212
bio.c 49.9 KB