Re: [PATCH] mtd: blkdevs: Fix mtd block write failure
Hi, On Sat, Aug 05, 2017 at 01:44:26AM +0530, Abhishek Sahu wrote: > On 2017-08-03 20:40, Boris Brezillon wrote: > >On Wed, 2 Aug 2017 18:03:05 +0530 > >Abhishek Sahuwrote: > > > >>All the MTD block write requests are failing with > >>following error messages > >> > >>mkfs.ext4 /dev/mtdblock0 > >> > >>print_req_error: I/O error, dev mtdblock0, sector 0 > >>Buffer I/O error on dev mtdblock0, logical block 0, > >>lost async page write > >> > >>The control is going to default case after block write request > >>because of missing return. > >> > >>Fixes: commit 2a842acab109 ("block: introduce new block status > >>code type") Looks like that never even went to the MTD list. Oh well, I still likely wouldn't have reviewed it this closely :) > >>Signed-off-by: Abhishek Sahu > > > >Acked-by: Boris Brezillon > > > > Shall this patch be included for next RC since the MTD block > write is broken in 4.13 and without this, all the writes to > MTD block device will return failure. Yes, applied to linux-mtd.git, and I'll try to get this out for 4.13. > >>--- > >> drivers/mtd/mtd_blkdevs.c | 1 + > >> 1 file changed, 1 insertion(+) > >> > >>diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c > >>index f336a9b..9ec8f03 100644 > >>--- a/drivers/mtd/mtd_blkdevs.c > >>+++ b/drivers/mtd/mtd_blkdevs.c > >>@@ -113,6 +113,7 @@ static blk_status_t > >>do_blktrans_request(struct mtd_blktrans_ops *tr, > >>for (; nsect > 0; nsect--, block++, buf += tr->blksize) > >>if (tr->writesect(dev, block, buf)) > >>return BLK_STS_IOERR; > >>+ return BLK_STS_OK; Ooh, that's a nasty one. No compiler warning, because it just falls back to the 'default' case :( Brian > >>default: > >>return BLK_STS_IOERR; > >>}
Re: [PATCH] mtd: blkdevs: Fix mtd block write failure
Hi, On Sat, Aug 05, 2017 at 01:44:26AM +0530, Abhishek Sahu wrote: > On 2017-08-03 20:40, Boris Brezillon wrote: > >On Wed, 2 Aug 2017 18:03:05 +0530 > >Abhishek Sahu wrote: > > > >>All the MTD block write requests are failing with > >>following error messages > >> > >>mkfs.ext4 /dev/mtdblock0 > >> > >>print_req_error: I/O error, dev mtdblock0, sector 0 > >>Buffer I/O error on dev mtdblock0, logical block 0, > >>lost async page write > >> > >>The control is going to default case after block write request > >>because of missing return. > >> > >>Fixes: commit 2a842acab109 ("block: introduce new block status > >>code type") Looks like that never even went to the MTD list. Oh well, I still likely wouldn't have reviewed it this closely :) > >>Signed-off-by: Abhishek Sahu > > > >Acked-by: Boris Brezillon > > > > Shall this patch be included for next RC since the MTD block > write is broken in 4.13 and without this, all the writes to > MTD block device will return failure. Yes, applied to linux-mtd.git, and I'll try to get this out for 4.13. > >>--- > >> drivers/mtd/mtd_blkdevs.c | 1 + > >> 1 file changed, 1 insertion(+) > >> > >>diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c > >>index f336a9b..9ec8f03 100644 > >>--- a/drivers/mtd/mtd_blkdevs.c > >>+++ b/drivers/mtd/mtd_blkdevs.c > >>@@ -113,6 +113,7 @@ static blk_status_t > >>do_blktrans_request(struct mtd_blktrans_ops *tr, > >>for (; nsect > 0; nsect--, block++, buf += tr->blksize) > >>if (tr->writesect(dev, block, buf)) > >>return BLK_STS_IOERR; > >>+ return BLK_STS_OK; Ooh, that's a nasty one. No compiler warning, because it just falls back to the 'default' case :( Brian > >>default: > >>return BLK_STS_IOERR; > >>}
Re: [PATCH] mtd: blkdevs: Fix mtd block write failure
On 2017-08-03 20:40, Boris Brezillon wrote: On Wed, 2 Aug 2017 18:03:05 +0530 Abhishek Sahuwrote: All the MTD block write requests are failing with following error messages mkfs.ext4 /dev/mtdblock0 print_req_error: I/O error, dev mtdblock0, sector 0 Buffer I/O error on dev mtdblock0, logical block 0, lost async page write The control is going to default case after block write request because of missing return. Fixes: commit 2a842acab109 ("block: introduce new block status code type") Signed-off-by: Abhishek Sahu Acked-by: Boris Brezillon Shall this patch be included for next RC since the MTD block write is broken in 4.13 and without this, all the writes to MTD block device will return failure. --- drivers/mtd/mtd_blkdevs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c index f336a9b..9ec8f03 100644 --- a/drivers/mtd/mtd_blkdevs.c +++ b/drivers/mtd/mtd_blkdevs.c @@ -113,6 +113,7 @@ static blk_status_t do_blktrans_request(struct mtd_blktrans_ops *tr, for (; nsect > 0; nsect--, block++, buf += tr->blksize) if (tr->writesect(dev, block, buf)) return BLK_STS_IOERR; + return BLK_STS_OK; default: return BLK_STS_IOERR; }
Re: [PATCH] mtd: blkdevs: Fix mtd block write failure
On 2017-08-03 20:40, Boris Brezillon wrote: On Wed, 2 Aug 2017 18:03:05 +0530 Abhishek Sahu wrote: All the MTD block write requests are failing with following error messages mkfs.ext4 /dev/mtdblock0 print_req_error: I/O error, dev mtdblock0, sector 0 Buffer I/O error on dev mtdblock0, logical block 0, lost async page write The control is going to default case after block write request because of missing return. Fixes: commit 2a842acab109 ("block: introduce new block status code type") Signed-off-by: Abhishek Sahu Acked-by: Boris Brezillon Shall this patch be included for next RC since the MTD block write is broken in 4.13 and without this, all the writes to MTD block device will return failure. --- drivers/mtd/mtd_blkdevs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c index f336a9b..9ec8f03 100644 --- a/drivers/mtd/mtd_blkdevs.c +++ b/drivers/mtd/mtd_blkdevs.c @@ -113,6 +113,7 @@ static blk_status_t do_blktrans_request(struct mtd_blktrans_ops *tr, for (; nsect > 0; nsect--, block++, buf += tr->blksize) if (tr->writesect(dev, block, buf)) return BLK_STS_IOERR; + return BLK_STS_OK; default: return BLK_STS_IOERR; }
Re: [PATCH] mtd: blkdevs: Fix mtd block write failure
On Wed, 2 Aug 2017 18:03:05 +0530 Abhishek Sahuwrote: > All the MTD block write requests are failing with > following error messages > > mkfs.ext4 /dev/mtdblock0 > > print_req_error: I/O error, dev mtdblock0, sector 0 > Buffer I/O error on dev mtdblock0, logical block 0, > lost async page write > > The control is going to default case after block write request > because of missing return. > > Fixes: commit 2a842acab109 ("block: introduce new block status code type") > Signed-off-by: Abhishek Sahu Acked-by: Boris Brezillon > --- > drivers/mtd/mtd_blkdevs.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c > index f336a9b..9ec8f03 100644 > --- a/drivers/mtd/mtd_blkdevs.c > +++ b/drivers/mtd/mtd_blkdevs.c > @@ -113,6 +113,7 @@ static blk_status_t do_blktrans_request(struct > mtd_blktrans_ops *tr, > for (; nsect > 0; nsect--, block++, buf += tr->blksize) > if (tr->writesect(dev, block, buf)) > return BLK_STS_IOERR; > + return BLK_STS_OK; > default: > return BLK_STS_IOERR; > }
Re: [PATCH] mtd: blkdevs: Fix mtd block write failure
On Wed, 2 Aug 2017 18:03:05 +0530 Abhishek Sahu wrote: > All the MTD block write requests are failing with > following error messages > > mkfs.ext4 /dev/mtdblock0 > > print_req_error: I/O error, dev mtdblock0, sector 0 > Buffer I/O error on dev mtdblock0, logical block 0, > lost async page write > > The control is going to default case after block write request > because of missing return. > > Fixes: commit 2a842acab109 ("block: introduce new block status code type") > Signed-off-by: Abhishek Sahu Acked-by: Boris Brezillon > --- > drivers/mtd/mtd_blkdevs.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c > index f336a9b..9ec8f03 100644 > --- a/drivers/mtd/mtd_blkdevs.c > +++ b/drivers/mtd/mtd_blkdevs.c > @@ -113,6 +113,7 @@ static blk_status_t do_blktrans_request(struct > mtd_blktrans_ops *tr, > for (; nsect > 0; nsect--, block++, buf += tr->blksize) > if (tr->writesect(dev, block, buf)) > return BLK_STS_IOERR; > + return BLK_STS_OK; > default: > return BLK_STS_IOERR; > }