Tejun Heo 451a9ebf65 bio: fix bio_kmalloc()
Impact: fix bio_kmalloc() and its destruction path

bio_kmalloc() was broken in two ways.

* bvec_alloc_bs() first allocates bvec using kmalloc() and then
  ignores it and allocates again like non-kmalloc bvecs.

* bio_kmalloc_destructor() didn't check for and free bio integrity
  data.

This patch fixes the above problems.  kmalloc patch is separated out
from bio_alloc_bioset() and allocates the requested number of bvecs as
inline bvecs.

* bio_alloc_bioset() no longer takes NULL @bs.  None other than
  bio_kmalloc() used it and outside users can't know how it was
  allocated anyway.

* Define and use BIO_POOL_NONE so that pool index check in
  bvec_free_bs() triggers if inline or kmalloc allocated bvec gets
  there.

* Relocate destructors on top of each allocation function so that how
  they're used is more clear.

Jens Axboe suggested allocating bvecs inline.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-04-22 08:35:10 +02:00
..
2009-04-02 19:05:08 -07:00
2009-04-02 19:05:08 -07:00
2009-04-20 23:01:15 -04:00
2009-04-08 10:21:43 -07:00
2009-01-22 13:15:57 +03:00
2009-04-20 23:02:51 -04:00
2009-04-02 19:05:09 -07:00
2009-03-31 19:44:38 +03:00
2009-04-17 09:32:11 -07:00
2009-01-22 13:15:58 +03:00
2009-04-09 17:37:53 +02:00
2009-04-20 16:02:02 +01:00
2009-04-13 15:04:29 -07:00
2009-04-13 15:04:32 -07:00
2009-03-31 23:00:26 -04:00
2009-04-20 23:02:51 -04:00
2009-03-27 14:44:05 -04:00
2009-04-02 19:05:10 -07:00
2009-04-02 19:04:48 -07:00
2009-04-20 23:02:50 -04:00
2009-04-02 19:05:10 -07:00
2009-04-02 19:05:10 -07:00
2009-04-20 23:02:51 -04:00
2009-03-27 14:44:03 -04:00
2009-01-03 11:45:54 -08:00
2009-03-31 23:00:27 -04:00
2009-04-22 08:35:10 +02:00
2009-04-20 23:02:52 -04:00
2009-04-02 19:04:48 -07:00
2009-03-31 23:00:26 -04:00
2009-03-16 08:34:35 -06:00
2009-04-07 08:31:16 -07:00
2009-04-07 08:31:16 -07:00
2009-04-17 07:38:07 -07:00
2009-04-20 23:02:52 -04:00
2009-02-18 15:37:53 -08:00
2009-04-20 23:02:50 -04:00