Patch "dm cache: fix spurious cell_defer when dealing with partial block at end of device" has been added to the 3.18-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    dm cache: fix spurious cell_defer when dealing with partial block at end of device

to the 3.18-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     dm-cache-fix-spurious-cell_defer-when-dealing-with-partial-block-at-end-of-device.patch
and it can be found in the queue-3.18 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From f824a2af3dfbbb766c02e19df21f985bceadf0ee Mon Sep 17 00:00:00 2001
From: Joe Thornber <ejt@xxxxxxxxxx>
Date: Fri, 28 Nov 2014 09:48:25 +0000
Subject: dm cache: fix spurious cell_defer when dealing with partial block at end of device

From: Joe Thornber <ejt@xxxxxxxxxx>

commit f824a2af3dfbbb766c02e19df21f985bceadf0ee upstream.

We never bother caching a partial block that is at the back end of the
origin device.  No cell ever gets locked, but the calling code was
assuming it was and trying to release it.

Now the code only releases if the cell has been set to a non NULL
value.

Signed-off-by: Joe Thornber <ejt@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
 drivers/md/dm-cache-target.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/md/dm-cache-target.c
+++ b/drivers/md/dm-cache-target.c
@@ -2554,11 +2554,11 @@ static int __cache_map(struct cache *cac
 static int cache_map(struct dm_target *ti, struct bio *bio)
 {
 	int r;
-	struct dm_bio_prison_cell *cell;
+	struct dm_bio_prison_cell *cell = NULL;
 	struct cache *cache = ti->private;
 
 	r = __cache_map(cache, bio, &cell);
-	if (r == DM_MAPIO_REMAPPED) {
+	if (r == DM_MAPIO_REMAPPED && cell) {
 		inc_ds(cache, bio, cell);
 		cell_defer(cache, cell, false);
 	}


Patches currently in stable-queue which might be from ejt@xxxxxxxxxx are

queue-3.18/dm-space-map-metadata-fix-sm_bootstrap_get_nr_blocks.patch
queue-3.18/dm-thin-fix-missing-out-of-data-space-to-write-mode-transition-if-blocks-are-released.patch
queue-3.18/dm-cache-fix-spurious-cell_defer-when-dealing-with-partial-block-at-end-of-device.patch
queue-3.18/dm-thin-fix-inability-to-discard-blocks-when-in-out-of-data-space-mode.patch
queue-3.18/dm-cache-only-use-overwrite-optimisation-for-promotion-when-in-writeback-mode.patch
queue-3.18/dm-cache-dirty-flag-was-mistakenly-being-cleared-when-promoting-via-overwrite.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]