Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Mar 1998 17:15:44 -0500
From:      dmaddox@scsn.net (Donald J. Maddox)
To:        current@FreeBSD.ORG
Subject:   MSDOSFS Broken(?)
Message-ID:  <19980302171544.21782@scsn.net>

next in thread | raw e-mail | index | archive | help
After a 'make world' and a new kernel from sources cvsupped ~10PM EST
last night, it seems that msdosfs is broken...  Files that are known
to be good appear corrupt when accessed from FBSD.

This seems to characterize the problem:

# ls -l /dos/c/MISC/STAC.DOC
-rwxr-xr-x  1 root  wheel  72417 Jan 30 16:22 /dos/c/MISC/STAC.DOC

# file /dos/c/MISC/STAC.DOC
/dos/c/MISC/STAC.DOC: Rich Text Format data, version 1, ANSI

# cat /dos/c/MISC/STAC.DOC
cat: /dos/c/MISC/STAC.DOC: Argument list too long

Compiled 'cat' with '-g', then:

>cat> gdb ./cat
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (i386-unknown-freebsd), Copyright 1996 Free Software Foundation, Inc...
(gdb) set args /dos/c/MISC/STAC.DOC
(gdb) break raw_cat
Breakpoint 1 at 0x17a8: file /usr/src/bin/cat/cat.c, line 245.
(gdb) r
Starting program: /usr/obj/usr/src/bin/cat/./cat /dos/c/MISC/STAC.DOC

Breakpoint 1, raw_cat (rfd=3) at /usr/src/bin/cat/cat.c:245
245             wfd = fileno(stdout);
(gdb) s
246             if (buf == NULL) {
(gdb) 
247                     if (fstat(wfd, &sbuf))
(gdb) 
249                     bsize = MAX(sbuf.st_blksize, 1024);
(gdb) 
250                     if ((buf = malloc((u_int)bsize)) == NULL)
(gdb) 
253             while ((nr = read(rfd, buf, bsize)) > 0)
(gdb) 
257             if (nr < 0) {
(gdb) 
258                     warn("%s", filename);
(gdb) 
cat: /dos/c/MISC/STAC.DOC: Argument list too long
259                     rval = 1;
(gdb) 
(gdb) p sbuf
$1 = {st_dev = 8, st_ino = 6023, st_mode = 8592, st_nlink = 1, st_uid = 0, st_gid = 4, 
  st_rdev = 1284, st_atimespec = {tv_sec = 888876298, tv_nsec = 0}, st_mtimespec = {
    tv_sec = 888876298, tv_nsec = 0}, st_ctimespec = {tv_sec = 888876298, tv_nsec = 0}, 
  st_size = 0x0000000000000000, st_blocks = 0x0000000000000000, st_blksize = 65536, 
  st_flags = 0, st_gen = 483370200, st_lspare = -266130324, st_qspare = {
    0x00000005f2c54d00, 0xf01f996800000000}}
(gdb) q

What's wrong with this picture?



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



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