Commit 3834c3f227725e2395840aed82342bda4ee9d379

Authored by Anton Altaparmakov
1 parent 149f0c5200

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

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>

Showing 1 changed file with 4 additions and 7 deletions Side-by-side Diff

... ... @@ -2377,22 +2377,20 @@
2377 2377 * first written to so it optimizes away nicely in the common case.
2378 2378 */
2379 2379 read_lock_irqsave(&mft_ni->size_lock, flags);
2380   - old_data_size = mft_ni->allocated_size;
2381 2380 ntfs_debug("Status of mft data before extension: "
2382 2381 "allocated_size 0x%llx, data_size 0x%llx, "
2383 2382 "initialized_size 0x%llx.",
2384   - (long long)old_data_size,
  2383 + (long long)mft_ni->allocated_size,
2385 2384 (long long)i_size_read(vol->mft_ino),
2386 2385 (long long)mft_ni->initialized_size);
2387   - read_unlock_irqrestore(&mft_ni->size_lock, flags);
2388   - while (ll > old_data_size) {
  2386 + while (ll > mft_ni->allocated_size) {
  2387 + read_unlock_irqrestore(&mft_ni->size_lock, flags);
2389 2388 err = ntfs_mft_data_extend_allocation_nolock(vol);
2390 2389 if (unlikely(err)) {
2391 2390 ntfs_error(vol->sb, "Failed to extend mft data "
2392 2391 "allocation.");
2393 2392 goto undo_mftbmp_alloc_nolock;
2394 2393 }
2395   -#ifdef DEBUG
2396 2394 read_lock_irqsave(&mft_ni->size_lock, flags);
2397 2395 ntfs_debug("Status of mft data after allocation extension: "
2398 2396 "allocated_size 0x%llx, data_size 0x%llx, "
2399 2397  
... ... @@ -2400,9 +2398,8 @@
2400 2398 (long long)mft_ni->allocated_size,
2401 2399 (long long)i_size_read(vol->mft_ino),
2402 2400 (long long)mft_ni->initialized_size);
2403   - read_unlock_irqrestore(&mft_ni->size_lock, flags);
2404   -#endif /* DEBUG */
2405 2401 }
  2402 + read_unlock_irqrestore(&mft_ni->size_lock, flags);
2406 2403 /*
2407 2404 * Extend mft data initialized size (and data size of course) to reach
2408 2405 * the allocated mft record, formatting the mft records allong the way.