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

Commit f95c4018 authored by Anton Altaparmakov's avatar Anton Altaparmakov
Browse files

NTFS: Remove all the make_bad_inode() calls. This should only be called


      from read inode and new inode code paths.

Signed-off-by: default avatarAnton Altaparmakov <aia21@cantab.net>
parent a0646a1f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ ToDo/Notes:
	  unused, invalid mft records which are the same in both $MFT and
	  $MFTMirr.
	- Add support for sparse files which have a compression unit of 0.
	- Remove all the make_bad_inode() calls.  This should only be called
	  from read inode and new inode code paths.

2.1.26 - Minor bug fixes and updates.

+0 −1
Original line number Diff line number Diff line
@@ -1530,7 +1530,6 @@ static int ntfs_writepage(struct page *page, struct writeback_control *wbc)
				"error %i.", err);
		SetPageError(page);
		NVolSetErrors(ni->vol);
		make_bad_inode(vi);
	}
	unlock_page(page);
	if (ctx)
+0 −6
Original line number Diff line number Diff line
@@ -2438,16 +2438,12 @@ s64 ntfs_attr_extend_allocation(ntfs_inode *ni, s64 new_alloc_size,
				"chkdsk to recover.", IS_ERR(m) ?
				"restore attribute search context" :
				"truncate attribute runlist");
		make_bad_inode(vi);
		make_bad_inode(VFS_I(base_ni));
		NVolSetErrors(vol);
	} else if (mp_rebuilt) {
		if (ntfs_attr_record_resize(m, a, attr_len)) {
			ntfs_error(vol->sb, "Failed to restore attribute "
					"record in error code path.  Run "
					"chkdsk to recover.");
			make_bad_inode(vi);
			make_bad_inode(VFS_I(base_ni));
			NVolSetErrors(vol);
		} else /* if (success) */ {
			if (ntfs_mapping_pairs_build(vol, (u8*)a + le16_to_cpu(
@@ -2460,8 +2456,6 @@ s64 ntfs_attr_extend_allocation(ntfs_inode *ni, s64 new_alloc_size,
						"mapping pairs array in error "
						"code path.  Run chkdsk to "
						"recover.");
				make_bad_inode(vi);
				make_bad_inode(VFS_I(base_ni));
				NVolSetErrors(vol);
			}
			flush_dcache_mft_record_page(ctx->ntfs_ino);
+1 −12
Original line number Diff line number Diff line
@@ -1207,8 +1207,6 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages,
					"attribute runlist in error code "
					"path.  Run chkdsk to recover the "
					"lost cluster.");
			make_bad_inode(vi);
			make_bad_inode(VFS_I(base_ni));
			NVolSetErrors(vol);
		} else /* if (success) */ {
			status.runlist_merged = 0;
@@ -1239,8 +1237,6 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages,
			ntfs_error(vol->sb, "Failed to restore attribute "
					"record in error code path.  Run "
					"chkdsk to recover.");
			make_bad_inode(vi);
			make_bad_inode(VFS_I(base_ni));
			NVolSetErrors(vol);
		} else /* if (success) */ {
			if (ntfs_mapping_pairs_build(vol, (u8*)a +
@@ -1253,8 +1249,6 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages,
						"mapping pairs array in error "
						"code path.  Run chkdsk to "
						"recover.");
				make_bad_inode(vi);
				make_bad_inode(VFS_I(base_ni));
				NVolSetErrors(vol);
			}
			flush_dcache_mft_record_page(ctx->ntfs_ino);
@@ -1623,11 +1617,8 @@ static inline int ntfs_commit_pages_after_non_resident_write(
		unmap_mft_record(base_ni);
	ntfs_error(vi->i_sb, "Failed to update initialized_size/i_size (error "
			"code %i).", err);
	if (err != -ENOMEM) {
	if (err != -ENOMEM)
		NVolSetErrors(ni->vol);
		make_bad_inode(VFS_I(base_ni));
		make_bad_inode(vi);
	}
	return err;
}

@@ -1802,8 +1793,6 @@ static int ntfs_commit_pages_after_write(struct page **pages,
		ntfs_error(vi->i_sb, "Resident attribute commit write failed "
				"with error %i.", err);
		NVolSetErrors(ni->vol);
		make_bad_inode(VFS_I(base_ni));
		make_bad_inode(vi);
	}
	if (ctx)
		ntfs_attr_put_search_ctx(ctx);
+1 −0
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ static inline MFT_RECORD *map_mft_record_page(ntfs_inode *ni)
				"Run chkdsk.", ni->mft_no);
		ntfs_unmap_page(page);
		page = ERR_PTR(-EIO);
		NVolSetErrors(vol);
	}
err_out:
	ni->page = NULL;
Loading