aboutsummaryrefslogtreecommitdiffstats
path: root/package/mtd/src/jffs2.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2008-09-23 09:23:58 +0000
committerFelix Fietkau <nbd@openwrt.org>2008-09-23 09:23:58 +0000
commitbbd9eb4669fa5ea124c386e0ba2c680124fa77b5 (patch)
tree6ee0c0e657c4e8a0aa03ec87e30a4670bf4a2b36 /package/mtd/src/jffs2.c
parent6ce27efe7365b13c786c773d119c8b72f6c175cc (diff)
downloadupstream-bbd9eb4669fa5ea124c386e0ba2c680124fa77b5.tar.gz
upstream-bbd9eb4669fa5ea124c386e0ba2c680124fa77b5.tar.bz2
upstream-bbd9eb4669fa5ea124c386e0ba2c680124fa77b5.zip
clean up mtd, fix up trx header when integrating jffs2 data on broadcom devices
SVN-Revision: 12655
Diffstat (limited to 'package/mtd/src/jffs2.c')
-rw-r--r--package/mtd/src/jffs2.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/package/mtd/src/jffs2.c b/package/mtd/src/jffs2.c
index d1c6fb66fb..5654f93e07 100644
--- a/package/mtd/src/jffs2.c
+++ b/package/mtd/src/jffs2.c
@@ -140,7 +140,6 @@ static void add_file(const char *name, int parent)
struct stat st;
char wbuf[4096];
const char *fname;
- FILE *f;
if (stat(name, &st)) {
fprintf(stderr, "File %s does not exist\n", name);
@@ -210,7 +209,7 @@ static void add_file(const char *name, int parent)
close(fd);
}
-int mtd_replace_jffs2(int fd, int ofs, const char *filename)
+int mtd_replace_jffs2(const char *mtd, int fd, int ofs, const char *filename)
{
outfd = fd;
mtdofs = ofs;
@@ -226,6 +225,11 @@ int mtd_replace_jffs2(int fd, int ofs, const char *filename)
add_data(JFFS2_EOF, sizeof(JFFS2_EOF) - 1);
pad(erasesize);
free(buf);
+
+#ifdef target_brcm
+ trx_fixup(outfd, mtd);
+#endif
+ return 0;
}
void mtd_parse_jffs2data(const char *buf, const char *dir)
@@ -258,7 +262,6 @@ void mtd_parse_jffs2data(const char *buf, const char *dir)
int mtd_write_jffs2(const char *mtd, const char *filename, const char *dir)
{
int err = -1, fdeof = 0;
- off_t offset;
outfd = mtd_check_open(mtd);
if (!outfd)
@@ -326,6 +329,10 @@ int mtd_write_jffs2(const char *mtd, const char *filename, const char *dir)
err = 0;
+#ifdef target_brcm
+ trx_fixup(outfd, mtd);
+#endif
+
done:
close(outfd);
if (buf)