summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-12-13 11:08:03 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-12-13 11:38:53 +0100
commit4b8e01f7c559ef661910d013347513221f3baca7 (patch)
tree55e3c62d9afecf5e9bc17a1ef823f9311ff7c280 /cpukit/libfs
parentdosfs: Fix error status handling (diff)
downloadrtems-4b8e01f7c559ef661910d013347513221f3baca7.tar.bz2
dosfs: Add sync_device option for msdos_format()
Diffstat (limited to 'cpukit/libfs')
-rw-r--r--cpukit/libfs/src/dosfs/dosfs.h5
-rw-r--r--cpukit/libfs/src/dosfs/msdos_format.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/cpukit/libfs/src/dosfs/dosfs.h b/cpukit/libfs/src/dosfs/dosfs.h
index 48574664ea..2374e63f2b 100644
--- a/cpukit/libfs/src/dosfs/dosfs.h
+++ b/cpukit/libfs/src/dosfs/dosfs.h
@@ -95,6 +95,11 @@ typedef struct {
bool skip_alignment;
/**
+ * @brief Synchronize device after write operations.
+ */
+ bool sync_device;
+
+ /**
* @brief The amount of info to output.
*/
int info_level;
diff --git a/cpukit/libfs/src/dosfs/msdos_format.c b/cpukit/libfs/src/dosfs/msdos_format.c
index 0bf3f398ef..0b30caf030 100644
--- a/cpukit/libfs/src/dosfs/msdos_format.c
+++ b/cpukit/libfs/src/dosfs/msdos_format.c
@@ -1251,6 +1251,11 @@ int msdos_format
tmp_sec);
}
}
+
+ if (ret_val == 0 && rqdata != NULL && rqdata->sync_device) {
+ ret_val = rtems_disk_fd_sync(fd);
+ }
+
/*
* cleanup:
* sync and unlock disk