Messages in this thread | | | Date | Thu, 21 May 2015 09:56:21 +0200 | Subject | Re: [PATCH] mtd: blktrans: change blktrans_getgeo rerurn value | From | Richard Weinberger <> |
| |
On Wed, May 20, 2015 at 9:33 PM, Brian Norris <computersforpeace@gmail.com> wrote: > Hi Wenlin, > > In the subject: > > s/rerurn/return/ > > On Wed, May 13, 2015 at 02:29:16PM +0800, Wenlin Kang wrote: >> Modify function blktrans_getgeo()'s return value to -ENXIO when >> dev->tr->getgeo == NULL. >> >> We shouldn't make the return value to 0 when dev->tr->getgeo == NULL, >> because the function blktrans_getgeo() has an output value "hd_geometry" >> which is usually used by some application, if return 0, it will make some >> application get the wrong information. >> >> Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> >> --- >> drivers/mtd/mtd_blkdevs.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c >> index 2b0c5287..f8bb16e 100644 >> --- a/drivers/mtd/mtd_blkdevs.c >> +++ b/drivers/mtd/mtd_blkdevs.c >> @@ -273,7 +273,7 @@ static int blktrans_getgeo(struct block_device *bdev, struct hd_geometry *geo) >> if (!dev->mtd) >> goto unlock; >> >> - ret = dev->tr->getgeo ? dev->tr->getgeo(dev, geo) : 0; >> + ret = dev->tr->getgeo ? dev->tr->getgeo(dev, geo) : -ENXIO; > > Good catch. I don't think ENXIO is correct in this case, though. Maybe > -EOPNOTSUPP or -ENOSYS? The latter might make more sense I guess.
I'd vote for -ENOTTY as this is what HDIO_GETGEIO returns if the function is not implemented and blktrans_getgeo() is only a wrapper around that.
See https://www.kernel.org/doc/Documentation/ioctl/hdio.txt and block/ioctl.c.
-- Thanks, //richard
| |