Hello community,

here is the log from the commit of package ntfs-3g_ntfsprogs.1295 for 
openSUSE:12.1:Update checked in at 2013-02-11 14:55:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update/ntfs-3g_ntfsprogs.1295 (Old)
 and      /work/SRC/openSUSE:12.1:Update/.ntfs-3g_ntfsprogs.1295.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ntfs-3g_ntfsprogs.1295", Maintainer is ""

Changes:
--------
New Changes file:

--- /dev/null   2013-02-09 11:18:20.872010756 +0100
+++ 
/work/SRC/openSUSE:12.1:Update/.ntfs-3g_ntfsprogs.1295.new/ntfs-3g_ntfsprogs.changes
        2013-02-11 14:55:39.000000000 +0100
@@ -0,0 +1,575 @@
+-------------------------------------------------------------------
+Sat Feb  2 20:10:25 UTC 2013 - bo...@steki.net
+
+- Add ntfs-3g_ntfsprogs-use-caution-with-fastboot.patch to 
+  prevent partitions with metadata cached in Windows (when
+  FastBoot is enabled) from being mounted; patch taken from
+  upstream git and rebased (bnc#798337 / rh#859373).
+
+-------------------------------------------------------------------
+Fri Jul  1 15:41:25 CEST 2011 - vu...@opensuse.org
+
+- Rename source package from ntfs-3g to ntfs-3g_ntfsprogs
+  (following upstream).
+- Remove ntfsprogs BuildRequires as it will now be built with this
+  package; update %check to reference the mkntfs binary we built
+  instead of the system one.
+- Define a ntfs-3g subpackage, for compatibility with old package.
+- Split libntfs-3g in libntfs-3g81 subpackage to follow shared
+  library packaging policy.
+- Rename devel subpackage to libntfs-3g-devel for extra clarity,
+  and add appropriate Provides/Obsoletes.
+- Package /sbin/mount.ntfs and %{_mandir}/man8/mount.ntfs.8 as
+  ghost files, to fix rpmlint warning.
+
+-------------------------------------------------------------------
+Tue Jun 28 17:10:56 CEST 2011 - dims...@opensuse.org
+
+- Update to version 2011.4.12:
+  + ntfs-3g:
+    - fixed possible wrong hole size when overwriting compressed
+      data
+    - fixed listxattr() to environments with extended attributes
+    - fixed ENOSPC when making an index non-resident
+    - fixed partial mapping ahead of mapped runlist
+    - enabled forensic mounting (currently same as read-only)
+    - expand an attribute without creating a hole
+    - improved appending data to a long hole
+    - deny direct modifications to metadata files
+    - option 'acl' to request the use of Posix ACLs
+  + ntfsclone:
+    - fixed reading old big-endian ntfsclone images
+    - avoided writing beyond allocated variable
+    - close volume and cleanup when exiting
+    - new option not to clear the timestamps
+    - sync created image before remounting
+    - use a stream to produce aligned writes during image creation
+  + ntfsinfo: display times in UTC
+  + mkntfs:
+    - don't store full bitmap and logfile in memory
+    - set a volume UUID if option -U
+    - fixed $MFT allocated size
+    - fixed allocated size of resident unnamed data
+  + ntfsfix:
+    - new option -n for no action
+    - try alternate boot sector if cannot start up
+    - check and fix the upcase table
+    - try to fix file systems with incorrect size
+  + ntfsundelete: fixed a segfault
+  + ntfsresize:
+    - new option --info-mb-only
+    - new option --check
+- ntfs-3g and ntfsprogs are now part of one source tarball. For
+  easiest upgrade path, we create a subpackage called ntfsprogs.
+  The version number is higher than the latest released one, so
+  there is no need for special care.
+
+-------------------------------------------------------------------
+Sat Apr 30 18:14:05 UTC 2011 - crrodrig...@opensuse.org
+
+- Fix build with gcc 4.6: Remove -Werror from CFLAGS in the spec
+  file. It currently fails on "error: variable 'foo' set but not
+  used [-Werror=unused-but-set-variable]"
+
+-------------------------------------------------------------------
+Sun Mar 20 22:23:50 CET 2011 - dims...@opensuse.org
+
+- Update to version 2011.1.15:
+  + New festures:
+    - implemented fsync() and fsyncdir().
+    - implemented the ’sync’ mount option.
+    - sanity check upcase table.
+    - added a big-endian extended attribute name for attrib and
+      times.
+    - added an extended attribute name for creation time.
+    - enable renaming of system extended attributes.
+  + Bug fixes:
+    - improved appending data to fragmented files.
+    - improved rebuilding a runlist.
+    - improved comparing filenames on big-endian CPUs.
+    - stat(2) for system files with no data.
+    - alignment on cached structures.
+    - Posix ACLs for big-endian CPUs.
+    - deleting files using ignore_case option.
+    - allocated size when an attribute update causes unnamed
+      data to be expelled.
+
+-------------------------------------------------------------------
+Mon Oct  4 12:06:02 CEST 2010 - vu...@opensuse.org
+
+- Update to version 2010.10.2:
+  + Bug fixes:
+    - Fixed filename encoding when standard functions are not
+      available.
+    - Fixed checking mounted device status on some non-Linux
+      platforms.
+    - Fixed mounting with SELinux context.
+    - Fixed -n and --no-mtab mount option handling, needed by
+      automount.
+    - Improved consistency checks of POSIX ACLs.
+    - NTFS-3G manual update.
+
+-------------------------------------------------------------------
+Mon Aug  9 11:30:16 CEST 2010 - vu...@opensuse.org
+
+- Update to version 2010.8.8:
+  + New features:
+    - Full, transparent, read-write compression support.
+    - Two new mount options: compression and nocompression
+      (default).
+    - Introduced windows_names mount option to enforce only Windows
+      names.
+  + Behavior changes:
+    - Re-enabled compression in root directory.
+    - Reversed default for showing/hiding hidden files.
+    - Redefined default user mapping.
+    - Marked files whose name has a dot initial as “hidden” if
+      option hide_dot_files is used.
+    - Renamed option default_permissions to permissions.
+  + Bug fixes:
+    - Fixed use of utimensat() with external fuse older than 2.8.
+    - Fixed a hang when reading a corrupt compressed file.
+    - Fixed a possible crash when creating a stream.
+    - Fixed all reported and found compressed write related bugs.
+    - Fixed partially overwriting sparse clusters on highly
+      fragmented volumes.
+    - Fixed checking write errors in setxattr().
+    - Fixed processing end of partial runlist for compressed files.
+    - Fixed updating file compressed sizes.
+    - Fixed checking the device mount state.
+    - Fixed processing of options silent and no_def_opts.
+    - Fixed excessive cluster allocation within big holes.
+    - Fixed creating empty encrypted extended attributes.
+    - Fixed too permissive sanity check before compressing.
+    - Fixed error returns when writing compressed data.
+    - Fixed sanity checked when closing a compressed file.
+    - Fixed zeroing the end of an ex-hole cluster of compressed
+      files.
+    - Improved sanity checks on security descriptors.
+
+-------------------------------------------------------------------
+Fri May 28 09:09:32 UTC 2010 - dims...@opensuse.org
+
+- Update to version 2010.5.22:
+  + The missing helpers secaudit and usermap are back.
+
+-------------------------------------------------------------------
+Fri May  21 10:08:37 CET 2010 - and...@opensuse.org
+
+- Update to version 2010.5.16:
+  + Fixed a compilation issue with uClibc.
+  + Fixed modifying the read-only flag on a directory.
+  + Fixed a bug in ACL inheritance.
+  + Fixed a bad condition for security descriptor upgrade.
+  + Fixed a possible index block with no key in $SII.
+  + Fixed the condition for executing utime() and utimensat().
+  + Fixed wrong flags when uid/gid are forced in mount options.
+  + Fixed a bad error checking when closing a compressed file.
+  + Fixed compiler warnings on OpenSolaris.
+  + Fixed conditional code for self-test in secaudit.
+
+-------------------------------------------------------------------
+Mon Mar  8 10:08:37 CET 2010 - dims...@opensuse.org
+
+- Update to version 2010.3.6:
+  + New: Support Object Identifiers which are used by Windows for
+    shortcuts and caused CHKDSK warnings when the target was
+    deleted.
+  + New: Nanosecond resolution file timestamps support.
+  + New: Selective file timestamp modification by utimensat(2).
+  + New: Make non-resident TXF_DATA attribute of root directory
+    resident so Vista and later won’t complain about RAW partition.
+  + New: Caching inodes.
+  + New: More efficient UTF8/UTF16 translations.
+  + Fixed setting archive bit on file and alternated data stream
+    creation.
+  * Fixed setting reparse tags in parent directories.
+  + Fixed enabling permissions when no UserMapping file is found.
+  + Fixed an error return code in the main mount function.
+  + Fixed setting timestamp via extended attributes to be
+    consistent between Windows and Linux view.
+  + Fixed option processing when uid, gid, fmask or dmask are
+    present.
+- Drop ntfs-3g-usermap.patch and ntfs-3g-warnings.patch. Both have
+  beein included upstream.
+
+-------------------------------------------------------------------
+Sun Jan 17 04:36:33 CET 2010 - vu...@opensuse.org
++++ 378 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:12.1:Update/.ntfs-3g_ntfsprogs.1295.new/ntfs-3g_ntfsprogs.changes

New:
----
  21-storage-ntfs-3g.fdi
  buildall.sh
  ntfs-3g_ntfsprogs-2011.4.12.tar.bz2
  ntfs-3g_ntfsprogs-use-caution-with-fastboot.patch
  ntfs-3g_ntfsprogs.changes
  ntfs-3g_ntfsprogs.spec

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ntfs-3g_ntfsprogs.spec ++++++
#
# spec file for package ntfs-3g_ntfsprogs
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           ntfs-3g_ntfsprogs
Summary:        NTFS Support in Userspace
License:        GPL-2.0+
Group:          System/Filesystems
Version:        2011.4.12
Release:        0
Source:         %{name}-%{version}.tar.bz2
Source1:        buildall.sh
Source2:        21-storage-ntfs-3g.fdi
# PATCH-FIX-UPSTREAM ntfs-3g_ntfsprogs-use-caution-with-fastboot.patch 
bnc#798337 rh#859373 bo...@steki.net -- Prevent partitions with metadata cached 
in Windows from being mounted; patch taken from upstream git by 
badshah...@gmail.com
Patch0:         ntfs-3g_ntfsprogs-use-caution-with-fastboot.patch
Url:            http://www.ntfs-3g.org
BuildRequires:  pkg-config
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
NTFS-3G allows for read/write access to NTFS partitions which can be
shared with Windows XP, Windows Server 2003, Windows 2000, Windows
Vista and Windows Seven.

%package -n ntfs-3g
Summary:        NTFS Support in Userspace
License:        GPL-2.0+
Group:          System/Filesystems
Provides:       ntfsprogs-fuse = 1.13.1
Obsoletes:      ntfsprogs-fuse < 1.13.1
Requires(post): update-alternatives
Requires(postun): update-alternatives
# The build service fails to build the package because it doesn't really
# understand Requires(post), so use PreReq too (see bnc#439232).
%if %defined suse_version
PreReq:         update-alternatives
%endif
%if 0%{?suse_version} > 1010
Supplements:    filesystem(ntfs-3g)
%endif

%description -n ntfs-3g
NTFS-3G allows for read/write access to NTFS partitions which can be
shared with Windows XP, Windows Server 2003, Windows 2000, Windows
Vista and Windows Seven.

%package -n libntfs-3g81
Summary:        NTFS Support in Userspace -- Library
License:        LGPL-2.1+
Group:          System/Filesystems

%description -n libntfs-3g81
NTFS-3G allows for read/write access to NTFS partitions which can be
shared with Windows XP, Windows Server 2003, Windows 2000, Windows
Vista and Windows Seven.

%package -n libntfs-3g-devel
Summary:        NTFS Support in Userspace -- Development Files
License:        LGPL-2.1+
Group:          System/Filesystems
Requires:       glibc-devel
Requires:       libntfs-3g81 = %{version}
Provides:       ntfs-3g-devel = %{version}
Obsoletes:      ntfs-3g-devel < %{version}

%description -n libntfs-3g-devel
NTFS-3G allows for read/write access to NTFS partitions which can be
shared with Windows XP, Windows Server 2003, Windows 2000, Windows
Vista and Windows Seven.

%package -n ntfsprogs
Summary:        NTFS Utilities
License:        GPL-2.0+
Group:          System/Filesystems

%description -n ntfsprogs
The ntfsprogs includes utilities for doing all required tasks to NTFS
partitions. In general, just run a utility without any command line
options to display the version number and usage syntax.

%prep
%setup -q
%patch0 -p1

%build
#
# regarding -Wno-sign-compare - checked with the Szaka: There is one variable
# which is signed and would possibly ok to be unsigned. Any solution to this
# needs to be carefully reviewed and tested, so we do not change the code now:
#
CFLAGS="$RPM_OPT_FLAGS -Wformat -Wformat-security -W -Wno-sign-compare" \
%configure --exec-prefix=/ --disable-static --with-pic --libdir=/%{_lib} 
--disable-ldconfig
make %{?jobs:-j%jobs}

%install
%makeinstall
# Move pkg-config to the real libdir
%{__mkdir_p} %{buildroot}%{_libdir}/pkgconfig
%{__mv} -v %{buildroot}/%{_lib}/pkgconfig/*.pc %{buildroot}%{_libdir}/pkgconfig/
%{__ln_s} -v /%{_lib}/$(readlink %{buildroot}/%{_lib}/libntfs-3g.so) 
%{buildroot}%{_libdir}/libntfs-3g.so
%{__rm} -v %{buildroot}/%{_lib}/libntfs-3g.{so,la}
# Hal stuff for mounting on hotplug.
%{__mkdir_p} %{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/
%{__install} -m 644 %{SOURCE2} 
%{buildroot}%{_datadir}/hal/fdi/policy/10osvendor/21-storage-ntfs-3g.fdi
# Touch ghost files
touch %{buildroot}/sbin/mount.ntfs %{buildroot}%{_mandir}/man8/mount.ntfs.8

%clean
rm -rf $RPM_BUILD_ROOT

%check
TESTFS=$(mktemp) || exit 1
ntfsprogs/mkntfs -q -F $TESTFS 3000
src/ntfs-3g.probe --readonly  $TESTFS
src/ntfs-3g.probe --readwrite $TESTFS
rm -v $TESTFS

%post -n ntfs-3g
# If the mount.ntfs group is in automatic mode, then this will also switch all
# symlinks automatically
update-alternatives --install /sbin/mount.ntfs mount.ntfs /sbin/mount.ntfs-3g 
10 --slave /usr/share/man/man8/mount.ntfs.8.gz mount.ntfs.8.gz 
/usr/share/man/man8/mount.ntfs-3g.8.gz

%postun -n ntfs-3g
# Note: we don't use "$1 -eq 0", to avoid issues if the package gets renamed
if [ ! -f /sbin/mount.ntfs-3g ]; then
  update-alternatives --remove mount.ntfs /sbin/mount.ntfs-3g
fi

%posttrans -n ntfs-3g
# Workaround old bug in 11.1/11.2 packages that always removed the symlinks in
# %postun. Can be removed during 12.2 development.
if [ ! -f /sbin/mount.ntfs -a -f /sbin/mount.ntfs-3g ]; then
  update-alternatives --install /sbin/mount.ntfs mount.ntfs /sbin/mount.ntfs-3g 
10 --slave /usr/share/man/man8/mount.ntfs.8.gz mount.ntfs.8.gz 
/usr/share/man/man8/mount.ntfs-3g.8.gz
fi

%post -n libntfs-3g81 -p /sbin/ldconfig

%postun -n libntfs-3g81 -p /sbin/ldconfig

%files -n ntfs-3g
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING CREDITS NEWS README
%dir %{_datadir}/hal
%dir %{_datadir}/hal/fdi
%dir %{_datadir}/hal/fdi/policy
%dir %{_datadir}/hal/fdi/policy/10osvendor
%{_datadir}/hal/fdi/policy/10osvendor/21-storage-ntfs-3g.fdi
%{_bindir}/ntfs-3g
%{_bindir}/ntfs-3g.probe
%{_bindir}/ntfs-3g.secaudit
%{_bindir}/ntfs-3g.usermap
%{_bindir}/lowntfs-3g
%ghost /sbin/mount.ntfs
/sbin/mount.ntfs-3g
/sbin/mount.lowntfs-3g
%{_mandir}/man8/mount.lowntfs-3g.8%{?ext_man}
%ghost %{_mandir}/man8/mount.ntfs.8%{?ext_man}
%{_mandir}/man8/mount.ntfs-3g.8%{?ext_man}
%{_mandir}/man8/ntfs-3g.8%{?ext_man}
%{_mandir}/man8/ntfs-3g.probe.8%{?ext_man}
%{_mandir}/man8/ntfs-3g.secaudit.8%{?ext_man}
%{_mandir}/man8/ntfs-3g.usermap.8%{?ext_man}
# We already have this, so no need to package it again.
%exclude /usr/share/doc/ntfs-3g/README

%files -n libntfs-3g81
%defattr(-,root,root,-)
%doc COPYING.LIB
/%{_lib}/libntfs-3g.so.*

%files -n libntfs-3g-devel
%defattr(-,root,root,-)
%{_includedir}/ntfs-3g/
%{_libdir}/libntfs-3g.so
%{_libdir}/pkgconfig/libntfs-3g.pc

%files -n ntfsprogs
%defattr(-, root, root)
%doc AUTHORS ChangeLog COPYING CREDITS NEWS README
/sbin/mkfs.ntfs
%{_sbindir}/mkntfs
%{_sbindir}/ntfsclone
%{_sbindir}/ntfscp
%{_sbindir}/ntfslabel
%{_sbindir}/ntfsresize
%{_sbindir}/ntfsundelete
%{_bindir}/ntfscat
%{_bindir}/ntfscluster
%{_bindir}/ntfscmp
%{_bindir}/ntfsfix
%{_bindir}/ntfsinfo
%{_bindir}/ntfsls
%{_mandir}/man8/mkfs.ntfs.8%{?ext_man}
%{_mandir}/man8/mkntfs.8%{?ext_man}
%{_mandir}/man8/ntfscat.8%{?ext_man}
%{_mandir}/man8/ntfsclone.8%{?ext_man}
%{_mandir}/man8/ntfscluster.8%{?ext_man}
%{_mandir}/man8/ntfscmp.8%{?ext_man}
%{_mandir}/man8/ntfscp.8%{?ext_man}
%{_mandir}/man8/ntfsfix.8%{?ext_man}
%{_mandir}/man8/ntfsinfo.8%{?ext_man}
%{_mandir}/man8/ntfslabel.8%{?ext_man}
%{_mandir}/man8/ntfsls.8%{?ext_man}
%{_mandir}/man8/ntfsprogs.8%{?ext_man}
%{_mandir}/man8/ntfsresize.8%{?ext_man}
%{_mandir}/man8/ntfsundelete.8%{?ext_man}

%changelog
++++++ buildall.sh ++++++
# Script to build ntfs-3g for several distributions using osc, the opensuse
# buildservice client. Needs to be started from the checked-out directory
# of a project which provides needed packages, e.g. osc co 
home:benkai:ntfs/NTFS-3g
trap 2 exit
set -ex
#export BUILD_ROOT=/home/abuild/ntfs-3g-root
unset BUILD_DIST
export BUILD_ROOT=/dev/shm/ntfs-3g-root
while read platform arch; do
        outdir=RPMS/$platform
        if [ -d $outdir/$arch ]; then
                echo "$outdir/$arch exist, next!"
                continue
        fi
        echo $platform $arch
        rm -rf $BUILD_ROOT
        time osc build --no-verify --clean $platform $arch ntfs-3g.spec
        mkdir -p $outdir/$arch-tmp
        mv $BUILD_ROOT/usr/src/*/RPMS/*/*.rpm $outdir/$arch-tmp
        mv $outdir/$arch-tmp $outdir/$arch
done <<END
CentOS_5        i586
CentOS_5        x86_64
Fedora_7        i586
Fedora_7        x86_64
Fedora_8        i586
Fedora_8        x86_64
Fedora_Extras_6 i586
Fedora_Extras_6 x86_64
Mandriva_2007   i586
Mandriva_2007   x86_64
Mandriva_2008   i586
Mandriva_2008   x86_64
openSUSE_10.2   i586
openSUSE_10.2   x86_64
openSUSE_10.3   i586
openSUSE_10.3   x86_64
openSUSE_Factory i586
openSUSE_Factory x86_64
SLES_9          i586
SLES_9          x86_64
SLE_10          i586
SLE_10          x86_64
SUSE_Linux_10.1 i586
SUSE_Linux_10.1 x86_64
Fedora_Core_6   i586
Fedora_Core_6   x86_64
END
++++++ ntfs-3g_ntfsprogs-use-caution-with-fastboot.patch ++++++
>From 4d0b9163c9ef1f0cdbbf533317b291220c7fd1c7 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Jean-Pierre=20Andr=C3=A9?= <jpan...@users.sourceforge.net>
Date: Wed, 12 Sep 2012 09:42:24 +0200
Subject: [PATCH] Accepted processing restart pages v 2.0 with no warning (used 
by Windows 8)

In the $LogFile, Windows 8 defines restart pages with version 2.0.
The checks designed for version 1.1 appear to apply, so accept v 2.0
and apply the usual checks.
---
 libntfs-3g/logfile.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

Index: ntfs-3g_ntfsprogs-2012.1.15/libntfs-3g/logfile.c
===================================================================
--- ntfs-3g_ntfsprogs-2012.1.15.orig/libntfs-3g/logfile.c
+++ ntfs-3g_ntfsprogs-2012.1.15/libntfs-3g/logfile.c
@@ -84,13 +84,21 @@ static BOOL ntfs_check_restart_page_head
                                "position in $LogFile.\n");
                return FALSE;
        }
-       /* We only know how to handle version 1.1. */
-       if (sle16_to_cpu(rp->major_ver) != 1 ||
-                       sle16_to_cpu(rp->minor_ver) != 1) {
+       /*
+        * We only know how to handle version 1.1 and 2.0, though
+        * version 2.0 is probably related to cached metadata in
+        * Windows 8, and we will refuse to mount.
+        * Nevertheless, do all the relevant checks before rejecting.
+        */
+       if (((rp->major_ver != const_cpu_to_le16(1))
+                        || (rp->minor_ver != const_cpu_to_le16(1)))
+          && ((rp->major_ver != const_cpu_to_le16(2))
+                        || (rp->minor_ver != const_cpu_to_le16(0)))) {
                ntfs_log_error("$LogFile version %i.%i is not "
-                               "supported.  (This driver supports version "
-                               "1.1 only.)\n", 
(int)sle16_to_cpu(rp->major_ver),
-                               (int)sle16_to_cpu(rp->minor_ver));
+                               "supported.\n   (This driver supports version "
+                               "1.1 and 2.0 only.)\n",
+                                       (int)sle16_to_cpu(rp->major_ver),
+                                       (int)sle16_to_cpu(rp->minor_ver));
                return FALSE;
        }
        /*
Index: ntfs-3g_ntfsprogs-2012.1.15/libntfs-3g/volume.c
===================================================================
--- ntfs-3g_ntfsprogs-2012.1.15.orig/libntfs-3g/volume.c
+++ ntfs-3g_ntfsprogs-2012.1.15/libntfs-3g/volume.c
@@ -89,13 +89,9 @@ static const char *corrupt_volume_msg =
 "for more details.\n";
 
 static const char *hibernated_volume_msg =
-"The NTFS partition is hibernated. Please resume and shutdown Windows\n"
-"properly, or mount the volume read-only with the 'ro' mount option, or\n"
-"mount the volume read-write with the 'remove_hiberfile' mount option.\n"
-"For example type on the command line:\n"
-"\n"
-"            mount -t ntfs-3g -o remove_hiberfile %s %s\n"
-"\n";
+"The NTFS partition is in an unsafe state. Please resume and shutdown\n"
+"Windows fully (no hibernation or fast restarting), or mount the volume\n"
+"read-only with the 'ro' mount option.\n";
 
 static const char *unclean_journal_msg =
 "Write access is denied because the disk wasn't safely powered\n"
@@ -649,6 +645,24 @@ static int ntfs_volume_check_logfile(ntf
        
        if (!ntfs_check_logfile(na, &rp) || !ntfs_is_logfile_clean(na, rp))
                err = EOPNOTSUPP;
+               /*
+                * If the latest restart page was identified as version
+                * 2.0, then Windows may have kept a cached copy of
+                * metadata for fast restarting, and we should not mount.
+                * Hibernation will be seen the same way on a non
+                * Windows-system partition, so we have to use the same
+                * error code (EPERM).
+                * The restart page may also be identified as version 2.0
+                * when access to the file system is terminated abruptly
+                * by unplugging or power cut, so mounting is also rejected
+                * after such an event.
+                */
+       if (rp
+           && (rp->major_ver == const_cpu_to_le16(2))
+           && (rp->minor_ver == const_cpu_to_le16(0))) {
+               ntfs_log_error("Metadata kept in Windows cache, refused to 
mount.\n");
+               err = EPERM;
+       }
        free(rp);
        ntfs_attr_close(na);
 out:   
@@ -1200,7 +1214,8 @@ ntfs_volume *ntfs_device_mount(struct nt
                    ntfs_volume_check_hiberfile(vol, 1) < 0)
                        goto error_exit;
                if (ntfs_volume_check_logfile(vol) < 0) {
-                       if (!(flags & MS_RECOVER))
+                       /* Always reject cached metadata for now */
+                       if (!(flags & MS_RECOVER) || (errno == EPERM))
                                goto error_exit;
                        ntfs_log_info("The file system wasn't safely "
                                      "closed on Windows. Fixing.\n");
@@ -1642,6 +1657,10 @@ int ntfs_volume_error(int err)
                        ret = NTFS_VOLUME_CORRUPT;
                        break;
                case EPERM:
+                       /*
+                        * Hibernation and fast restarting are seen the
+                        * same way on a non Windows-system partition.
+                        */
                        ret = NTFS_VOLUME_HIBERNATED;
                        break;
                case EOPNOTSUPP:
Index: ntfs-3g_ntfsprogs-2012.1.15/src/ntfs-3g.8.in
===================================================================
--- ntfs-3g_ntfsprogs-2012.1.15.orig/src/ntfs-3g.8.in
+++ ntfs-3g_ntfsprogs-2012.1.15/src/ntfs-3g.8.in
@@ -36,6 +36,22 @@ a few differences mentioned below in rel
 .PP
 The \fIvolume\fR to be mounted can be either a block device or 
 an image file.
+.SS Windows hibernation and fast restarting
+On computers which can be dual-booted into Windows or Linux, Windows has
+to be fully shut down before booting into Linux, otherwise the NTFS file
+systems on internal disks may be left in an inconsistent state and changes
+made by Linux may be ignored by Windows.
+.P
+So, Windows may not be left in hibernation when starting Linux, in order
+to avoid inconsistencies. Moreover, the fast restart feature available on
+recent Windows systems has to be disabled. This can be achieved by issuing
+as an Administrator the Windows command which disables both
+hibernation and fast restarting :
+.RS
+.sp
+powercfg /h off
+.sp
+.RE
 .SS Access Handling and Security
 By default, files and directories are owned by the effective 
 user and group of the mounting process, and everybody has
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to