Patchwork UBI: Do not try to autoresize in readonly mode

login
register
mail settings
Submitter Pali Rohár
Date Aug. 18, 2012, 12:11 p.m.
Message ID <8381186.XTLIOQGYR2@pali>
Download mbox | patch
Permalink /patch/178457/
State New
Headers show

Comments

Pali Rohár - Aug. 18, 2012, 12:11 p.m.
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?

Patch

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)