summaryrefslogtreecommitdiffstats
path: root/sys/isofs
Commit message (Collapse)AuthorAgeFilesLines
* Reviewed by: dyson@freebsd.org (john Dyson), dg@root.com (david greenman)julian1998-03-081-5/+6
| | | | | Submitted by: Kirk McKusick (mcKusick@mckusick.com) Obtained from: WHistle development tree
* Trivial filesystem getpages/putpages implementations, set the second.msmith1998-03-061-1/+35
| | | | | These should be considered the first steps in a work-in-progress. Submitted by: Terry Lambert <terry@freebsd.org>
* The intent is to get rid of WILLRELE in vnode_if.src by makingmsmith1998-03-011-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a complement to all ops that return a vpp, VFS_VRELE. This is initially only for file systems that implement the following ops that do a WILLRELE: vop_create, vop_whiteout, vop_mknod, vop_remove, vop_link, vop_rename, vop_mkdir, vop_rmdir, vop_symlink This is initial DNA that doesn't do anything yet. VFS_VRELE is implemented but not called. A default vfs_vrele was created for fs implementations that use the standard vnode management routines. VFS_VRELE implementations were made for the following file systems: Standard (vfs_vrele) ffs mfs nfs msdosfs devfs ext2fs Custom union umapfs Just EOPNOTSUPP fdesc procfs kernfs portal cd9660 These implementations may change as VOP changes are implemented. In the next phase, in the vop implementations calls to vrele and the vrele part of vput will be moved to the top layer vfs_vnops and made visible to all layers. vput will be replaced by unlock in these cases. Unlocking will still be done in the per fs layer but the refcount decrement will be triggered at the top because it doesn't hurt to hold a vnode reference a little longer. This will have minimal impact on the structure of the existing code. This will only be done for vnode arguments that are released by the various fs vop implementations. Wider use of VFS_VRELE will likely require restructuring of the code. Reviewed by: phk, dyson, terry et. al. Submitted by: Michael Hancock <michaelh@cet.co.jp>
* Staticize.eivind1998-02-091-4/+4
|
* Back out DIAGNOSTIC changes.eivind1998-02-061-3/+1
|
* Turn DIAGNOSTIC into a new-style option.eivind1998-02-041-1/+3
|
* Forward declare some structs so that this file is more self-sufficient.bde1998-02-031-1/+3
|
* Forward declare some structs so that this file is more self-sufficient.bde1998-02-031-1/+11
| | | | Don't declare kernel objects or functions unless KERNEL is defined.
* Unspammed nested include of <vm/vm_zone.h>.bde1997-12-271-1/+3
|
* Properly clean out the SI_MOUNTEDON flag iff the mount attempt failsjoerg1997-12-211-1/+2
| | | | | | | | | | | half the way down. Otherwise, further attempts to mount the device will be rejected with BUSY. IMHO, this flag can completely go away for cd9660. There's no reason you need to prevent CDs from being mounted multiple times, and in case of multisession CDs it can even make sense to mount two different sessions by the same time (to different mount points, otherwise it would be pointless ;).
* Staticize a few things.phk1997-11-183-11/+10
|
* Remove a bunch of variables which were unused both in GENERIC and LINT.phk1997-11-072-4/+3
| | | | Found by: -Wunused
* Use bread() instead of cluster_read() for reading the last blockbde1997-10-271-2/+2
| | | | | | | | | | in a file. There was a (harmless, I think) off-by-1 error. This was fixed in ufs long ago (rev.1.21 of ufs_readwrite.c) but not in cd9660. cd9660_read() has stagnated in many other ways. It is closer to the Net/2 ufs_read() (which is was cloned from) than ufs_read() itself is.
* Removed unused #includes. The need for most of them went away withbde1997-10-271-2/+1
| | | | recent changes (docluster* and vfs improvements).
* VFS interior redecoration.phk1997-10-261-2/+2
| | | | | | | | | | | | | Rename vn_default_error to vop_defaultop all over the place. Move vn_bwrite from vfs_bio.c to vfs_default.c and call it vop_stdbwrite. Use vop_null instead of nullop. Move vop_nopoll from vfs_subr.c to vfs_default.c Move vop_sharedlock from vfs_subr.c to vfs_default.c Move vop_nolock from vfs_subr.c to vfs_default.c Move vop_nounlock from vfs_subr.c to vfs_default.c Move vop_noislocked from vfs_subr.c to vfs_default.c Use vop_ebadf instead of *_ebadf. Add vop_defaultop for getpages on master vnode in MFS.
* Make a set of VOP standard lock, unlock & islocked VOP operators, whichphk1997-10-172-62/+12
| | | | | depend on the lock being located at vp->v_data. Saves 3x3 identical vop procs, more as the other filesystems becomes lock aware.
* Another VFS cleanup "kilo commit"phk1997-10-161-102/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Remove VOP_UPDATE, it is (also) an UFS/{FFS,LFS,EXT2FS,MFS} intereface function, and now lives in the ufsmount structure. 2. Remove VOP_SEEK, it was unused. 3. Add mode default vops: VOP_ADVLOCK vop_einval VOP_CLOSE vop_null VOP_FSYNC vop_null VOP_IOCTL vop_enotty VOP_MMAP vop_einval VOP_OPEN vop_null VOP_PATHCONF vop_einval VOP_READLINK vop_einval VOP_REALLOCBLKS vop_eopnotsupp And remove identical functionality from filesystems 4. Add vop_stdpathconf, which returns the canonical stuff. Use it in the filesystems. (XXX: It's probably wrong that specfs and fifofs sets this vop, shouldn't it come from the "host" filesystem, for instance ufs or cd9660 ?) 5. Try to make system wide VOP functions have vop_* names. 6. Initialize the um_* vectors in LFS. (Recompile your LKMS!!!)
* VFS mega cleanup commit (x/N)phk1997-10-165-92/+28
| | | | | | | | | | | | | | | | | | | | | | | 1. Add new file "sys/kern/vfs_default.c" where default actions for VOPs go. Implement proper defaults for ABORTOP, BWRITE, LEASE, POLL, REVOKE and STRATEGY. Various stuff spread over the entire tree belongs here. 2. Change VOP_BLKATOFF to a normal function in cd9660. 3. Kill VOP_BLKATOFF, VOP_TRUNCATE, VOP_VFREE, VOP_VALLOC. These are private interface functions between UFS and the underlying storage manager layer (FFS/LFS/MFS/EXT2FS). The functions now live in struct ufsmount instead. 4. Remove a kludge of VOP_ functions in all filesystems, that did nothing but obscure the simplicity and break the expandability. If a filesystem doesn't implement VOP_FOO, it shouldn't have an entry for it in its vnops table. The system will try to DTRT if it is not implemented. There are still some cruft left, but the bulk of it is done. 5. Fix another VCALL in vfs_cache.c (thanks Bruce!)
* vnops megacommitphk1997-10-151-65/+3
| | | | | | | | | | 1. Use the default function to access all the specfs operations. 2. Use the default function to access all the fifofs operations. 3. Use the default function to access all the ufs operations. 4. Fix VCALL usage in vfs_cache.c 5. Use VOCALL to access specfs functions in devfs_vnops.c 6. Staticize most of the spec and fifofs vnops functions. 7. Make UFS panic if it lacks bits of the underlying storage handling.
* Hmm, realign the vnops into two columns.phk1997-10-151-22/+22
|
* Stylistic overhaul of vnops tables.phk1997-10-151-146/+131
| | | | | | | 1. Remove comment stating the blatantly obvious. 2. Align in two columns. 3. Sort all but the default element alphabetically. 4. Remove XXX comments pointing out entries not needed.
* Last major round (Unless Bruce thinks of somthing :-) of malloc changes.phk1997-10-122-2/+9
| | | | | | | | Distribute all but the most fundamental malloc types. This time I also remembered the trick to making things static: Put "static" in front of them. A couple of finer points by: bde
* Clustered read and write are switched at mount-option level.kato1997-09-272-23/+15
| | | | | | | | | | | | | | | | 1. Clustered I/O is switched by the MNT_NOCLUSTERR and MNT_NOCLUSTERW bits of the mnt_flag. The sysctl variables, vfs.foo.doclusterread and vfs.foo.doclusterwrite are deleted. Only mount option can control clustered I/O from userland. 2. When foofs_mount mounts block device, foofs_mount checks D_CLUSTERR and D_CLUSTERW bits of the d_flags member in the block device switch table. If D_NOCLUSTERR / D_NOCLUSTERW are set, MNT_NOCLUSTERR / MNT_NOCLUSTERW bits will be set. In this case, MNT_NOCLUSTERR and MNT_NOCLUSTERW cannot be cleared from userland. 3. Vnode driver disables both clustered read and write. 4. Union filesystem disables clutered write. Reviewed by: bde
* Change the M_NAMEI allocations to use the zone allocator. This changedyson1997-09-211-5/+5
| | | | | | | | plus the previous changes to use the zone allocator decrease the useage of malloc by half. The Zone allocator will be upgradeable to be able to use per CPU-pools, and has more intelligent usage of SPLs. Additionally, it has reasonable stats gathering capabilities, while making most calls inline.
* Convert select -> poll.peter1997-09-141-23/+19
| | | | | Delete 'always succeed' select/poll handlers, replaced with generic call. Flag missing vnode op table entries.
* This stuff is now done centrally.phk1997-09-101-15/+1
|
* Removed yet more vestiges of config-time swap configuration and/orbde1997-09-071-8/+3
| | | | cleaned up nearby cruft.
* Uncut&paste cache_lookup().phk1997-08-263-58/+7
| | | | | | | | | | | | | | | This unifies several times in theory indentical 50 lines of code. The filesystems have a new method: vop_cachedlookup, which is the meat of the lookup, and use vfs_cache_lookup() for their vop_lookup method. vfs_cache_lookup() will check the namecache and pass on to the vop_cachedlookup method in case of a miss. It's still the task of the individual filesystems to populate the namecache with cache_enter(). Filesystems that do not use the namecache will just provide the vop_lookup method as usual.
* Added a sysctl arg, vfs.cd9660.doclusterread. Deleted debug andkato1997-08-251-16/+18
| | | | !FreeBSD code arround cluster read stuff.
* Fix all areas of the system (or at least all those in LINT) to avoid storingwollman1997-08-161-3/+3
| | | | | | | | socket addresses in mbufs. (Socket buffers are the one exception.) A number of kernel APIs needed to get fixed in order to make this happen. Also, fix three protocol families which kept PCBs in mbufs to not malloc them instead. Delete some old compatibility cruft while we're at it, and add some new routines in the in_cksum family.
* Removed unused #includes.bde1997-08-025-20/+5
|
* Hide the kernel-only stuff inside #ifdef KERNEL.joerg1997-05-071-5/+14
| | | | | | XXX should be #ifdef _KERNEL XXX^2 the !KERNEL part should probably be moved out into a publically visible header file anyway.
* Oops. The function cd9660_mountroot() is gone, but i've committed anjoerg1997-05-041-3/+1
| | | | even more bogus prototype for it in my previous commit.
* This mega-commit brings the following:joerg1997-05-042-19/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | . It makes cd9660 root f/s working again. . It makes CD9660 a new-style option. . It adds support to mount an ISO9660 multi-session CD-ROM as the root filesystem (the last session actually, but that's what is expected behaviour). Sigh. The CDIOREADTOCENTRYS did a copyout() of its own, and thus has been unusable for me for this work. Too bad it didn't simply stuff the max 100 entries into the struct ioc_read_toc_entry, but relied on a user supplied data buffer instead. :-( I now had to reinvent the wheel, and created a CDIOREADTOCENTRY ioctl command that can be used in a kernel context. While doing this, i noticed the following bogosities in existing CD-ROM drivers: wcd: This driver is likely to be totally bogus when someone tries two succeeding CDIOREADTOCENTRYS (or now CDIOREADTOCENTRY) commands with requesting MSF format, since it apparently operates on an internal table. scd: This driver apparently returns just a single TOC entry only for the CDIOREADTOCENTRYS command. I have only been able to test the CDIOREADTOCENTRY command with the cd(4) driver. I hereby request the respective maintainers of the other CD-ROM drivers to verify my code for their driver. When it comes to merging this CD-ROM multisession stuff into RELENG_2_2 i will only consider drivers where i've got a confirmation that it actually works.
* For multi-session CD-ROMs, we have to account for previous sessions asjoerg1997-04-291-1/+10
| | | | well in volume_space_size. Otherwise, NFS exports won't work.
* Add support for ISO9660 multi-session CD-ROMs. This is just nothingjoerg1997-04-292-2/+5
| | | | | | | | | | but searching the directory on something else than the default location. NB: this comprises an interface change to the mount_cd9660(8) utility (commit will follow). You need to rebuild both. I've got similar patches for RELENG_2_2, should i commit them too?
* Removed more traces of ISODEVMAP.bde1997-04-151-20/+1
|
* Remove all traces of undocumented feature ISODEVMAP.phk1997-04-144-128/+4
|
* Get the declaration of `struct dirent' from <sys/dirent.h>, not frombde1997-04-101-8/+4
| | | | | | <sys/dir.h>, and use the new macro GENERIC_DIRSIZ() instead of DIRSIZ(). Removed unused #includes.
* Removed unused or apparently-unused #includes, especially of thebde1997-04-101-14/+1
| | | | deprecated header <sys/dir.h>.
* Don't include <sys/ioctl.h> in the kernel. Stage 1: don't includebde1997-03-241-2/+1
| | | | | it when it is not used. In most cases, the reasons for including it went away when the special ioctl headers became self-sufficient.
* Don't #include <sys/fcntl.h> in <sys/file.h> if KERNEL is defined.bde1997-03-231-2/+2
| | | | | Fixed everything that depended on getting fcntl.h stuff from the wrong place. Most things don't depend on file.h stuff at all.
* Use the common nchstats struct instead of a private one for ncs_2passesbde1997-03-081-5/+3
| | | | | and ncs_pass2. The public one is already used for other cd9660 statistics and the private one was effectively invisible.
* Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are notpeter1997-02-2211-11/+11
| | | | ready for it yet.
* Killed more FIFO ifdefs. All gone now.bde1997-02-132-7/+0
|
* Removed bogus B_AGE policy again (see rev 1.4).bde1997-02-131-5/+0
| | | | | Removed FIFO ifdef again (see rev.1.8). This also fixes vfs initialization since the VNODEOP_SET() was inside the ifdef.
* Declare function args in order in recently K&Rised function headers.bde1997-02-121-3/+6
|
* Restored one line of "High Sierra" changes from rev.1.8.bde1997-02-111-1/+2
| | | | | The Lite2 changes in cd9660 are scarey. I probably missed some other lossage in this file.
* Restored one line of "High Sierra" changes from rev.1.6 which wasbde1997-02-111-1/+1
| | | | | | | blown away by the previous commit. Not restored: trailing whitespace changes from rev.1.7. Not restored: -Wall cleanup from rev.1.5.
* Removed High Sierra task from TODO list. Joerg did it years ago andbde1997-02-111-6/+0
| | | | | other items were removed from the list when they were done in the Lite2 merge. The Lite2 merge just broke the High Sierra changes.
OpenPOWER on IntegriCloud