Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3834c3f2 authored by Anton Altaparmakov's avatar Anton Altaparmakov
Browse files

NTFS: Fix stupid bug in fs/ntfs/mft.c introduced in last changeset.

parent 149f0c52
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -2377,22 +2377,20 @@ ntfs_inode *ntfs_mft_record_alloc(ntfs_volume *vol, const int mode,
	 * first written to so it optimizes away nicely in the common case.
	 */
	read_lock_irqsave(&mft_ni->size_lock, flags);
	old_data_size = mft_ni->allocated_size;
	ntfs_debug("Status of mft data before extension: "
			"allocated_size 0x%llx, data_size 0x%llx, "
			"initialized_size 0x%llx.",
			(long long)old_data_size,
			(long long)mft_ni->allocated_size,
			(long long)i_size_read(vol->mft_ino),
			(long long)mft_ni->initialized_size);
	while (ll > mft_ni->allocated_size) {
		read_unlock_irqrestore(&mft_ni->size_lock, flags);
	while (ll > old_data_size) {
		err = ntfs_mft_data_extend_allocation_nolock(vol);
		if (unlikely(err)) {
			ntfs_error(vol->sb, "Failed to extend mft data "
					"allocation.");
			goto undo_mftbmp_alloc_nolock;
		}
#ifdef DEBUG
		read_lock_irqsave(&mft_ni->size_lock, flags);
		ntfs_debug("Status of mft data after allocation extension: "
				"allocated_size 0x%llx, data_size 0x%llx, "
@@ -2400,9 +2398,8 @@ ntfs_inode *ntfs_mft_record_alloc(ntfs_volume *vol, const int mode,
				(long long)mft_ni->allocated_size,
				(long long)i_size_read(vol->mft_ino),
				(long long)mft_ni->initialized_size);
		read_unlock_irqrestore(&mft_ni->size_lock, flags);
#endif /* DEBUG */
	}
	read_unlock_irqrestore(&mft_ni->size_lock, flags);
	/*
	 * Extend mft data initialized size (and data size of course) to reach
	 * the allocated mft record, formatting the mft records allong the way.