diff --git a/fs/exfat/fatent.c b/fs/exfat/fatent.c index 9a4143f3fc0c..4177a933e0be 100644 --- a/fs/exfat/fatent.c +++ b/fs/exfat/fatent.c @@ -11,11 +11,11 @@ #include "exfat_raw.h" #include "exfat_fs.h" -static int exfat_mirror_bh(struct super_block *sb, sector_t sec, - struct buffer_head *bh) +static int exfat_mirror_bh(struct super_block *sb, struct buffer_head *bh) { struct buffer_head *c_bh; struct exfat_sb_info *sbi = EXFAT_SB(sb); + sector_t sec = bh->b_blocknr; sector_t sec2; int err = 0; @@ -25,10 +25,7 @@ static int exfat_mirror_bh(struct super_block *sb, sector_t sec, if (!c_bh) return -ENOMEM; memcpy(c_bh->b_data, bh->b_data, sb->s_blocksize); - set_buffer_uptodate(c_bh); - mark_buffer_dirty(c_bh); - if (sb->s_flags & SB_SYNCHRONOUS) - err = sync_dirty_buffer(c_bh); + exfat_update_bh(c_bh, sb->s_flags & SB_SYNCHRONOUS); brelse(c_bh); } @@ -83,7 +80,7 @@ int exfat_ent_set(struct super_block *sb, unsigned int loc, fat_entry = (__le32 *)&(bh->b_data[off]); *fat_entry = cpu_to_le32(content); exfat_update_bh(bh, sb->s_flags & SB_SYNCHRONOUS); - exfat_mirror_bh(sb, sec, bh); + exfat_mirror_bh(sb, bh); brelse(bh); return 0; }