Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Feb 2008 17:23:58 +0000 (UTC)
From:      Csaba Henk <csaba-ml@creo.hu>
To:        freebsd-stable@freebsd.org
Subject:   Re: fusefs-ntfs makes fatal trap/page fault in FreeBSD-7.0
Message-ID:  <slrnfqroa5.i6j.csaba-ml@beastie.creo.hu>
References:  <47A7D8AC.7030104@micom.mng.net> <5f67a8c40802042229y5f407e3bo55f32e95c7997848@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

On 2008-02-05, Zaphod Beeblebrox <zbeeble@gmail.com> wrote:
> I havn't seen this specific problem, but on my Dell XPS 1730
> (core-2-duo-extreme) The NTFS-3g mounts doen't seem to shutdown properly.
> That is: many of the writes are uncommitted and the filesystem needs a check
> and often information is lost ... unless I unmount the filesystems before
> shutdown.

Recently we added a feature called "synchronous unmount" which *might*
improve the situation regarding shutdown.

Probably soon there will be an update of fusefs-kmod which will include it.
Anyway, here are the instructions how can you try it immediately:

1) Reinstall fusefs-libs with the following patch applied:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff -rup ../../work-orig/fuse-2.7.2/lib/mount_bsd.c ./lib/mount_bsd.c
--- ../../work-orig/fuse-2.7.2/lib/mount_bsd.c	Wed Dec 12 15:33:35 2007
+++ ./lib/mount_bsd.c	Sat Feb  9 17:53:25 2008
@@ -228,7 +228,7 @@ void fuse_kern_unmount(const char *mount
 	if (*ep != '\0')
 		return;
 
-	asprintf(&umount_cmd, "/sbin/umount " _PATH_DEV "%s", dev);
+	asprintf(&umount_cmd, "/sbin/umount -f " _PATH_DEV "%s", dev);
 	system(umount_cmd);
 }
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2) Get the latest fuse4bsd code from the Mercurial repo by

    hg pull http://mercurial.creo.hu/repos/fuse4bsd-hg/

  or as a direct tarball fetch:

    fetch http://mercurial.creo.hu/repos/fuse4bsd-hg/index.cgi/archive/tip.tar.gz

  Untar and make(1) it. Ignore the patches which are part of the fusefs-kmod port
  but you will need to do a

    cp /usr/local/include/fuse/fuse_kernel.h fuse_module/

  before compilation. If you have a self-compiled kernel, you are suggested to use
  this make option:

    -DKERNCONF=<your-kernel-config>

3) Load the module with "kldload fuse_module/fuse.ko". You can as well install it to a place
  within your module path.

4) The sysctl vfs.fuse.sync_unmount controls who is eligible to using the fs with
  synchronous unmount. Its default value is 1, which mean only the superuser
  is eligible. You are suggested to enable it for everyone by

    sysctl vfs.fuse.sync_unmount=2

Now take a look how cleanly does the ntfs-3g shutdown happen. Please report back, I'm
eager to know if this technique helps.

Regards,
Csaba




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?slrnfqroa5.i6j.csaba-ml>