Subject: kern/7329: open(path, O_CREAT) on cd9660 leaves parent directory locked
To: None <gnats-bugs@gnats.netbsd.org>
From: None <salvet@ics.muni.cz>
List: netbsd-bugs
Date: 04/06/1999 18:09:20
>Number: 7329
>Category: kern
>Synopsis: open(path, O_CREAT) on cd9660 leaves parent directory locked
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: kern-bug-people (Kernel Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Apr 6 09:20:01 1999
>Last-Modified:
>Originator: Zdenek Salvet
>Organization:
>Release: -current of Dec 12, 1998
>Environment:
MI
>Description:
>How-To-Repeat:
$ mount -r -t cd9660 /dev/cd0a /mnt
$ >/mnt/bin/a
cannot create /mnt/bin/a: error 45
<< 45 == EOPNOTSUPP >>
$ ls /mnt/sbin
badsect fsck_ext2fs modload mount_msdos nologin slattach
ccdconfig fsck_ffs modunload mount_nfs ping swapctl
clri fsck_msdos mount mount_null rdump swapon
dhclient fsdb mount_ados mount_portal reboot ttyflags
disklabel fsirand mount_cd9660 mount_procfs restore tunefs
dmesg halt mount_ext2fs mount_ufs rndctl umount
dump ifconfig mount_fdesc mount_umap route
fastboot init mount_ffs mount_union routed
fasthalt ipf mount_kernfs newfs rrestore
fdisk ldconfig mount_lfs newfs_msdos savecore
fsck mknod mount_mfs newlfs shutdown
$ ls /mnt/bin
<< Hangs in sys_stat->namei->lookup->cd9660_lookup->vget->vn_lock->
->cd9660_lock->lockmgr >>
>Fix:
--- isofs/cd9660/cd9660_lookup.c.orig Tue Apr 6 17:58:18 1999
+++ isofs/cd9660/cd9660_lookup.c Tue Apr 6 17:59:03 1999
@@ -381,7 +381,7 @@
if (cnp->cn_flags & MAKEENTRY)
cache_enter(vdp, *vpp, cnp);
if (nameiop == CREATE || nameiop == RENAME)
- return (EJUSTRETURN);
+ return (EROFS);
return (ENOENT);
found:
>Audit-Trail:
>Unformatted: