Skip to content

Commit 81845c2

Browse files
stellarhoppergregkh
authored andcommitted
libnvdimm, btt: fix btt_rw_page not returning errors
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. Fixes: 5212e11 ("nd_btt: atomic sector updates") Cc: Toshi Kani <toshi.kani@hpe.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent c4af40a commit 81845c2

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

drivers/nvdimm/btt.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,10 +1205,13 @@ static int btt_rw_page(struct block_device *bdev, sector_t sector,
12051205
struct page *page, int rw)
12061206
{
12071207
struct btt *btt = bdev->bd_disk->private_data;
1208+
int rc;
12081209

1209-
btt_do_bvec(btt, NULL, page, PAGE_CACHE_SIZE, 0, rw, sector);
1210-
page_endio(page, rw & WRITE, 0);
1211-
return 0;
1210+
rc = btt_do_bvec(btt, NULL, page, PAGE_CACHE_SIZE, 0, rw, sector);
1211+
if (rc == 0)
1212+
page_endio(page, rw & WRITE, 0);
1213+
1214+
return rc;
12121215
}
12131216

12141217

0 commit comments

Comments
 (0)