Patch "libnvdimm, btt: fix btt_rw_page not returning errors" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
libnvdimm, btt: fix btt_rw_page not returning errors
to the 4.9-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:
libnvdimm-btt-fix-btt_rw_page-not-returning-errors.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
c13c43d54f2c6a3be1c675766778ac1ad8dfbfccMon Sep 17 00:00:00 2001
From: Vishal Verma <[email protected]>
Date: Thu, 29 Jun 2017 16:59:11 -0600
Subject: libnvdimm, btt: fix btt_rw_page not returning errors
From: Vishal Verma <[email protected]>
commit c13c43d54f2c6a3be1c675766778ac1ad8dfbfcc upstream.
btt_rw_page was not propagating errors frm btt_do_bvec, resulting in any IO errors via the rw_page path going unnoticed. the pmem driver recently fixed this in e10624f pmem: fail io-requests to known bad blocks but same problem in BTT went neglected.
--- drivers/nvdimm/btt.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
drivers/nvdimm/btt.c +6 -3
@@ -1203,10 +1203,13 @@ static int btt_rw_page(struct block_devi struct page *page, bool is_write) {struct btt *btt = bdev->bd_disk->private_data; +int rc; -btt_do_bvec (btt,NULL , page,PAGE_SIZE ,0 , is_write, sector); -page_endio (page, is_write,0 ); -return 0 ; + rc =btt_do_bvec (btt,NULL , page,PAGE_SIZE ,0 , is_write, sector); +if (rc ==0 ) +page_endio (page, is_write,0 ); + +return rc; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/libnvdimm-btt-fix-btt_rw_page-not-returning-errors.patch queue-4.9/libnvdimm-fix-badblock-range-handling-of-ars-range.patch