From: Brian Norris Date: Wed, 8 Feb 2012 21:26:20 +0000 (-0800) Subject: libmtd: perform device checking first X-Git-Tag: v1.5.0~6 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c3e2250260f9ab7846cea5ae974ddb7379a8fef6;p=mtd-utils.git libmtd: perform device checking first If we don't check for the MTD before calling `legacy_get_dev_info1', we may get errors like: libmtd: MTD subsystem is old and does not support sysfs, so MTD character device nodes have to exist libmtd: error!: "/dev/mtd2" is not a character device mtdinfo: error!: libmtd failed get MTD device 2 information error 22 (Invalid argument) So reverse the order of these two checks. Signed-off-by: Brian Norris Signed-off-by: Artem Bityutskiy --- diff --git a/lib/libmtd.c b/lib/libmtd.c index 501f3f1..c4836df 100644 --- a/lib/libmtd.c +++ b/lib/libmtd.c @@ -735,12 +735,11 @@ int mtd_get_dev_info1(libmtd_t desc, int mtd_num, struct mtd_dev_info *mtd) memset(mtd, 0, sizeof(struct mtd_dev_info)); mtd->mtd_num = mtd_num; - if (!lib->sysfs_supported) - return legacy_get_dev_info1(mtd_num, mtd); - else if (!mtd_dev_present(desc, mtd_num)) { + if (!mtd_dev_present(desc, mtd_num)) { errno = ENODEV; return -1; - } + } else if (!lib->sysfs_supported) + return legacy_get_dev_info1(mtd_num, mtd); if (dev_get_major(lib, mtd_num, &mtd->major, &mtd->minor)) return -1;