diff options
Diffstat (limited to 'fs/ntfs/index.c')
| -rw-r--r-- | fs/ntfs/index.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/ntfs/index.c b/fs/ntfs/index.c index 146e011c1a41..4200a8138efa 100644 --- a/fs/ntfs/index.c +++ b/fs/ntfs/index.c @@ -141,6 +141,10 @@ static int ntfs_ib_write(struct ntfs_index_context *icx, struct index_block *ib) ret = ntfs_inode_attr_pwrite(VFS_I(icx->ia_ni), ntfs_ib_vcn_to_pos(icx, vcn), icx->block_size, (u8 *)ib, icx->sync_write); + + /* Perform data restoration before returning */ + post_write_mst_fixup((struct ntfs_record *)ib); + if (ret != icx->block_size) { ntfs_debug("Failed to write index block %lld, inode %llu", vcn, (unsigned long long)icx->idx_ni->mft_no); @@ -178,7 +182,6 @@ int ntfs_icx_ib_sync_write(struct ntfs_index_context *icx) icx->ib = NULL; icx->ib_dirty = false; } else { - post_write_mst_fixup((struct ntfs_record *)icx->ib); icx->sync_write = false; } |
