diff options
-rw-r--r-- | fs/ntfs/ChangeLog | 3 | ||||
-rw-r--r-- | fs/ntfs/mft.c | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/fs/ntfs/ChangeLog b/fs/ntfs/ChangeLog index 9709fac6531d..21e21fe519e2 100644 --- a/fs/ntfs/ChangeLog +++ b/fs/ntfs/ChangeLog | |||
@@ -174,6 +174,9 @@ ToDo/Notes: | |||
174 | fact that the vfs and ntfs inodes are one struct in memory to find | 174 | fact that the vfs and ntfs inodes are one struct in memory to find |
175 | the ntfs inode in memory if present. Also, the ntfs inode has its | 175 | the ntfs inode in memory if present. Also, the ntfs inode has its |
176 | own locking so it does not matter if the vfs inode is locked. | 176 | own locking so it does not matter if the vfs inode is locked. |
177 | - Fix bug in mft record writing where we forgot to set the device in | ||
178 | the buffers when mapping them after the VM had discarded them | ||
179 | Thanks to Martin MOKREJŠ for the bug report. | ||
177 | 180 | ||
178 | 2.1.22 - Many bug and race fixes and error handling improvements. | 181 | 2.1.22 - Many bug and race fixes and error handling improvements. |
179 | 182 | ||
diff --git a/fs/ntfs/mft.c b/fs/ntfs/mft.c index ac9ff39aa834..317f7c679fd3 100644 --- a/fs/ntfs/mft.c +++ b/fs/ntfs/mft.c | |||
@@ -533,6 +533,7 @@ int ntfs_sync_mft_mirror(ntfs_volume *vol, const unsigned long mft_no, | |||
533 | LCN lcn; | 533 | LCN lcn; |
534 | unsigned int vcn_ofs; | 534 | unsigned int vcn_ofs; |
535 | 535 | ||
536 | bh->b_bdev = vol->sb->s_bdev; | ||
536 | /* Obtain the vcn and offset of the current block. */ | 537 | /* Obtain the vcn and offset of the current block. */ |
537 | vcn = ((VCN)mft_no << vol->mft_record_size_bits) + | 538 | vcn = ((VCN)mft_no << vol->mft_record_size_bits) + |
538 | (block_start - m_start); | 539 | (block_start - m_start); |
@@ -725,6 +726,7 @@ int write_mft_record_nolock(ntfs_inode *ni, MFT_RECORD *m, int sync) | |||
725 | LCN lcn; | 726 | LCN lcn; |
726 | unsigned int vcn_ofs; | 727 | unsigned int vcn_ofs; |
727 | 728 | ||
729 | bh->b_bdev = vol->sb->s_bdev; | ||
728 | /* Obtain the vcn and offset of the current block. */ | 730 | /* Obtain the vcn and offset of the current block. */ |
729 | vcn = ((VCN)ni->mft_no << vol->mft_record_size_bits) + | 731 | vcn = ((VCN)ni->mft_no << vol->mft_record_size_bits) + |
730 | (block_start - m_start); | 732 | (block_start - m_start); |