VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
author: Tetsuhiro Kohada <kohada.t2@gmail.com> 2020-06-23 15:22:19 +0900 committer: Namjae Jeon <namjae.jeon@samsung.com> 2020-08-12 08:31:11 +0900 commit: 3db3c3fb840ed4a6c7666d1464959edd40fe54f1 parent: 2c7f8937ef91520a8a4bd700d5817b5e9c99803c
Commit Summary:
exfat: write multiple sectors at once
Diffstat:
1 file changed, 17 insertions, 0 deletions
diff --git a/fs/exfat/misc.c b/fs/exfat/misc.c
index 8a3dde59052b..d34e6193258d 100644
--- a/fs/exfat/misc.c
+++ b/fs/exfat/misc.c
@@ -172,6 +172,25 @@ void exfat_update_bh(struct buffer_head *bh, int sync)
 		sync_dirty_buffer(bh);
 }
 
+int exfat_update_bhs(struct buffer_head **bhs, int nr_bhs, int sync)
+{
+	int i, err = 0;
+
+	for (i = 0; i < nr_bhs; i++) {
+		set_buffer_uptodate(bhs[i]);
+		mark_buffer_dirty(bhs[i]);
+		if (sync)
+			write_dirty_buffer(bhs[i], 0);
+	}
+
+	for (i = 0; i < nr_bhs && sync; i++) {
+		wait_on_buffer(bhs[i]);
+		if (!err && !buffer_uptodate(bhs[i]))
+			err = -EIO;
+	}
+	return err;
+}
+
 void exfat_chain_set(struct exfat_chain *ec, unsigned int dir,
 		unsigned int size, unsigned char flags)
 {