summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2025-04-13 10:54:59 +0200
committerTom Rini <trini@konsulko.com>2025-04-21 11:07:04 -0600
commitaeed1373724e862acec9fda972d352c9241ee901 (patch)
tree9afe02dfcf5272c14ea8fb6baa6001492e3a7048
parent739ad58dbee874a3ad3bddd116e995212a254e07 (diff)
fs: exfat: Flush node before put in read() callback
Make sure the node is never dirty before being released, flush the node first using exfat_flush_node() and only then release the node using exfat_put_node(). This now matches the behavior of exfat_fs_write() too. Fixes: b86a651b646c ("fs: exfat: Add U-Boot porting layer") Signed-off-by: Marek Vasut <marex@denx.de>
-rw-r--r--fs/exfat/io.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/exfat/io.c b/fs/exfat/io.c
index 81e82829c72..12498a4a6ec 100644
--- a/fs/exfat/io.c
+++ b/fs/exfat/io.c
@@ -898,9 +898,7 @@ int exfat_fs_read(const char *filename, void *buf, loff_t offset, loff_t len,
*actread = sz;
- exfat_put_node(&ctxt.ef, node);
-
- return exfat_flush_node(&ctxt.ef, node);
+ err = exfat_flush_node(&ctxt.ef, node);
exit:
exfat_put_node(&ctxt.ef, node);
return err;