mount_msdosfs and longnames

Craig Rodrigues rodrigc at crodrigues.org
Sat Nov 19 05:49:23 PST 2005


On Sat, Nov 19, 2005 at 10:09:19AM +0100, Rainer Hurling wrote:
> ... sorry for the late answer but I have to sleep some hours.
> 
> I checked out version 1.36 of 
> /usr/src/sbin/mount_msdosfs/mount_msdosfs.c and build/install new system.
> 
> I am not a developer. What have I to do instead of building/installing 
> the whole system when I only want to change a single file?

It depends on the file.  To just rebuilt mount_msdosfs, you
can do:

cd /usr/src/sbin/mount_msdosfs
make
make install

> Now the good news: With mounting version 1.36 all FAT32 Filenames are OK 
> again :-)

Can you try the following patch, rebuild your kernel,
and try both old *and* new mount_msdosfs programs?


Index: msdosfs_vfsops.c
===================================================================
RCS file: /home/ncvs/src/sys/fs/msdosfs/msdosfs_vfsops.c,v
retrieving revision 1.148
diff -u -u -r1.148 msdosfs_vfsops.c
--- msdosfs_vfsops.c	18 Nov 2005 22:34:31 -0000	1.148
+++ msdosfs_vfsops.c	19 Nov 2005 13:41:36 -0000
@@ -81,7 +81,7 @@
 	"from",
 	"export",
 	"uid", "gid", "mask", "dirmask",
-	"shortname", "shortnames", "longname", "longnames", "win95",
+	"shortname", "shortnames", "longname", "longnames", "nowin95", "win95",
 	"kiconv", "cs_win", "cs_dos", "cs_local",
 	NULL
 };
@@ -172,11 +172,10 @@
 	vfs_flagopt(mp->mnt_optnew, "kiconv",
 	    &pmp->pm_flags, MSDOSFSMNT_KICONV);
 
-	/* XXX: Can't use flagopt due to negative option */
-	if (!vfs_getopt(mp->mnt_optnew, "win95", NULL, NULL))
-		pmp->pm_flags &= ~MSDOSFSMNT_NOWIN95;
-	else
+	if (vfs_getopt(mp->mnt_optnew, "nowin95", NULL, NULL) == 0)
 		pmp->pm_flags |= MSDOSFSMNT_NOWIN95;
+	else
+		pmp->pm_flags &= ~MSDOSFSMNT_NOWIN95;
 
 	if (pmp->pm_flags & MSDOSFSMNT_NOWIN95)
 		pmp->pm_flags |= MSDOSFSMNT_SHORTNAME;

-- 
Craig Rodrigues        
rodrigc at crodrigues.org


More information about the freebsd-current mailing list