From: Rafał Miłecki Date: Sat, 11 Apr 2015 07:56:44 +0000 (+0200) Subject: jffs2reset: use jffs2_mark if rootfs_data isn't mounted X-Git-Url: http://git.archive.openwrt.org/?p=project%2Ffstools.git;a=commitdiff_plain;h=e6004000ff15d7bd32cf5663e8690fc94d7ec747 jffs2reset: use jffs2_mark if rootfs_data isn't mounted Erasing all rootfs_data blocks may cause some problems with partition identification. It won't contain MAGIC, but will be successfully mounted with delayed blocks marking. This may be really confusing when user reboots before JFFS2 finishes its blocks management. During the next boot rootfs_data will be a valid partition (possibly with data) but libblkid won't detect it. Also adjust message in jffs2_mark to make more sense when used together with jffs2_reset. Signed-off-by: Rafał Miłecki --- diff --git a/jffs2reset.c b/jffs2reset.c index 778a97e..0410466 100644 --- a/jffs2reset.c +++ b/jffs2reset.c @@ -27,6 +27,8 @@ #include "libfstools/libfstools.h" #include "libfstools/volume.h" +static int jffs2_mark(struct volume *v); + static int ask_user(int argc, char **argv) { @@ -50,8 +52,8 @@ static int jffs2_reset(struct volume *v) overlay_delete(mp, false); mount(mp, "/", NULL, MS_REMOUNT, 0); } else { - ULOG_INFO("%s is not mounted, erasing it\n", v->blk); - volume_erase_all(v); + ULOG_INFO("%s is not mounted\n", v->blk); + return jffs2_mark(v); } return 0; @@ -64,7 +66,7 @@ static int jffs2_mark(struct volume *v) int fd; fd = open(v->blk, O_WRONLY); - ULOG_INFO("%s - marking with deadc0de\n", v->blk); + ULOG_INFO("%s will be erased on next mount\n", v->blk); if (!fd) { ULOG_ERR("opening %s failed\n", v->blk); return -1;