public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PATCHSET block#for-linus] block: blk-map related fixes
@ 2009-04-01 11:04 Tejun Heo
  2009-04-01 11:04 ` [PATCH 1/8] scatterlist: make sure sg_miter_next() doesn't return 0 sized mappings Tejun Heo
                   ` (7 more replies)
  0 siblings, 8 replies; 29+ messages in thread
From: Tejun Heo @ 2009-04-01 11:04 UTC (permalink / raw)
  To: axboe, bharrosh, linux-kernel

Hi, Jens.

Upon ack, please pull from the following git tree.

 git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git blk-map-fixes
 http://git.kernel.org/?p=linux/kernel/git/tj/misc.git;a=shortlog;h=blk-map-fixes

This patchset contains the following eight patches to fix subtle bugs
in scatterlist and blk-map and are candidates for 2.6.30 inclusion.

 0001-scatterlist-make-sure-sg_miter_next-doesn-t-retur.patch
 0002-block-fix-SG_IO-vector-request-data-length-handling.patch
 0003-block-fix-queue-bounce-limit-setting.patch
 0004-bio-actually-inline-inline-bvecs-into-bio.patch
 0005-bio-fix-bio_kmalloc.patch
 0006-bio-remove-size-segments-limit-on-bio_-copy-map-_-u.patch
 0007-blk-map-let-blk_rq_map_user_iov-support-null-mapp.patch
 0008-blk-map-reimplement-blk_rq_map_user-using-blk_rq_.patch

0001 fixes a subtle bug in sg mapping iterator where zero-size maps
were returned.  The bug isn't critical but can sometimes lead to
unexpected results (when testing for full consumption for example).

0002 is visible to userland.  It fixes block iovec SG_IOs such that
when sghdr->dxfer_len and the data length in the iovec disagrees, the
shorter one wins instead of failing as described in the SG_IO howto.

0003 is pretty critical.  The bug means that GFP_DMA is set in
q->bounce_gfp for many ATA controllers on x86_64 which leads to OOM if
large SG_IO is issued.

0004-0008 fixes bio_kmalloc(), removes bio-imposed segment and length
limit when using bio_kmalloc() and makes blk_rq_map_{user|kern}*()
functions always use single bio instead of chain of bios.  It's not
only simpler but also makes sure the resulting request falls inside
queue limits as a whole.  Previously, only each bio was checked for
limits, so the whole request could go over the limits.

This patchset is on top of the current linux-2.6-block#for-linus[1]
and contains the following changes.

 block/blk-map.c            |  119 +++------------------------------------------
 block/blk-settings.c       |   20 ++++---
 block/scsi_ioctl.c         |   13 ++++
 drivers/md/dm-io.c         |    4 -
 drivers/md/dm.c            |    4 -
 drivers/scsi/scsi_lib.c    |    3 -
 fs/bio.c                   |   97 +++++++++++++++++++-----------------
 fs/btrfs/extent_io.c       |    2 
 fs/ext4/extents.c          |    4 -
 fs/xfs/linux-2.6/xfs_buf.c |    2 
 include/linux/bio.h        |   16 +++---
 lib/scatterlist.c          |    9 ++-
 12 files changed, 109 insertions(+), 184 deletions(-)

Thanks.

--
tejun

[1] 714ed0cf62319b14dc327273a7339a9a199fe046

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2009-04-01 13:28 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-01 11:04 [GIT PATCHSET block#for-linus] block: blk-map related fixes Tejun Heo
2009-04-01 11:04 ` [PATCH 1/8] scatterlist: make sure sg_miter_next() doesn't return 0 sized mappings Tejun Heo
2009-04-01 11:04 ` [PATCH 2/8] block: fix SG_IO vector request data length handling Tejun Heo
2009-04-01 11:47   ` FUJITA Tomonori
2009-04-01 11:50     ` Jens Axboe
2009-04-01 12:18       ` FUJITA Tomonori
2009-04-01 12:24         ` Jens Axboe
2009-04-01 12:27         ` Tejun Heo
2009-04-01 12:29           ` Jens Axboe
2009-04-01 11:04 ` [PATCH 3/8] block: fix queue bounce limit setting Tejun Heo
2009-04-01 11:04 ` [PATCH 4/8] bio: actually inline inline bvecs into bio Tejun Heo
2009-04-01 12:47   ` Jens Axboe
2009-04-01 12:55     ` Tejun Heo
2009-04-01 12:59       ` Jens Axboe
2009-04-01 11:04 ` [PATCH 5/8] bio: fix bio_kmalloc() Tejun Heo
2009-04-01 11:04 ` [PATCH 6/8] bio: remove size/segments limit on bio_{copy|map}_{user|kern}*() Tejun Heo
2009-04-01 11:04 ` [PATCH 7/8] blk-map: let blk_rq_map_user_iov() support null mapping Tejun Heo
2009-04-01 11:54   ` FUJITA Tomonori
2009-04-01 12:03     ` Tejun Heo
2009-04-01 11:04 ` [PATCH 8/8] blk-map: reimplement blk_rq_map_user() using blk_rq_map_user_iov() Tejun Heo
2009-04-01 12:44   ` FUJITA Tomonori
2009-04-01 12:50     ` Tejun Heo
2009-04-01 12:59       ` FUJITA Tomonori
2009-04-01 13:03         ` Tejun Heo
2009-04-01 13:10           ` FUJITA Tomonori
2009-04-01 13:17             ` Tejun Heo
2009-04-01 13:18               ` Tejun Heo
2009-04-01 13:22               ` FUJITA Tomonori
2009-04-01 13:28                 ` Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox