From patchwork Sat Aug 18 12:11:42 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: UBI: Do not try to autoresize in readonly mode Date: Sat, 18 Aug 2012 02:11:42 -0000 From: =?utf-8?q?Pali_Roh=C3=A1r_=3Cpali=2Erohar=40gmail=2Ecom=3E?= X-Patchwork-Id: 178457 Message-Id: <8381186.XTLIOQGYR2@pali> To: Artem Bityutskiy Cc: linux-mtd@lists.infradead.org Hello, when I'm tried to mount ubifs image from readonly mtd device (e.g virtual, only for unpacking data) it failed because image has autoresize flag on ubi block. ubi build.c code trying to autoresize ubi image if has autoresize flag and if autoresize failed, attaching ubi failed. So it is not possible to mount ubifs image if ubi has autoresize flag in read only mode (because resizing is not possible on read only device). I'm sending small patch which skip autoresizing ubi in readonly mode. I think it is really not good idea to try resize in ro mode. goto out_detach; With this patch I'm able to mount & unpack data from ubifs image on read only (virtual/simulated) nand device with autoresize flag. Consider including this patch to ubi-2.6 git tree. BTW, is there userspace tool for unpacking data from ubifs image without need to simulate nand device in kernel? diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index 738772c..ad911ab 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -927,7 +927,7 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, int vid_hdr_offset) goto out_debugging; } - if (ubi->autoresize_vol_id != -1) { + if (!ubi->ro_mode && ubi->autoresize_vol_id != -1) { err = autoresize(ubi, ubi->autoresize_vol_id); if (err)