libf2fs: move the finalize_device() into the io lib.

This is required so that libf2fs.c can be used against any kind
of device (E.g. an in-memory sparse file) just by linking against
something that provides the libf2fs_io.c functions.

libf2fs is currently libf2fs.c + libf2fs_io.c

Signed-off-by: JP Abgrall <jpa@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
diff --git a/lib/libf2fs.c b/lib/libf2fs.c
index 8d6c670..6168c5c 100644
--- a/lib/libf2fs.c
+++ b/lib/libf2fs.c
@@ -493,15 +493,3 @@
 	return 0;
 }
 
-void f2fs_finalize_device(struct f2fs_configuration *c)
-{
-	/*
-	 * We should call fsync() to flush out all the dirty pages
-	 * in the block device page cache.
-	 */
-	if (fsync(c->fd) < 0)
-		MSG(0, "\tError: Could not conduct fsync!!!\n");
-
-	if (close(c->fd) < 0)
-		MSG(0, "\tError: Failed to close device file!!!\n");
-}
diff --git a/lib/libf2fs_io.c b/lib/libf2fs_io.c
index 508ccce..5d9b68d 100644
--- a/lib/libf2fs_io.c
+++ b/lib/libf2fs_io.c
@@ -67,3 +67,16 @@
 {
 	return dev_read(buf, addr * F2FS_BLKSIZE, nr_blks * F2FS_BLKSIZE);
 }
+
+void f2fs_finalize_device(struct f2fs_configuration *c)
+{
+	/*
+	 * We should call fsync() to flush out all the dirty pages
+	 * in the block device page cache.
+	 */
+	if (fsync(c->fd) < 0)
+		MSG(0, "\tError: Could not conduct fsync!!!\n");
+
+	if (close(c->fd) < 0)
+		MSG(0, "\tError: Failed to close device file!!!\n");
+}