summaryrefslogtreecommitdiffstats
path: root/fs/exfat/fatent.c
diff options
context:
space:
mode:
authorHyeongseok Kim <hyeongseok@gmail.com>2021-03-15 13:12:55 +0900
committerNamjae Jeon <namjae.jeon@samsung.com>2021-04-27 20:45:06 +0900
commit23befe490ba885bdf757d40b2489134315fef690 (patch)
treea52e5f7a88096c8f57e8323da2c5de11c2c6c6e2 /fs/exfat/fatent.c
parent654762df2ec7d61b05acc788afbffaba52d658fe (diff)
downloadlinux-stable-23befe490ba885bdf757d40b2489134315fef690.tar.gz
linux-stable-23befe490ba885bdf757d40b2489134315fef690.tar.bz2
linux-stable-23befe490ba885bdf757d40b2489134315fef690.zip
exfat: improve write performance when dirsync enabled
Degradation of write speed caused by frequent disk access for cluster bitmap update on every cluster allocation could be improved by selective syncing bitmap buffer. Change to flush bitmap buffer only for the directory related operations. Signed-off-by: Hyeongseok Kim <hyeongseok@gmail.com> Acked-by: Sungjong Seo <sj1557.seo@samsung.com> Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Diffstat (limited to 'fs/exfat/fatent.c')
-rw-r--r--fs/exfat/fatent.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/exfat/fatent.c b/fs/exfat/fatent.c
index fd6c7fd12762..e949e563443c 100644
--- a/fs/exfat/fatent.c
+++ b/fs/exfat/fatent.c
@@ -320,7 +320,7 @@ release_bhs:
}
int exfat_alloc_cluster(struct inode *inode, unsigned int num_alloc,
- struct exfat_chain *p_chain)
+ struct exfat_chain *p_chain, bool sync_bmap)
{
int ret = -ENOSPC;
unsigned int num_clusters = 0, total_cnt;
@@ -388,7 +388,7 @@ int exfat_alloc_cluster(struct inode *inode, unsigned int num_alloc,
}
/* update allocation bitmap */
- if (exfat_set_bitmap(inode, new_clu)) {
+ if (exfat_set_bitmap(inode, new_clu, sync_bmap)) {
ret = -EIO;
goto free_cluster;
}