From: Greg Kroah-Hartman Date: Mon, 5 Jan 2015 19:54:56 +0000 (-0800) Subject: 3.14-stable patches X-Git-Tag: v3.10.64~29 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=072a5658fb4f2ab7d36030f215bbd14181cb0b8e;p=thirdparty%2Fkernel%2Fstable-queue.git 3.14-stable patches added patches: dm-bufio-fix-memleak-when-using-a-dm_buffer-s-inline-bio.patch dm-cache-dirty-flag-was-mistakenly-being-cleared-when-promoting-via-overwrite.patch dm-cache-only-use-overwrite-optimisation-for-promotion-when-in-writeback-mode.patch dm-crypt-use-memzero_explicit-for-on-stack-buffer.patch dm-space-map-metadata-fix-sm_bootstrap_get_nr_blocks.patch dm-thin-fix-inability-to-discard-blocks-when-in-out-of-data-space-mode.patch dm-thin-fix-missing-out-of-data-space-to-write-mode-transition-if-blocks-are-released.patch megaraid_sas-corrected-return-of-wait_event-from-abort-frame-path.patch nfs41-fix-nfs4_proc_layoutget-error-handling.patch scsi-correct-return-values-for-.eh_abort_handler-implementations.patch --- diff --git a/queue-3.14/dm-bufio-fix-memleak-when-using-a-dm_buffer-s-inline-bio.patch b/queue-3.14/dm-bufio-fix-memleak-when-using-a-dm_buffer-s-inline-bio.patch new file mode 100644 index 00000000000..5af9b54b783 --- /dev/null +++ b/queue-3.14/dm-bufio-fix-memleak-when-using-a-dm_buffer-s-inline-bio.patch @@ -0,0 +1,65 @@ +From 445559cdcb98a141f5de415b94fd6eaccab87e6d Mon Sep 17 00:00:00 2001 +From: "Darrick J. Wong" +Date: Tue, 25 Nov 2014 17:45:15 -0800 +Subject: dm bufio: fix memleak when using a dm_buffer's inline bio + +From: "Darrick J. Wong" + +commit 445559cdcb98a141f5de415b94fd6eaccab87e6d upstream. + +When dm-bufio sets out to use the bio built into a struct dm_buffer to +issue an IO, it needs to call bio_reset after it's done with the bio +so that we can free things attached to the bio such as the integrity +payload. Therefore, inject our own endio callback to take care of +the bio_reset after calling submit_io's end_io callback. + +Test case: +1. modprobe scsi_debug delay=0 dif=1 dix=199 ato=1 dev_size_mb=300 +2. Set up a dm-bufio client, e.g. dm-verity, on the scsi_debug device +3. Repeatedly read metadata and watch kmalloc-192 leak! + +Signed-off-by: Darrick J. Wong +Signed-off-by: Mikulas Patocka +Signed-off-by: Mike Snitzer +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-bufio.c | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +--- a/drivers/md/dm-bufio.c ++++ b/drivers/md/dm-bufio.c +@@ -532,6 +532,19 @@ static void use_dmio(struct dm_buffer *b + end_io(&b->bio, r); + } + ++static void inline_endio(struct bio *bio, int error) ++{ ++ bio_end_io_t *end_fn = bio->bi_private; ++ ++ /* ++ * Reset the bio to free any attached resources ++ * (e.g. bio integrity profiles). ++ */ ++ bio_reset(bio); ++ ++ end_fn(bio, error); ++} ++ + static void use_inline_bio(struct dm_buffer *b, int rw, sector_t block, + bio_end_io_t *end_io) + { +@@ -543,7 +556,12 @@ static void use_inline_bio(struct dm_buf + b->bio.bi_max_vecs = DM_BUFIO_INLINE_VECS; + b->bio.bi_iter.bi_sector = block << b->c->sectors_per_block_bits; + b->bio.bi_bdev = b->c->bdev; +- b->bio.bi_end_io = end_io; ++ b->bio.bi_end_io = inline_endio; ++ /* ++ * Use of .bi_private isn't a problem here because ++ * the dm_buffer's inline bio is local to bufio. ++ */ ++ b->bio.bi_private = end_io; + + /* + * We assume that if len >= PAGE_SIZE ptr is page-aligned. diff --git a/queue-3.14/dm-cache-dirty-flag-was-mistakenly-being-cleared-when-promoting-via-overwrite.patch b/queue-3.14/dm-cache-dirty-flag-was-mistakenly-being-cleared-when-promoting-via-overwrite.patch new file mode 100644 index 00000000000..70ac50b5939 --- /dev/null +++ b/queue-3.14/dm-cache-dirty-flag-was-mistakenly-being-cleared-when-promoting-via-overwrite.patch @@ -0,0 +1,42 @@ +From 1e32134a5a404e80bfb47fad8a94e9bbfcbdacc5 Mon Sep 17 00:00:00 2001 +From: Joe Thornber +Date: Thu, 27 Nov 2014 12:26:46 +0000 +Subject: dm cache: dirty flag was mistakenly being cleared when promoting via overwrite + +From: Joe Thornber + +commit 1e32134a5a404e80bfb47fad8a94e9bbfcbdacc5 upstream. + +If the incoming bio is a WRITE and completely covers a block then we +don't bother to do any copying for a promotion operation. Once this is +done the cache block and origin block will be different, so we need to +set it to 'dirty'. + +Signed-off-by: Joe Thornber +Signed-off-by: Mike Snitzer +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-cache-target.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +--- a/drivers/md/dm-cache-target.c ++++ b/drivers/md/dm-cache-target.c +@@ -946,10 +946,14 @@ static void migration_success_post_commi + } + + } else { +- clear_dirty(cache, mg->new_oblock, mg->cblock); +- if (mg->requeue_holder) ++ if (mg->requeue_holder) { ++ clear_dirty(cache, mg->new_oblock, mg->cblock); + cell_defer(cache, mg->new_ocell, true); +- else { ++ } else { ++ /* ++ * The block was promoted via an overwrite, so it's dirty. ++ */ ++ set_dirty(cache, mg->new_oblock, mg->cblock); + bio_endio(mg->new_ocell->holder, 0); + cell_defer(cache, mg->new_ocell, false); + } diff --git a/queue-3.14/dm-cache-only-use-overwrite-optimisation-for-promotion-when-in-writeback-mode.patch b/queue-3.14/dm-cache-only-use-overwrite-optimisation-for-promotion-when-in-writeback-mode.patch new file mode 100644 index 00000000000..a3961920ef4 --- /dev/null +++ b/queue-3.14/dm-cache-only-use-overwrite-optimisation-for-promotion-when-in-writeback-mode.patch @@ -0,0 +1,32 @@ +From f29a3147e251d7ae20d3194ff67f109d71e501b4 Mon Sep 17 00:00:00 2001 +From: Joe Thornber +Date: Thu, 27 Nov 2014 12:21:08 +0000 +Subject: dm cache: only use overwrite optimisation for promotion when in writeback mode + +From: Joe Thornber + +commit f29a3147e251d7ae20d3194ff67f109d71e501b4 upstream. + +Overwrite causes the cache block and origin blocks to diverge, which +is only allowed in writeback mode. + +Signed-off-by: Joe Thornber +Signed-off-by: Mike Snitzer +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-cache-target.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/md/dm-cache-target.c ++++ b/drivers/md/dm-cache-target.c +@@ -1060,7 +1060,8 @@ static void issue_copy(struct dm_cache_m + + avoid = is_discarded_oblock(cache, mg->new_oblock); + +- if (!avoid && bio_writes_complete_block(cache, bio)) { ++ if (writeback_mode(&cache->features) && ++ !avoid && bio_writes_complete_block(cache, bio)) { + issue_overwrite(mg, bio); + return; + } diff --git a/queue-3.14/dm-crypt-use-memzero_explicit-for-on-stack-buffer.patch b/queue-3.14/dm-crypt-use-memzero_explicit-for-on-stack-buffer.patch new file mode 100644 index 00000000000..3505206d540 --- /dev/null +++ b/queue-3.14/dm-crypt-use-memzero_explicit-for-on-stack-buffer.patch @@ -0,0 +1,31 @@ +From 1a71d6ffe18c0d0f03fc8531949cc8ed41d702ee Mon Sep 17 00:00:00 2001 +From: Milan Broz +Date: Sat, 22 Nov 2014 09:36:04 +0100 +Subject: dm crypt: use memzero_explicit for on-stack buffer + +From: Milan Broz + +commit 1a71d6ffe18c0d0f03fc8531949cc8ed41d702ee upstream. + +Use memzero_explicit to cleanup sensitive data allocated on stack +to prevent the compiler from optimizing and removing memset() calls. + +Signed-off-by: Milan Broz +Signed-off-by: Mike Snitzer +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-crypt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/md/dm-crypt.c ++++ b/drivers/md/dm-crypt.c +@@ -709,7 +709,7 @@ static int crypt_iv_tcw_whitening(struct + for (i = 0; i < ((1 << SECTOR_SHIFT) / 8); i++) + crypto_xor(data + i * 8, buf, 8); + out: +- memset(buf, 0, sizeof(buf)); ++ memzero_explicit(buf, sizeof(buf)); + return r; + } + diff --git a/queue-3.14/dm-space-map-metadata-fix-sm_bootstrap_get_nr_blocks.patch b/queue-3.14/dm-space-map-metadata-fix-sm_bootstrap_get_nr_blocks.patch new file mode 100644 index 00000000000..c6fe01080e4 --- /dev/null +++ b/queue-3.14/dm-space-map-metadata-fix-sm_bootstrap_get_nr_blocks.patch @@ -0,0 +1,40 @@ +From c1c6156fe4d4577444b769d7edd5dd503e57bbc9 Mon Sep 17 00:00:00 2001 +From: Dan Carpenter +Date: Sat, 29 Nov 2014 15:50:21 +0300 +Subject: dm space map metadata: fix sm_bootstrap_get_nr_blocks() + +From: Dan Carpenter + +commit c1c6156fe4d4577444b769d7edd5dd503e57bbc9 upstream. + +This function isn't right and it causes a static checker warning: + + drivers/md/dm-thin.c:3016 maybe_resize_data_dev() + error: potentially using uninitialized 'sb_data_size'. + +It should set "*count" and return zero on success the same as the +sm_metadata_get_nr_blocks() function does earlier. + +Fixes: 3241b1d3e0aa ('dm: add persistent data library') +Signed-off-by: Dan Carpenter +Acked-by: Joe Thornber +Signed-off-by: Mike Snitzer +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/persistent-data/dm-space-map-metadata.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/md/persistent-data/dm-space-map-metadata.c ++++ b/drivers/md/persistent-data/dm-space-map-metadata.c +@@ -564,7 +564,9 @@ static int sm_bootstrap_get_nr_blocks(st + { + struct sm_metadata *smm = container_of(sm, struct sm_metadata, sm); + +- return smm->ll.nr_blocks; ++ *count = smm->ll.nr_blocks; ++ ++ return 0; + } + + static int sm_bootstrap_get_nr_free(struct dm_space_map *sm, dm_block_t *count) diff --git a/queue-3.14/dm-thin-fix-inability-to-discard-blocks-when-in-out-of-data-space-mode.patch b/queue-3.14/dm-thin-fix-inability-to-discard-blocks-when-in-out-of-data-space-mode.patch new file mode 100644 index 00000000000..f1945bef241 --- /dev/null +++ b/queue-3.14/dm-thin-fix-inability-to-discard-blocks-when-in-out-of-data-space-mode.patch @@ -0,0 +1,37 @@ +From 45ec9bd0fd7abf8705e7cf12205ff69fe9d51181 Mon Sep 17 00:00:00 2001 +From: Joe Thornber +Date: Wed, 10 Dec 2014 17:06:57 +0000 +Subject: dm thin: fix inability to discard blocks when in out-of-data-space mode + +From: Joe Thornber + +commit 45ec9bd0fd7abf8705e7cf12205ff69fe9d51181 upstream. + +When the pool was in PM_OUT_OF_SPACE mode its process_prepared_discard +function pointer was incorrectly being set to +process_prepared_discard_passdown rather than process_prepared_discard. + +This incorrect function pointer meant the discard was being passed down, +but not effecting the mapping. As such any discard that was issued, in +an attempt to reclaim blocks, would not successfully free data space. + +Reported-by: Eric Sandeen +Signed-off-by: Joe Thornber +Signed-off-by: Mike Snitzer +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-thin.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/md/dm-thin.c ++++ b/drivers/md/dm-thin.c +@@ -1592,7 +1592,7 @@ static void set_pool_mode(struct pool *p + pool->process_bio = process_bio_read_only; + pool->process_discard = process_discard; + pool->process_prepared_mapping = process_prepared_mapping; +- pool->process_prepared_discard = process_prepared_discard_passdown; ++ pool->process_prepared_discard = process_prepared_discard; + + if (!pool->pf.error_if_no_space && no_space_timeout) + queue_delayed_work(pool->wq, &pool->no_space_timeout, no_space_timeout); diff --git a/queue-3.14/dm-thin-fix-missing-out-of-data-space-to-write-mode-transition-if-blocks-are-released.patch b/queue-3.14/dm-thin-fix-missing-out-of-data-space-to-write-mode-transition-if-blocks-are-released.patch new file mode 100644 index 00000000000..09ac694e284 --- /dev/null +++ b/queue-3.14/dm-thin-fix-missing-out-of-data-space-to-write-mode-transition-if-blocks-are-released.patch @@ -0,0 +1,71 @@ +From 2c43fd26e46734430122b8d2ad3024bb532df3ef Mon Sep 17 00:00:00 2001 +From: Joe Thornber +Date: Thu, 11 Dec 2014 11:12:19 +0000 +Subject: dm thin: fix missing out-of-data-space to write mode transition if blocks are released + +From: Joe Thornber + +commit 2c43fd26e46734430122b8d2ad3024bb532df3ef upstream. + +Discard bios and thin device deletion have the potential to release data +blocks. If the thin-pool is in out-of-data-space mode, and blocks were +released, transition the thin-pool back to full write mode. + +The correct time to do this is just after the thin-pool metadata commit. +It cannot be done before the commit because the space maps will not +allow immediate reuse of the data blocks in case there's a rollback +following power failure. + +Signed-off-by: Joe Thornber +Signed-off-by: Mike Snitzer +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-thin.c | 22 ++++++++++++++++++++-- + 1 file changed, 20 insertions(+), 2 deletions(-) + +--- a/drivers/md/dm-thin.c ++++ b/drivers/md/dm-thin.c +@@ -916,6 +916,24 @@ static void schedule_zero(struct thin_c + } + } + ++static void set_pool_mode(struct pool *pool, enum pool_mode new_mode); ++ ++static void check_for_space(struct pool *pool) ++{ ++ int r; ++ dm_block_t nr_free; ++ ++ if (get_pool_mode(pool) != PM_OUT_OF_DATA_SPACE) ++ return; ++ ++ r = dm_pool_get_free_block_count(pool->pmd, &nr_free); ++ if (r) ++ return; ++ ++ if (nr_free) ++ set_pool_mode(pool, PM_WRITE); ++} ++ + /* + * A non-zero return indicates read_only or fail_io mode. + * Many callers don't care about the return value. +@@ -930,6 +948,8 @@ static int commit(struct pool *pool) + r = dm_pool_commit_metadata(pool->pmd); + if (r) + metadata_operation_failed(pool, "dm_pool_commit_metadata", r); ++ else ++ check_for_space(pool); + + return r; + } +@@ -948,8 +968,6 @@ static void check_low_water_mark(struct + } + } + +-static void set_pool_mode(struct pool *pool, enum pool_mode new_mode); +- + static int alloc_data_block(struct thin_c *tc, dm_block_t *result) + { + int r; diff --git a/queue-3.14/megaraid_sas-corrected-return-of-wait_event-from-abort-frame-path.patch b/queue-3.14/megaraid_sas-corrected-return-of-wait_event-from-abort-frame-path.patch new file mode 100644 index 00000000000..b25d5f4b5c6 --- /dev/null +++ b/queue-3.14/megaraid_sas-corrected-return-of-wait_event-from-abort-frame-path.patch @@ -0,0 +1,33 @@ +From 170c238701ec38b1829321b17c70671c101bac55 Mon Sep 17 00:00:00 2001 +From: "Sumit.Saxena@avagotech.com" +Date: Mon, 17 Nov 2014 15:24:23 +0530 +Subject: megaraid_sas: corrected return of wait_event from abort frame path + +From: "Sumit.Saxena@avagotech.com" + +commit 170c238701ec38b1829321b17c70671c101bac55 upstream. + +Corrected wait_event() call which was waiting for wrong completion +status (0xFF). + +Signed-off-by: Sumit Saxena +Signed-off-by: Kashyap Desai +Reviewed-by: Tomas Henzl +Signed-off-by: Christoph Hellwig +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/scsi/megaraid/megaraid_sas_base.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/scsi/megaraid/megaraid_sas_base.c ++++ b/drivers/scsi/megaraid/megaraid_sas_base.c +@@ -953,7 +953,7 @@ megasas_issue_blocked_abort_cmd(struct m + cpu_to_le32(upper_32_bits(cmd_to_abort->frame_phys_addr)); + + cmd->sync_cmd = 1; +- cmd->cmd_status = 0xFF; ++ cmd->cmd_status = ENODATA; + + instance->instancet->issue_dcmd(instance, cmd); + diff --git a/queue-3.14/nfs41-fix-nfs4_proc_layoutget-error-handling.patch b/queue-3.14/nfs41-fix-nfs4_proc_layoutget-error-handling.patch new file mode 100644 index 00000000000..8c0d157b54f --- /dev/null +++ b/queue-3.14/nfs41-fix-nfs4_proc_layoutget-error-handling.patch @@ -0,0 +1,44 @@ +From 4bd5a980de87d2b5af417485bde97b8eb3d6cf6a Mon Sep 17 00:00:00 2001 +From: Peng Tao +Date: Mon, 17 Nov 2014 11:05:17 +0800 +Subject: nfs41: fix nfs4_proc_layoutget error handling + +From: Peng Tao + +commit 4bd5a980de87d2b5af417485bde97b8eb3d6cf6a upstream. + +nfs4_layoutget_release() drops layout hdr refcnt. Grab the refcnt +early so that it is safe to call .release in case nfs4_alloc_pages +fails. + +Signed-off-by: Peng Tao +Fixes: a47970ff78147 ("NFSv4.1: Hold reference to layout hdr in layoutget") +Signed-off-by: Trond Myklebust +Signed-off-by: Greg Kroah-Hartman + +--- + fs/nfs/nfs4proc.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -7589,6 +7589,9 @@ nfs4_proc_layoutget(struct nfs4_layoutge + + dprintk("--> %s\n", __func__); + ++ /* nfs4_layoutget_release calls pnfs_put_layout_hdr */ ++ pnfs_get_layout_hdr(NFS_I(inode)->layout); ++ + lgp->args.layout.pages = nfs4_alloc_pages(max_pages, gfp_flags); + if (!lgp->args.layout.pages) { + nfs4_layoutget_release(lgp); +@@ -7601,9 +7604,6 @@ nfs4_proc_layoutget(struct nfs4_layoutge + lgp->res.seq_res.sr_slot = NULL; + nfs4_init_sequence(&lgp->args.seq_args, &lgp->res.seq_res, 0); + +- /* nfs4_layoutget_release calls pnfs_put_layout_hdr */ +- pnfs_get_layout_hdr(NFS_I(inode)->layout); +- + task = rpc_run_task(&task_setup_data); + if (IS_ERR(task)) + return ERR_CAST(task); diff --git a/queue-3.14/scsi-correct-return-values-for-.eh_abort_handler-implementations.patch b/queue-3.14/scsi-correct-return-values-for-.eh_abort_handler-implementations.patch new file mode 100644 index 00000000000..9758189cbf7 --- /dev/null +++ b/queue-3.14/scsi-correct-return-values-for-.eh_abort_handler-implementations.patch @@ -0,0 +1,148 @@ +From b6c92b7e0af575e2b8b05bdf33633cf9e1661cbf Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke +Date: Thu, 30 Oct 2014 09:44:36 +0100 +Subject: scsi: correct return values for .eh_abort_handler implementations + +From: Hannes Reinecke + +commit b6c92b7e0af575e2b8b05bdf33633cf9e1661cbf upstream. + +The .eh_abort_handler needs to return SUCCESS, FAILED, or +FAST_IO_FAIL. So fixup all callers to adhere to this requirement. + +Reviewed-by: Robert Elliott +Signed-off-by: Hannes Reinecke +Signed-off-by: Christoph Hellwig +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/scsi/NCR5380.c | 12 ++++++------ + drivers/scsi/aha1740.c | 2 +- + drivers/scsi/atari_NCR5380.c | 2 +- + drivers/scsi/esas2r/esas2r_main.c | 2 +- + drivers/scsi/megaraid.c | 8 ++++---- + drivers/scsi/sun3_NCR5380.c | 10 +++++----- + 6 files changed, 18 insertions(+), 18 deletions(-) + +--- a/drivers/scsi/NCR5380.c ++++ b/drivers/scsi/NCR5380.c +@@ -2655,14 +2655,14 @@ static void NCR5380_dma_complete(NCR5380 + * + * Purpose : abort a command + * +- * Inputs : cmd - the Scsi_Cmnd to abort, code - code to set the +- * host byte of the result field to, if zero DID_ABORTED is ++ * Inputs : cmd - the Scsi_Cmnd to abort, code - code to set the ++ * host byte of the result field to, if zero DID_ABORTED is + * used. + * +- * Returns : 0 - success, -1 on failure. ++ * Returns : SUCCESS - success, FAILED on failure. + * +- * XXX - there is no way to abort the command that is currently +- * connected, you have to wait for it to complete. If this is ++ * XXX - there is no way to abort the command that is currently ++ * connected, you have to wait for it to complete. If this is + * a problem, we could implement longjmp() / setjmp(), setjmp() + * called where the loop started in NCR5380_main(). + * +@@ -2712,7 +2712,7 @@ static int NCR5380_abort(Scsi_Cmnd * cmd + * aborted flag and get back into our main loop. + */ + +- return 0; ++ return SUCCESS; + } + #endif + +--- a/drivers/scsi/aha1740.c ++++ b/drivers/scsi/aha1740.c +@@ -531,7 +531,7 @@ static int aha1740_eh_abort_handler (Scs + * quiet as possible... + */ + +- return 0; ++ return SUCCESS; + } + + static struct scsi_host_template aha1740_template = { +--- a/drivers/scsi/atari_NCR5380.c ++++ b/drivers/scsi/atari_NCR5380.c +@@ -2613,7 +2613,7 @@ static void NCR5380_reselect(struct Scsi + * host byte of the result field to, if zero DID_ABORTED is + * used. + * +- * Returns : 0 - success, -1 on failure. ++ * Returns : SUCCESS - success, FAILED on failure. + * + * XXX - there is no way to abort the command that is currently + * connected, you have to wait for it to complete. If this is +--- a/drivers/scsi/esas2r/esas2r_main.c ++++ b/drivers/scsi/esas2r/esas2r_main.c +@@ -1057,7 +1057,7 @@ int esas2r_eh_abort(struct scsi_cmnd *cm + + cmd->scsi_done(cmd); + +- return 0; ++ return SUCCESS; + } + + spin_lock_irqsave(&a->queue_lock, flags); +--- a/drivers/scsi/megaraid.c ++++ b/drivers/scsi/megaraid.c +@@ -1967,7 +1967,7 @@ megaraid_abort_and_reset(adapter_t *adap + cmd->device->id, cmd->device->lun); + + if(list_empty(&adapter->pending_list)) +- return FALSE; ++ return FAILED; + + list_for_each_safe(pos, next, &adapter->pending_list) { + +@@ -1990,7 +1990,7 @@ megaraid_abort_and_reset(adapter_t *adap + (aor==SCB_ABORT) ? "ABORTING":"RESET", + scb->idx); + +- return FALSE; ++ return FAILED; + } + else { + +@@ -2015,12 +2015,12 @@ megaraid_abort_and_reset(adapter_t *adap + list_add_tail(SCSI_LIST(cmd), + &adapter->completed_list); + +- return TRUE; ++ return SUCCESS; + } + } + } + +- return FALSE; ++ return FAILED; + } + + static inline int +--- a/drivers/scsi/sun3_NCR5380.c ++++ b/drivers/scsi/sun3_NCR5380.c +@@ -2597,15 +2597,15 @@ static void NCR5380_reselect (struct Scs + * Purpose : abort a command + * + * Inputs : cmd - the struct scsi_cmnd to abort, code - code to set the +- * host byte of the result field to, if zero DID_ABORTED is ++ * host byte of the result field to, if zero DID_ABORTED is + * used. + * +- * Returns : 0 - success, -1 on failure. ++ * Returns : SUCCESS - success, FAILED on failure. + * +- * XXX - there is no way to abort the command that is currently +- * connected, you have to wait for it to complete. If this is ++ * XXX - there is no way to abort the command that is currently ++ * connected, you have to wait for it to complete. If this is + * a problem, we could implement longjmp() / setjmp(), setjmp() +- * called where the loop started in NCR5380_main(). ++ * called where the loop started in NCR5380_main(). + */ + + static int NCR5380_abort(struct scsi_cmnd *cmd) diff --git a/queue-3.14/series b/queue-3.14/series index 774c109a807..aa6daaa8d45 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -8,3 +8,13 @@ mfd-tc6393xb-fail-ohci-suspend-if-full-state-restore-is-required.patch mmc-dw_mmc-avoid-write-to-cdthrctl-on-older-versions.patch mmc-block-add-newline-to-sysfs-display-of-force_ro.patch mmc-sdhci-pci-o2micro-fix-dell-e5440-issue.patch +megaraid_sas-corrected-return-of-wait_event-from-abort-frame-path.patch +scsi-correct-return-values-for-.eh_abort_handler-implementations.patch +nfs41-fix-nfs4_proc_layoutget-error-handling.patch +dm-bufio-fix-memleak-when-using-a-dm_buffer-s-inline-bio.patch +dm-crypt-use-memzero_explicit-for-on-stack-buffer.patch +dm-cache-only-use-overwrite-optimisation-for-promotion-when-in-writeback-mode.patch +dm-cache-dirty-flag-was-mistakenly-being-cleared-when-promoting-via-overwrite.patch +dm-space-map-metadata-fix-sm_bootstrap_get_nr_blocks.patch +dm-thin-fix-inability-to-discard-blocks-when-in-out-of-data-space-mode.patch +dm-thin-fix-missing-out-of-data-space-to-write-mode-transition-if-blocks-are-released.patch