diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-29 11:57:10 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-29 11:57:10 -0700 | 
| commit | d506aa68c23db708ad45ca8c17f0d7f5d7029a37 (patch) | |
| tree | 90c38b2938564e6486d51417ac51ecfed17b0d3d /lib/scatterlist.c | |
| parent | 7f474df0a7b7dadfc01ba778460a91f554ca1481 (diff) | |
| parent | cb1a5ab6ece7a37da4ac98ee26b0475b7c3ea79e (diff) | |
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block layer fixes from Jens Axboe:
 "A small collection of fixes for the current kernel.  This contains:
   - Two error handling fixes from Jan Kara.  One for null_blk on
     failure to add a device, and the other for the block/scsi_ioctl
     SCSI_IOCTL_SEND_COMMAND fixing up the error jump point.
   - A commit added in the merge window for the bio integrity bits
     unfortunately disabled merging for all requests if
     CONFIG_BLK_DEV_INTEGRITY wasn't set.  Reverse the logic, so that
     integrity checking wont disallow merges when not enabled.
   - A fix from Ming Lei for merging and generating too many segments.
     This caused a BUG in virtio_blk.
   - Two error handling printk() fixups from Robert Elliott, improving
     the information given when we rate limit.
   - Error handling fixup on elevator_init() failure from Sudip
     Mukherjee.
   - A fix from Tony Battersby, fixing up a memory leak in the
     scatterlist handling with scsi-mq"
* 'for-linus' of git://git.kernel.dk/linux-block:
  block: Fix merge logic when CONFIG_BLK_DEV_INTEGRITY is not defined
  lib/scatterlist: fix memory leak with scsi-mq
  block: fix wrong error return in elevator_init()
  scsi: Fix error handling in SCSI_IOCTL_SEND_COMMAND
  null_blk: Cleanup error recovery in null_add_dev()
  blk-merge: recaculate segment if it isn't less than max segments
  fs: clarify rate limit suppressed buffer I/O errors
  fs: merge I/O error prints into one line
Diffstat (limited to 'lib/scatterlist.c')
| -rw-r--r-- | lib/scatterlist.c | 6 | 
1 files changed, 3 insertions, 3 deletions
| diff --git a/lib/scatterlist.c b/lib/scatterlist.c index 9cdf62f8accd..c9f2e8c6ccc9 100644 --- a/lib/scatterlist.c +++ b/lib/scatterlist.c @@ -203,10 +203,10 @@ void __sg_free_table(struct sg_table *table, unsigned int max_ents,  		}  		table->orig_nents -= sg_size; -		if (!skip_first_chunk) { -			free_fn(sgl, alloc_size); +		if (skip_first_chunk)  			skip_first_chunk = false; -		} +		else +			free_fn(sgl, alloc_size);  		sgl = next;  	} | 
