Date: Thursday, September 27, 2018 @ 09:15:24
  Author: bisson
Revision: 335464

fix FS#60182

Added:
  ntfs-3g/trunk/mftmirr.patch
Modified:
  ntfs-3g/trunk/PKGBUILD

---------------+
 PKGBUILD      |    9 ++++++---
 mftmirr.patch |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2018-09-27 09:03:54 UTC (rev 335463)
+++ PKGBUILD    2018-09-27 09:15:24 UTC (rev 335464)
@@ -6,14 +6,16 @@
 pkgname=ntfs-3g
 _pkgname=ntfs-3g_ntfsprogs
 pkgver=2017.3.23
-pkgrel=2
+pkgrel=3
 pkgdesc='NTFS filesystem driver and utilities'
 url='https://www.tuxera.com/community/open-source-ntfs-3g/'
 arch=('x86_64')
 license=('GPL2')
 depends=('util-linux' 'fuse2')
-source=("https://tuxera.com/opensource/${_pkgname}-${pkgver}.tgz";)
-sha256sums=('3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5')
+source=("https://tuxera.com/opensource/${_pkgname}-${pkgver}.tgz";
+        'mftmirr.patch')
+sha256sums=('3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5'
+            '4166ff3021921d7a7ffac8f5de64b5735b1d5e365a024744bebc7260cf1ce726')
 
 conflicts=('ntfsprogs')
 provides=('ntfsprogs')
@@ -22,6 +24,7 @@
 prepare() {
        cd "${srcdir}/${_pkgname}-${pkgver}"
        sed 's|$(DESTDIR)/sbin|$(DESTDIR)/usr/bin|' -i 
{ntfsprogs,src}/Makefile.in
+       patch -p1 -i ../mftmirr.patch
 }
 
 build() {

Added: mftmirr.patch
===================================================================
--- mftmirr.patch                               (rev 0)
+++ mftmirr.patch       2018-09-27 09:15:24 UTC (rev 335464)
@@ -0,0 +1,47 @@
+From 85e208176ffd16ce9a51a9f534b194f0ebbde6e3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jean-Pierre=20Andr=C3=A9?= <jpan...@users.sourceforge.net>
+Date: Fri, 22 Dec 2017 11:29:00 +0100
+Subject: [PATCH] Stopped checking matches of MFTMirr against MFT at record 16
+
+Since its 2017 edition, Windows 10 has stopped mirroring $MFT to the
+full size of $MFTMirr leading to mounts of partitions with big clusters
+to be rejected because of mismatches. With this patch, only 16 records
+are checked, though mirroring is still done for all records in $MFTMirr.
+---
+ libntfs-3g/volume.c | 3 ++-
+ ntfsprogs/ntfsfix.c | 5 +++++
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/libntfs-3g/volume.c b/libntfs-3g/volume.c
+index 68b8ee1d..d36c7d55 100644
+--- a/libntfs-3g/volume.c
++++ b/libntfs-3g/volume.c
+@@ -959,7 +959,8 @@ ntfs_volume *ntfs_device_mount(struct ntfs_device *dev, 
ntfs_mount_flags flags)
+               vol->mftmirr_size = l;
+       }
+       ntfs_log_debug("Comparing $MFTMirr to $MFT...\n");
+-      for (i = 0; i < vol->mftmirr_size; ++i) {
++              /* Windows 10 does not update the full $MFTMirr any more */
++      for (i = 0; (i < vol->mftmirr_size) && (i < FILE_first_user); ++i) {
+               MFT_RECORD *mrec, *mrec2;
+               const char *ESTR[12] = { "$MFT", "$MFTMirr", "$LogFile",
+                       "$Volume", "$AttrDef", "root directory", "$Bitmap",
+diff --git a/ntfsprogs/ntfsfix.c b/ntfsprogs/ntfsfix.c
+index 2a624023..6801e70e 100644
+--- a/ntfsprogs/ntfsfix.c
++++ b/ntfsprogs/ntfsfix.c
+@@ -506,6 +506,11 @@ static int fix_mftmirr(ntfs_volume *vol)
+ 
+       ntfs_log_info("Comparing $MFTMirr to $MFT... ");
+       done = FALSE;
++      /*
++       * Since 2017, Windows 10 does not mirror to full $MFTMirr when
++       * using big clusters, and some records may be found different.
++       * Nevertheless chkdsk.exe mirrors it fully, so we do similarly.
++       */
+       for (i = 0; i < vol->mftmirr_size; ++i) {
+               MFT_RECORD *mrec, *mrec2;
+               const char *ESTR[12] = { "$MFT", "$MFTMirr", "$LogFile",
+-- 
+2.19.0
+

Reply via email to