diff options
author | Hyeongseok Kim <hyeongseok@gmail.com> | 2021-03-15 13:12:55 +0900 |
---|---|---|
committer | Namjae Jeon <namjae.jeon@samsung.com> | 2021-04-27 20:45:06 +0900 |
commit | 23befe490ba885bdf757d40b2489134315fef690 (patch) | |
tree | a52e5f7a88096c8f57e8323da2c5de11c2c6c6e2 /fs/exfat/balloc.c | |
parent | 654762df2ec7d61b05acc788afbffaba52d658fe (diff) |
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/balloc.c')
-rw-r--r-- | fs/exfat/balloc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/exfat/balloc.c b/fs/exfat/balloc.c index 78bc87d5a11b..cc5cffc4a769 100644 --- a/fs/exfat/balloc.c +++ b/fs/exfat/balloc.c @@ -141,7 +141,7 @@ void exfat_free_bitmap(struct exfat_sb_info *sbi) kfree(sbi->vol_amap); } -int exfat_set_bitmap(struct inode *inode, unsigned int clu) +int exfat_set_bitmap(struct inode *inode, unsigned int clu, bool sync) { int i, b; unsigned int ent_idx; @@ -154,7 +154,7 @@ int exfat_set_bitmap(struct inode *inode, unsigned int clu) b = BITMAP_OFFSET_BIT_IN_SECTOR(sb, ent_idx); set_bit_le(b, sbi->vol_amap[i]->b_data); - exfat_update_bh(sbi->vol_amap[i], IS_DIRSYNC(inode)); + exfat_update_bh(sbi->vol_amap[i], sync); return 0; } |