aboutsummaryrefslogtreecommitdiffstats
path: root/package/mtd
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2006-04-05 02:09:22 +0000
committerFelix Fietkau <nbd@openwrt.org>2006-04-05 02:09:22 +0000
commite1b417ee76bd97a05854f4304cef3f73e9da633b (patch)
treef5913675e5868c535c007efb3e09a01ce6890287 /package/mtd
parent42269e22a8b817e1e6bc2c9cbb2f03df31221458 (diff)
downloadmaster-187ad058-e1b417ee76bd97a05854f4304cef3f73e9da633b.tar.gz
master-187ad058-e1b417ee76bd97a05854f4304cef3f73e9da633b.tar.bz2
master-187ad058-e1b417ee76bd97a05854f4304cef3f73e9da633b.zip
large init script cleanup and merge of whiterussian changes, new dnsmasq config handling
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@3588 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mtd')
-rw-r--r--package/mtd/mtd.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/package/mtd/mtd.c b/package/mtd/mtd.c
index 78d38fb6a9..23e99160a1 100644
--- a/package/mtd/mtd.c
+++ b/package/mtd/mtd.c
@@ -96,7 +96,7 @@ image_check_bcom(int imagefd, const char *mtd)
}
/* check if image fits to mtd device */
- fd = mtd_open(mtd, O_RDWR);
+ fd = mtd_open(mtd, O_RDWR | O_SYNC);
if(fd < 0) {
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
exit(1);
@@ -113,6 +113,7 @@ image_check_bcom(int imagefd, const char *mtd)
return 0;
}
+ close(fd);
return 1;
}
@@ -148,7 +149,7 @@ int mtd_check(char *mtd)
struct mtd_info_user mtdInfo;
int fd;
- fd = mtd_open(mtd, O_RDWR);
+ fd = mtd_open(mtd, O_RDWR | O_SYNC);
if(fd < 0) {
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
return 0;
@@ -171,7 +172,7 @@ mtd_unlock(const char *mtd)
struct mtd_info_user mtdInfo;
struct erase_info_user mtdLockInfo;
- fd = mtd_open(mtd, O_RDWR);
+ fd = mtd_open(mtd, O_RDWR | O_SYNC);
if(fd < 0) {
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
exit(1);
@@ -222,7 +223,7 @@ mtd_erase(const char *mtd)
struct mtd_info_user mtdInfo;
struct erase_info_user mtdEraseInfo;
- fd = mtd_open(mtd, O_RDWR);
+ fd = mtd_open(mtd, O_RDWR | O_SYNC);
if(fd < 0) {
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
exit(1);
@@ -260,8 +261,9 @@ mtd_write(int imagefd, const char *mtd, int quiet)
size_t r, w, e;
struct mtd_info_user mtdInfo;
struct erase_info_user mtdEraseInfo;
+ int ret = 0;
- fd = mtd_open(mtd, O_RDWR);
+ fd = mtd_open(mtd, O_RDWR | O_SYNC);
if(fd < 0) {
fprintf(stderr, "Could not open mtd device: %s\n", mtd);
exit(1);
@@ -318,7 +320,8 @@ mtd_write(int imagefd, const char *mtd, int quiet)
}
if (!quiet)
fprintf(stderr, "\b\b\b\b");
-
+
+ close(fd);
return 0;
}
@@ -463,6 +466,8 @@ int main (int argc, char **argv)
break;
}
+ sync();
+
if (boot)
kill(1, 15); // send SIGTERM to init for reboot