Date: Fri, 10 Nov 2000 23:20:05 +0100 (CET) From: drwilco@drwilco.nl To: FreeBSD-gnats-submit@freebsd.org Subject: kern/22756: ntfs filesystems can be listed, but no files can be read Message-ID: <200011102220.eAAMK5J04953@venus.drwilco.net>
next in thread | raw e-mail | index | archive | help
>Number: 22756
>Category: kern
>Synopsis: ntfs filesystems can be listed, but no files can be read
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Nov 10 14:30:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator: Rogier R. Mulhuijzen
>Release: FreeBSD 5.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD venus.drwilco.net 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Thu Nov 9 12:00:08 CET 2000 root@venus.drwilco.net:/usr/src/sys/compile/VENUS i386
>Description:
Since somewhere in October (on 5.0-CURRENT) files on a NTFS filesystem cannot be read, although directory listings can be made. The error returned is "Inappropriate ioctl for device"
>How-To-Repeat:
Mount a NTFS partition, try to cat(1) a file.
>Fix:
ntfs_bypass() always returns ENOTTY (Inappropriate ioctl for device), and is only used for vop_default_desc. Looking at other fs's I came to the conclusion that they almost all use vop_defaultop() for vop_default_desc, or code that is exactly the same. Hence the following patch, which works fine for me.
--- ntfs/ntfs_vnops.c.old Wed Nov 1 18:57:24 2000
+++ ntfs/ntfs_vnops.c Fri Nov 10 22:56:32 2000
@@ -847,7 +847,7 @@
#if defined(__FreeBSD__)
static
struct vnodeopv_entry_desc ntfs_vnodeop_entries[] = {
- { &vop_default_desc, (vop_t *)ntfs_bypass },
+ { &vop_default_desc, (vop_t *)vop_defaultop },
{ &vop_getattr_desc, (vop_t *)ntfs_getattr },
{ &vop_inactive_desc, (vop_t *)ntfs_inactive },
@@ -887,7 +887,7 @@
#else /* !FreeBSD */
struct vnodeopv_entry_desc ntfs_vnodeop_entries[] = {
- { &vop_default_desc, (vop_t *) ntfs_bypass },
+ { &vop_default_desc, (vop_t *) vop_defaultop },
{ &vop_lookup_desc, (vop_t *) ntfs_lookup }, /* lookup */
{ &vop_create_desc, genfs_eopnotsupp }, /* create */
{ &vop_mknod_desc, genfs_eopnotsupp }, /* mknod */
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200011102220.eAAMK5J04953>
