Home | History | Annotate | Download | only in udf
History log of /src/sys/fs/udf/udf_subr.c
RevisionDateAuthorComments
 1.177  28-Mar-2025  andvar s/beyong/beyond/ in comment.
 1.176  10-Feb-2024  andvar fix various typos in comments and log messages.
 1.175  04-Feb-2024  andvar s/substract/subtract/ in comments.
 1.174  03-Jun-2023  andvar fix various typos in comments and messages.
 1.173  03-Apr-2023  gutteridge Fix typos: s/trough/through/
 1.172  31-Oct-2022  andvar fix various typos in comments and one output message.
 1.171  28-May-2022  andvar fix various typos in comments, mainly origional->original,
extened->extended, incomming->incoming.
 1.170  15-May-2022  andvar s/wich/which in comments.
 1.169  22-Apr-2022  reinoud Fix endian issue with UDF extended attribute handling
 1.168  10-Apr-2022  andvar fix various typos in comments and output/log messages.
 1.167  08-Mar-2022  reinoud For bug-compatibility with Windows, the last VAT sector must be a multiple of
16/32 from the start of the track. To allow for scratches, write out at least
a 32 pieces.
 1.166  06-Feb-2022  andvar fix various typos in comments, log messages and documentation.
mainly s/aparently/apparently/ and s/implmented/implemented/.
 1.165  25-Jan-2022  andvar fix various typos in comments.
 1.164  24-Jan-2022  andvar remove double "with" in comments and usage text. Also fix one typo.
 1.163  01-Jan-2022  msaitoh s/implemenation/implementation/ in comment.
 1.162  16-Dec-2021  reinoud Fix typo: reader -> header
 1.161  16-Dec-2021  reinoud Fix serious issue with recordable media formatted with Win10. When closing it
after modification the VAT was written out corrupted making the disc
unreadable anymore on remount. Thanks for ig@ for spotting it in the wild!
 1.160  15-Dec-2021  reinoud While searching the VAT on recordable media, search the last sector too!
This fixes Win10 formatted discs from being mounted incorrectly.
 1.159  05-Dec-2021  msaitoh s/alloction/allocation/
 1.158  16-Sep-2021  andvar fix typos in word "successful".
 1.157  03-Sep-2021  andvar fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/
 1.156  21-Aug-2021  andvar s/helt/held+s/eroneously/erroneously/+s/splitted/split/+s/recommented/recommended/
 1.155  20-Aug-2021  andvar fix various typos in comments and log messages.
 1.154  24-Jul-2021  andvar Fix all remaining typos, mainly in comments but also in few definitions and log messages, reported by me in PR kern/54889.
Also fixed some additional typos in comments, found on review of same files or typos.
 1.153  13-Apr-2021  mrg branches: 1.153.2;
more GCC 10 fixes.

mDNSResponder: another wrong return local address

dhcp: ignore a seemingly impossible stringop overflow

hpacel: avoid maybe uninitialised error that is wrong.

rsh: avoid impossible malloc(0)

udf: cast pointers through (uintptr_t) to fool invalid boundary checks
 1.152  11-Jan-2021  skrll branches: 1.152.2;
Trailing whitespace
 1.151  11-Jan-2021  skrll Fix spelling of preferred in comments. While here improve grammar in
one of the comments.
 1.150  06-Apr-2020  hannken branches: 1.150.4;
udf_get_node(): fix typo and honor "lktype" argument.
 1.149  27-Feb-2020  ad Tighten up the locking around vp->v_iflag a little more after the recent
split of vmobjlock & v_interlock.
 1.148  17-Jan-2020  ad VFS_VGET(), VFS_ROOT(), VFS_FHTOVP(): give them a "int lktype" argument, to
allow us to get shared locks (or no lock) on the returned vnode. Matches
FreeBSD.
 1.147  18-Sep-2019  christos branches: 1.147.2;
Add newly created vnodes to the namei cache. The rest of the filesystems
already did that (or they don't support writing). Discussed in tech-kern.
 1.146  03-Jun-2019  msaitoh branches: 1.146.2;
Fix typo in comment (s/seperate/separate/).
 1.145  01-Jan-2019  hannken Add "void *extra" argument to vcache_new() so a file system may
pass more information about the file to create.

Welcome to 8.99.30
 1.144  14-Oct-2018  jdolecek remove M_CANFAIL flag for malloc(9) - it was completely ignored, so had
actually no effect
 1.143  09-Aug-2018  reinoud Fix length calculation
 1.142  25-Jul-2018  reinoud Enhance logical volume integrity descriptor handling and provide
bug-compatibility for Linux mkudffs 1.3 images.
 1.141  06-Jun-2018  maya branches: 1.141.2;
Remove duplicate ;
 1.140  28-May-2018  chs add a genfs method to allow a file system to limit the range of pages
that are given to a single GOP_WRITE() call. needed by ZFS.
 1.139  01-Apr-2017  riastradh branches: 1.139.6; 1.139.12;
KASSERT(mutex_owned(vp->v_interlock)) in vnode iterator selector.
 1.138  24-May-2016  reinoud branches: 1.138.2; 1.138.4;
Cleanup VAT writout. To prevent issues with the sequential writing strategy
trying to write on blocks that are lost due to the synchronisation, don't just
bluntly do synchronize device caches, but split out on strategies.
 1.137  10-May-2016  reinoud Rework VAT searching on recordable media. It is now a lot more resilliant to
errors and it allows for VAT searching on crashed writeouts.

While here, make sure the node pointer is always initialised in
udf_get_node().
 1.136  27-Jan-2016  reinoud Fix filename creation and deleting with illegal file names. UDF has a
machanism for it but it allowed to create a file with a name it considered
illegal that then couldn't be deleted with the same name.

Fixes PR kern/50608. When confirmed, it can be closed.
 1.135  19-Dec-2015  dholland Improve misleading variable name. Related to PR 50571.

XXX: also there should be real bounds-check logic in here.
XXX: if the on-disk data structure contains rubbish this code will
XXX: leak or trample arbitrary kernel memory.
 1.134  19-Dec-2015  christos add missing ,
 1.133  19-Dec-2015  christos PR/50571: David Binderman: src/sys/fs/udf/udf_subr.c:6465: obvious
performance tidyup
 1.132  24-Aug-2015  hannken Use vfs_vnode_iterator for udf_do_sync.

- Build rb_tree to get an ordered list of nodes, sync them and
clean the tree.

- Stop abusing mntvnode_lock to serialize udf_do_sync, use new
mutex ump->sync_lock instead.
 1.131  24-Aug-2015  hannken Remove dirtynodes_cv, it is only used for timed waits without any signals.

Replace the cv_timedwait with kpause.
 1.130  20-Apr-2015  riastradh Make vget always return vnode unlocked.

Convert callers who want locks to use vn_lock afterward.

Add extra argument so the compiler will report stragglers.
 1.129  06-Apr-2015  hannken Change udf to vcache, keyed on udf_node->loc.loc.
 1.128  07-Feb-2015  christos fix udf_node leak. Reported by:
http://www.m00nbsd.net/ae123a9bae03f7dde5c6d654412daf5a.html#Report-4
 1.127  17-Sep-2014  reinoud branches: 1.127.2;
Fix bug introduced in last patch
 1.126  17-Sep-2014  reinoud As pointed out by wiz@ prevent a possible attack or corruption that results in
an endless loop of indirect descriptors being processed.

The number of indirect descriptors followed is now maximized.
While here, also fix a use-after-free bug!
 1.125  29-Jul-2014  reinoud branches: 1.125.2;
Fix debug printout of udf_write_metadata_partition_spacetable(), it referred
to an old variable.
 1.124  23-Mar-2014  christos branches: 1.124.2;
fix unused
 1.123  23-Jan-2014  hannken Change vnode operations create, mknod, mkdir and symlink to return
the resulting vnode *vpp unlocked.

Discussed on tech-kern@

Welcome to 6.99.30
 1.122  21-Nov-2013  riz Don't create a variable just to assert() on it - assert on the
thing the variable got assigned.
 1.121  18-Oct-2013  christos fix unused variable warnings
 1.120  07-Jul-2013  reinoud Implement a real empty-directory checking for rmdir().

Should should fix the other part of PR kern/47987
Solves tests/vfs/t_vnops udf_dir_notempty
 1.119  29-Apr-2012  chs branches: 1.119.2; 1.119.4;
change vflushbuf() to take the full FSYNC_* flags.
translate FSYNC_LAZY into PGO_LAZY for VOP_PUTPAGES() so that
genfs_do_io() can set the appropriate io priority for the I/O.
this is the first part of addressing PR 46325.
 1.118  13-Nov-2011  christos branches: 1.118.4; 1.118.6;
use getdisksize()
 1.117  27-Sep-2011  christos branches: 1.117.2;
- rename UDF_MAX_NAMELEN -> UDF_MAXNAMLEN
- use NAME_MAX instead of MAXNAMLEN
 1.116  16-Aug-2011  mbalmer Fix some typos.
 1.115  12-Jun-2011  rmind Welcome to 5.99.53! Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
kernel-lock on some ports). Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.
 1.114  26-Apr-2011  hannken branches: 1.114.2;
Change vflushbuf() to return an error if a synchronous write fails.

Welcome to 5.99.51.
 1.113  22-Jan-2011  reinoud A not rewritable disc can be pseudo-overwritable. A pseudo-overwritable disc
can overwrite its logical volume integrity sequence so no need to make it
append-only for this class of discs.
 1.112  22-Jan-2011  reinoud Lookup the physical partition backing up the logical one when searching for the
metadata partition overlap for BD-R.

Fixes a kernel panic on mounting a BD-R formatted with UDF 2.60
 1.111  21-Jan-2011  reinoud Split out the raw to indexed partitioning code protecting against roque
implementations that use `ramdom' numbers for the physical partitions breaking
lots of implementations. Known curlpit is MicroSoft Windows 7.

Not only the partition mappings need to be protected against this but also the metadata partition files.
 1.110  13-Jan-2011  reinoud branches: 1.110.2; 1.110.4;
Fix the case in where a file with a latin1 file name was created. It was then
erronously entered as thelatin1 file name in the dirhash whereas the matching
routing assumes both UTF-8. This would result in a file being created but not
stat-able since the dirhash couldn't find the entry unless it was remounted.
 1.109  22-Dec-2010  reinoud Running with DEBUG again revealed locking errors previously undetected. The
VAT writeout was done locked while marked locked as were the readin and
writeout of the metadata partition space table.

While here, also protect the (vp) argument of the UDF_SET_SYSTEMFILE() macro.

Tested on UDF 1.50 sequential, UDF 2.01 RW and UDF 2.50 metadata RW meda.
 1.108  24-Sep-2010  rmind Fixes/improvements to RB-tree implementation:
1. Fix inverted node order, so that negative value from comparison operator
would represent lower (left) node, and positive - higher (right) node.
2. Add an argument (i.e. "context"), passed to comparison operators.
3. Change rb_tree_insert_node() to return a node - either inserted one or
already existing one.
4. Amend the interface to manipulate the actual object, instead of the
rb_node (in a similar way as Patricia-tree interface does).
5. Update all RB-tree users accordingly.

XXX: Perhaps rename rb.h to rbtree.h, since cleaning-up..

1-3 address the PR/43488 by Jeremy Huddleston.

Passes RB-tree regression tests.
Reviewed by: matt@, christos@
 1.107  21-Jul-2010  hannken Make holding v_interlock mandatory for callers of vget().

Announced some time ago on tech-kern.
 1.106  01-Jul-2010  hannken Remove vlockmgr(). Generic vnode lock operations now use a rwlock located
in the vnode. All LK_* flags move from sys/lock.h to sys/vnode.h. Calls
to vlockmgr() in file systems get replaced with VOP_LOCK() or VOP_UNLOCK().

Welcome to 5.99.34.

Discussed on tech-kern.
 1.105  06-Jun-2010  hannken Change layered file systems to always pass the locking VOP's down to the
leaf file system. Remove now unused member v_vnlock from struct vnode.
Welcome to 5.99.30

Discussed on tech-kern.
 1.104  25-Feb-2010  reinoud branches: 1.104.2;
First part of shrinking/growing metadata partition support:

- extending the metadata partition

Still to follow:
- sparsify metadata partition
- growing the metadata partition
- unsparsifying metadata partition
 1.103  24-Feb-2010  reinoud Rename metadata partition parameters to be less generic and add the flags.
 1.102  24-Feb-2010  reinoud Extract UDF metadata partition parameters as already done for VAT and sparable
partitions.
 1.101  05-Jan-2010  mbalmer branches: 1.101.2;
Remove extra semicolons.
 1.100  23-Dec-2009  mbalmer Fix typo in comments, no code change.
 1.99  27-Jul-2009  reinoud Issue extra synchronise caches before closing tracks or sessions. It shouldn't
be needed as the caches should already be synchronised, but better be safe.
 1.98  07-Jul-2009  reinoud Replace the old hashtable and sorted list implemenation by a RB-tree.

Benefits are significant speed improvements on node creation/insertion while
keeping the lookup times low and still allowing sequential iteration over the
nodes.
 1.97  06-Jul-2009  reinoud Make source prettier
 1.96  25-Jun-2009  reinoud Rewrite of udf_on_rootpath(), and vop_rename() code that calls it, after the
UFS way. The tree walking is now done the same and the code hasn't locked up
on examples that made it lockup before.
 1.95  24-Jun-2009  reinoud Commit first stage of free-space accounting. It is estimating the underlimit
of free blocks on the device and when free blocks are getting tight it tries
to readjust/recalculate that value by syncing the FS.

Second stage will be resizing the data/metadata partitions.
 1.94  23-Jun-2009  reinoud Renaming in UDF was already possible but directories could only be renamed in
the same directory.

This patch finally allows a directory to be moved between parent directories.
 1.93  18-Jun-2009  reinoud Enhance comment on node locking when writing out a node's descriptors.
 1.92  18-Jun-2009  reinoud Remove unneeded wait for SYNC being finished on node disposal of deleted node;
this could interfere and lockup.
 1.91  20-May-2009  reinoud Retire IN_CALLBACK_ULK flagging since its not used anymore and the old
assertions on it would trigger without cause.
 1.90  20-May-2009  reinoud Descriptor version is 16 bit and not 8 so use udf_rw16() to access them.
UniqueID was written in the logical volume integrity without byteswapping for
bigendian machines.
 1.89  19-May-2009  reinoud On creation of a new node, don't forget to set the length of the allocated
space in the right endian!
 1.88  19-May-2009  reinoud Forgot to use the udf_rw16() on the descriptor crc lengths of FID's!
Also fix a few dubiously formatted checks.
 1.87  18-Mar-2009  cegger bzero -> memset
 1.86  22-Feb-2009  yamt udf_write_filebuf: remove an write-only variable
 1.85  08-Feb-2009  reinoud branches: 1.85.2;
Implement session closure on sequential media when requested on mount. It will
allow CD-ROM/DVD-ROM/DB-ROM drives to read the media while still allowing them
to be appended later. It can also be seen as a way to make mountable
snapshots.
 1.84  05-Feb-2009  pooka Specify BROKEN DIRECTORY ENTRY printf comes from udf
(can happen e.g. with medium error)
 1.83  19-Dec-2008  cegger use M_ZERO on malloc() and remove subsequent bzero().
 1.82  18-Dec-2008  reinoud Implement auto-track repair on tracks marked damaged when searching for
writable tracks on session opening. Note that this an optionally implemented
feature and thus no error will be generated if it fails; the drive will most
likely autorepair it.
 1.81  18-Dec-2008  reinoud Fix critital panic when mounting a CD-R/DVD*R disc. The check for VV_ROOT was
not done correctly and could panic when requested to load a VAT descriptor
since the fileset was not yet fetched.
 1.80  16-Dec-2008  christos replace bitmask_snprintf(9) with snprintb(3)
 1.79  16-Dec-2008  reinoud Check for a node being root on node creation so when the root node is disposed
of when working deep into the directory tree it can reliably be reget and
marked correctly as the FS root.

Fixed pwd(1) lock panic and possible endless loop in other tools.
 1.78  16-Dec-2008  pooka The great QUOTA purge of '08: get rid of those #ifdef QUOTA and
#include "opt_quota.h" which do exactly nothing. Speeds up kernel
compilation by 1.375*10^-20001 seconds. But leave the most moxious
comment in msdosfs_vfsops untouched.
 1.77  16-Dec-2008  reinoud Elaborate SYNC debug messages and rename some debug messages to a more
proper category.
 1.76  01-Dec-2008  reinoud Split uid/gid remapping code to be independent of eachother.
 1.75  28-Nov-2008  reinoud Allow for the exclusive selection of `direct' for rdonly mounts; its disabled
for now since its a lot slower than `rmw' access.

For archs that have trouble with `rmw' for whatever reason can so use it as a
scapegoat to allways mount savely rdonly though slower.
 1.74  28-Nov-2008  reinoud Remove old comment and remove unused calculated variable
 1.73  27-Sep-2008  reinoud branches: 1.73.2; 1.73.4;
Switch UDF over to the vfs_dirhash.c dirhash code.
 1.72  29-Aug-2008  reinoud Remove all remaining traces of UDF_READWRITE since it has been removed as
option.
 1.71  06-Aug-2008  reinoud Rewrite allocation scheme's determination and implementation replacing the
old somewhat naive selection scheme that didn't allow different allocation
settings for nodes, directory information (FIDs) and data.

Also fix some curious side-effects of atime updates on RMW devices.
 1.70  28-Jul-2008  reinoud Streamline allocation to prepare it for metadata partition. Also add
preliminary Metadata partition write support but its disabled still since
its not finished yet and not functioning correctly. All other formats are
checked and should work fine.
 1.69  27-Jul-2008  reinoud Delay physical partition spacebitmaps from volume-descriptor-checking until
the other supporting structures are read in.
 1.68  26-Jul-2008  reinoud Clarify the current spacemap read/write code is reading/writing physical
partition space maps. This in preperation of Metadata spacetable
reading/writeout work.
 1.67  22-Jul-2008  reinoud No use walking empty hashtables when purging.
 1.66  22-Jul-2008  reinoud Limit the UDF dirhash to a configurable amount of memory. The performance
penalty even with a limited dirhash of 128kb is acceptable but it should be
set by machine memory size though.
 1.65  19-Jul-2008  reinoud Use ecma-167 constants instead of homegrown to prevent double mapping.
 1.64  19-Jul-2008  reinoud Choose which time of allocation descriptors to use on new nodes based on
the number of partition mappings.
 1.63  18-Jul-2008  reinoud fix comment
 1.62  18-Jul-2008  reinoud On dirhash lookup, don't retrieve info you already have.
 1.61  18-Jul-2008  reinoud Remove double check
 1.60  18-Jul-2008  reinoud First retrieve length and hash values *before* advancing to the next entry.
On hashline collision it would check a random one next.
 1.59  17-Jul-2008  reinoud Implement directory hashing to speed up directory traversals. Speed
improvements of at least 4 times in untarring and roughly 100 to 500 times
on file creation in big directories. Lookup of files was O(n*n) and is now
O(1) even for file creation. Free spaces in the directory are kept in a
seperate list for fast file creation.

The postmark benchmark gives:

UDF old:
pm>set transactions 2000
pm>set number 3000
pm>run
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Time:
1593 seconds total
681 seconds of transactions (2 per second)

Files:
3956 created (2 per second)
Creation alone: 3000 files (4 per second)
Mixed with transactions: 956 files (1 per second)
990 read (1 per second)
1010 appended (1 per second)
3956 deleted (2 per second)
Deletion alone: 2912 files (9 per second)
Mixed with transactions: 1044 files (1 per second)

Data:
5.26 megabytes read (3.38 kilobytes per second)
21.93 megabytes written (14.10 kilobytes per second)
pm>



UDF new:
pm>set transactions 2000
pm>set number 3000
pm>run
Creating files...Done
Performing transactions..........Done
Deleting files...Done
Time:
19 seconds total
3 seconds of transactions (666 per second)

Files:
3956 created (208 per second)
Creation alone: 3000 files (230 per second)
Mixed with transactions: 956 files (318 per second)
990 read (330 per second)
1010 appended (336 per second)
3956 deleted (208 per second)
Deletion alone: 2912 files (970 per second)
Mixed with transactions: 1044 files (348 per second)

Data:
5.26 megabytes read (283.66 kilobytes per second)
21.93 megabytes written (1.15 megabytes per second)
 1.58  17-Jul-2008  reinoud Dont round up nanosecond count; if its nearing wrap one could get a count
of >1 second resulting in invalid time stamps on disc.
 1.57  11-Jul-2008  reinoud Fix spelling in comment
 1.56  10-Jul-2008  reinoud On node creation, follow tmpfs and UFS by generating the uid/gid pair. This
fixes the lack of file ownership preservation on file/directory creation.

See PR kern/39124
 1.55  07-Jul-2008  reinoud Support for allocation extents descriptor writing to allow for arbitrary
heavily fragmented files.

Also fixing some (rare) allocation bugs and function name streamlining.

Tested on harddisc, CD-RW and CD-R i.e. all three basic backend classes.
 1.54  25-Jun-2008  reinoud branches: 1.54.2;
Disable read/write mounting for metadatapartition since attempts to delete
files now corrupt the image due to the lack of allocation scheme support.
 1.53  25-Jun-2008  reinoud Allow metadata partitioned discs to be mounted read-write even though its
allocation scheme is not implemented yet. Creating new files or deleting
anything is thus not possible.
 1.52  25-Jun-2008  reinoud Fix allocation extensions descriptor reading and do free them on node
destruction!
 1.51  24-Jun-2008  reinoud Support the creation of extended attributes for file creation in the
kernel and check and update them when found.

Note that it won't *insert* an extended attribute yet if it hasn't found it
while updating the birthtime.
 1.50  18-Jun-2008  reinoud Cleanup file access,modification,attribute and birthtime setting of files
and make the modification time when set never older than the creation time.
 1.49  19-May-2008  christos branches: 1.49.2;
fix argument type.
 1.48  19-May-2008  reinoud Implement wide char support for UDF by properly implementing unicode-16 to
UTF-8 like cd9660 and ntfs already do.
 1.47  17-May-2008  reinoud Cleaner gcc initialisation detection failure notice.
 1.46  17-May-2008  reinoud Fix `uninitialised variable' warning issued by the sh3 compiler. gcc can't
detect that the `last_node' variable will be set before used since it can't
parse the semantics of `TAILQ_EMPTY()' that is used as a guard first.

Thanks for H?rvard for finding and reporting it :)
 1.45  14-May-2008  reinoud Import writing part of the UDF file system making optical media like CD's
and DVD's behave like floppy discs. Writing is supported upto and including
version 2.01; version 2.50 and 2.60 will follow.

Also extending the UDF implementation to support symbolic links and
hardlinks.

Added are the mmcformat(8) tool to format rewritable CD/DVD discs and
newfs_udf(8).

Limitations:
all operations can be performed on the file system though the
sheduling is currently optimised for archiving workloads.

mv(1)/rename(2) is currently only implemented for non-directories.
 1.44  02-Jan-2008  ad branches: 1.44.6; 1.44.8; 1.44.10; 1.44.12;
Merge vmlocking2 to head.
 1.43  11-Dec-2007  lukem use __KERNEL_RCSID() instead of __RCSID()
 1.42  27-Nov-2007  reinoud branches: 1.42.2; 1.42.4; 1.42.6;
Pullup fixes from UDF RW support project. This commit fixes the
mmc_discinfo conceptional bug and also vastly improves VAT searching.
 1.41  26-Nov-2007  pooka Remove the "struct lwp *" argument from all VFS and VOP interfaces.
The general trend is to remove it from all kernel interfaces and
this is a start. In case the calling lwp is desired, curlwp should
be used.

quick consensus on tech-kern
 1.40  31-Oct-2007  reinoud branches: 1.40.2;
Fix panic when the VAT couldn't be found. It would refer an stale
udf_node->vnode.
 1.39  10-Oct-2007  ad branches: 1.39.2;
Merge from vmlocking:

- Split vnode::v_flag into three fields, depending on field locking.
- simple_lock -> kmutex in a few places.
- Fix some simple locking problems.
 1.38  08-Oct-2007  ad Merge brelse() changes from the vmlocking branch.
 1.37  24-Sep-2007  rumble Avoid stack allocation of large dirent structures in foo_readdir().
 1.36  29-Jul-2007  ad branches: 1.36.4; 1.36.6; 1.36.8; 1.36.10;
It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.35  23-Jul-2007  pooka Initialize size and/or writesize when creating a vnode.
 1.34  29-Apr-2007  msaitoh branches: 1.34.2;
fix typos
 1.33  12-Apr-2007  reinoud Some rogue implementations use random physical partion numbers just to
break other implementations so lookup the physical number instead of
indexing it. Choosing random numbers here is legal according to the specs,
but not a logical choice and most likely done as a wierd kind of copy
protection.

Rogue implementation found to use this
*Microsoft CDIMAGE UDF
 1.32  20-Feb-2007  ad branches: 1.32.4; 1.32.6;
Call genfs_node_destroy() where appropriate.
 1.31  17-Jan-2007  reinoud branches: 1.31.2;
Fix important directory lookup bug that could result in an endless loop. It
fixes the case where a directory lookup is done in a directory has never
been visted/listed; the search optimalisation that searches the directory
from where it left behind the last time would never reach the initial
offset of zero since it would always have at least processed one entry.
 1.30  17-Jan-2007  reinoud Use the generic clock_ymdhms_to_secs() instead of home-brewn version to
translate UDF timestamps to timespec.
 1.29  04-Jan-2007  reinoud Forgot one place for UDF_ICB_FILETYPE_RANDOMACCESS.
 1.28  04-Jan-2007  reinoud Add UDF_ICB_FILETYPE_REALTIME type as found on UDF 2.50 discs. Also revert
a multiplication order to enforce 64 bit math.
 1.27  04-Jan-2007  reinoud Fix compilation issue when specifying different flags or compiling with a
different compiler. Thanks to Jared for noting.
 1.26  04-Jan-2007  reinoud Implement read-only access to UDF 2.50 and UDF 2.60 discs that use metadata
partition mappings. This brings the NetBSD implementation to read all discs
upto date and will read all discs currently defined by OSTA.
 1.25  25-Dec-2006  wiz Spell "separate" correctly. From Zafer Aydogan.
 1.24  25-Dec-2006  wiz Spell "schedule" correctly. From Zafer Aydogan.
 1.23  16-Nov-2006  christos branches: 1.23.2;
__unused removal on arguments; approved by core.
 1.22  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.21  04-Oct-2006  reinoud Fix panic on unmounting VAT file systems. The VAT table was allocated and
freed on the wrong malloc type.
 1.20  03-Oct-2006  reinoud Fix memory leaks on mounting and dismounting UDF volumes.
 1.19  28-Sep-2006  reinoud Fix lookup bug that could result in not finding the last entry. The check
for the cycling was too early. Also fix potential endless loop when the
last entry was deleted.
 1.18  19-Sep-2006  reinoud Make VOP_LOOKUP's O(1) instead of O(n log(n)) giving a speedup of 7500% on
a 1400 file directory.
 1.17  19-Sep-2006  reinoud Fix serious file-corruption issue on sparable partitions.
 1.16  19-Sep-2006  reinoud Fix panic when the sparable table didn't read in correctly.
 1.15  05-Sep-2006  reinoud branches: 1.15.2; 1.15.4; 1.15.6;
Fix copying too much space from a small buffer. The chances of it actually
happening are small but corrupt media could trigger it.
 1.14  22-Aug-2006  reinoud Fix pool allocation/freeing problem for once and for all correctly. Since
it was initialised quite late due to its reliance on disc data the mount
process could have stopped before initialising and thus could panic again
only now for uninitialising an not initialised pool! *sigh*
 1.13  21-Aug-2006  reinoud Make a better guess on VAT locations so discs that are semi-standard
formatted can be recognised. This also fixes the bug that prevented UDF to
mount an empty CD-R/DVD*R disc.
 1.12  11-Aug-2006  reinoud Fix comment; it stated a mimimum of 128 translations duh! a maximum it is!
 1.11  09-Jul-2006  reinoud branches: 1.11.2;
Fixing a bad case of walking/writing out of allocated space.... the
allocated space was 2048 bytes, but when adding 1024 to the variable
`unix_name' to split the allocated space in half it effectively starts just
OUTSIDE the allocated space. This ought to fix memory corruption bugs when
using UDF.

This is a routine to revisit one day.
 1.10  20-Jun-2006  christos branches: 1.10.2;
Don't allocate too much stuff on the stack.
 1.9  12-Jun-2006  christos branches: 1.9.2;
stack polics: Don't allocate 4K on the stack.
remove ; from };
 1.8  15-May-2006  christos branches: 1.8.2;
kauth fallout
 1.7  14-May-2006  elad integrate kauth.
 1.6  25-Apr-2006  snj s/allready/already/
 1.5  01-Mar-2006  yamt branches: 1.5.2; 1.5.4; 1.5.6;
merge yamt-uio_vmspace branch.

- use vmspace rather than proc or lwp where appropriate.
the latter is more natural to specify an address space.
(and less likely to be abused for random purposes.)
- fix a swdmover race.
 1.4  04-Feb-2006  reinoud branches: 1.4.2;
VND and harddiscs have their own defect free space management.
 1.3  04-Feb-2006  reinoud Change a comment into a TODO and fix up case where we could return an
illegal allready-freed memory space.
 1.2  02-Feb-2006  reinoud branches: 1.2.2;
Fix $NetBSD$ tags. (sorry)
 1.1  02-Feb-2006  reinoud Initial import of a UDF file system implementation for NetBSD.

The code supports read access to all media types that CD/DVD type drives
can recognize including DVD-RAM and BD- drives as well as harddisc partions
and vnd devices. UDF versions upto the latest 2.60 are to be supported
though due to lack of test media version 2.50 and 2.60 are not implemented
yet though easy to add. Both open and closed media are supported.

Write access is planned and in preparation. To facilitate this some hooks
are present in the code that are not strictly needed in a read-only
implementation but which allow writing to be added more easily.

Implemented and tested media types are CD-ROM, CD-R, CD-RW, CD-MRW,
DVD-ROM, DVD*R, DVD*RW, DVD+MRW but the same code can also read DVD-RAM,
HD-DVD and BluRay discs. Also vnd devices have been tested with several
sector sizes.

Discs created and written by UDFclient, Nero's InCD and Roxio's
DirectCD/Drag2Disc read fine.
 1.2.2.2  01-Jun-2006  kardel Sync with head.
 1.2.2.1  22-Apr-2006  simonb Sync with head.
 1.4.2.3  01-Mar-2006  yamt adapt udf.
 1.4.2.2  18-Feb-2006  yamt sync with head.
 1.4.2.1  04-Feb-2006  yamt file udf_subr.c was added on branch yamt-uio_vmspace on 2006-02-18 15:39:18 +0000
 1.5.6.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.5.4.2  11-May-2006  elad sync with head
 1.5.4.1  08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.5.2.5  14-Sep-2006  yamt sync with head.
 1.5.2.4  03-Sep-2006  yamt sync with head.
 1.5.2.3  11-Aug-2006  yamt sync with head
 1.5.2.2  26-Jun-2006  yamt sync with head.
 1.5.2.1  24-May-2006  yamt sync with head.
 1.8.2.1  19-Jun-2006  chap Sync with head.
 1.9.2.1  13-Jul-2006  gdamore Merge from HEAD.
 1.10.2.9  21-Jan-2008  yamt sync with head
 1.10.2.8  07-Dec-2007  yamt sync with head
 1.10.2.7  15-Nov-2007  yamt sync with head.
 1.10.2.6  27-Oct-2007  yamt sync with head.
 1.10.2.5  03-Sep-2007  yamt sync with head.
 1.10.2.4  26-Feb-2007  yamt sync with head.
 1.10.2.3  30-Dec-2006  yamt sync with head.
 1.10.2.2  21-Jun-2006  yamt sync with head.
 1.10.2.1  20-Jun-2006  yamt file udf_subr.c was added on branch yamt-lazymbuf on 2006-06-21 15:09:36 +0000
 1.11.2.6  25-Sep-2006  riz Pull up following revision(s) (requested by reinoud in ticket #185):
sys/fs/udf/udf_subr.c: revision 1.18
sys/fs/udf/udf.h: revision 1.7
Make VOP_LOOKUP's O(1) instead of O(n log(n)) giving a speedup of 7500% on
a 1400 file directory.
 1.11.2.5  25-Sep-2006  riz Pull up following revision(s) (requested by reinoud in ticket #184):
sys/fs/udf/udf_subr.c: revision 1.17
Fix serious file-corruption issue on sparable partitions.
 1.11.2.4  25-Sep-2006  riz Pull up following revision(s) (requested by reinoud in ticket #181):
sys/fs/udf/udf_subr.c: revision 1.16
Fix panic when the sparable table didn't read in correctly.
 1.11.2.3  08-Sep-2006  rpaulo Pull up following revision(s) (requested by reinoud in ticket #125):
sys/fs/udf/udf_subr.c: revision 1.15
sys/fs/udf/udf_vfsops.c: revision 1.13
sys/fs/udf/ecma167-udf.h: revision 1.4
Add shortcut for struct long_ad 's Unique ID hint that covers the lower 32
bits of the targeted files 64 bits Unique ID for recovery purposes.
Fix locking scheme in udf_mount() to follow more the other filingsystems.
For yet unknown reasons passing the LOCKLEAF flag to namei() did return a
locked vnode as was meant but would panic when a raw device was passed.
Fix copying too much space from a small buffer. The chances of it actually
happening are small but corrupt media could trigger it.
 1.11.2.2  27-Aug-2006  riz Pull up following revision(s) (requested by reinoud in ticket #50):
sys/fs/udf/udf_subr.c: revision 1.14
sys/fs/udf/udf.h: revision 1.6
sys/fs/udf/udf_vfsops.c: revision 1.11
Fix pool allocation/freeing problem for once and for all correctly. Since
it was initialised quite late due to its reliance on disc data the mount
process could have stopped before initialising and thus could panic again
only now for uninitialising an not initialised pool! *sigh*
 1.11.2.1  24-Aug-2006  tron Pull up following revision(s) (requested by reinoud in ticket #46):
sys/fs/udf/udf_subr.c: revision 1.13
sys/fs/udf/udf.h: revision 1.5
Make a better guess on VAT locations so discs that are semi-standard
formatted can be recognised. This also fixes the bug that prevented UDF to
mount an empty CD-R/DVD*R disc.
 1.15.6.2  10-Dec-2006  yamt sync with head.
 1.15.6.1  22-Oct-2006  yamt sync with head
 1.15.4.2  09-Sep-2006  rpaulo sync with head
 1.15.4.1  05-Sep-2006  rpaulo file udf_subr.c was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:57:06 +0000
 1.15.2.3  01-Feb-2007  ad Sync with head.
 1.15.2.2  12-Jan-2007  ad Sync with head.
 1.15.2.1  18-Nov-2006  ad Sync with head.
 1.23.2.6  01-Feb-2008  riz Pull up following revision(s) (requested by reinoud in ticket #1004):
sys/dev/scsipi/cd.c: revision 1.270
sys/sys/cdio.h: revision 1.29
sys/fs/udf/udf_subr.c: revision 1.42
Pullup fixes from UDF write development project. This patch fixes a
conceptional bug in mmc_discinfo, improves DVD+R feature detection and
prevents corruption of mmc_trackinfo readout on some devices that return
short trackinfo structures.
Pullup fixes from UDF RW support project. This commit fixes the
mmc_discinfo conceptional bug and also vastly improves VAT searching.
 1.23.2.5  04-Nov-2007  xtraeme Pull up following revision(s) (requested by reinoud in ticket #966):
sys/fs/udf/udf_subr.c: revision 1.40

Fix panic when the VAT couldn't be found. It would refer an stale
udf_node->vnode.
 1.23.2.4  12-Apr-2007  bouyer branches: 1.23.2.4.2;
Pull up following revision(s) (requested by reinoud in ticket #567):
sys/fs/udf/udf_subr.c: revision 1.33
Some rogue implementations use random physical partion numbers just to
break other implementations so lookup the physical number instead of
indexing it. Choosing random numbers here is legal according to the specs,
but not a logical choice and most likely done as a wierd kind of copy
protection.
Rogue implementation found to use this
*Microsoft CDIMAGE UDF
 1.23.2.3  21-Jan-2007  bouyer Pull up following revision(s) (requested by reinoud in ticket #376):
sys/fs/udf/udf_subr.c: revisions 1.30 - 1.31
sys/fs/udf/udf_subr.c: revision 1.31
Use the generic clock_ymdhms_to_secs() instead of home-brewn version to
translate UDF timestamps to timespec.
Fix important directory lookup bug that could result in an endless loop. It
fixes the case where a directory lookup is done in a directory has never
been visted/listed; the search optimalisation that searches the directory
from where it left behind the last time would never reach the initial
offset of zero since it would always have at least processed one entry.
 1.23.2.2  04-Jan-2007  bouyer Pull up following revision(s) (requested by reinoud in ticket #333):
sys/fs/udf/udf_subr.c: revision 1.27-1.29
sys/fs/udf/udf_vnops.c: revision 1.9
sys/fs/udf/ecma167-udf.h: revision 1.6
Fix compilation issue when specifying different flags or compiling with a
different compiler. Thanks to Jared for noting.
Add UDF_ICB_FILETYPE_REALTIME type as found on UDF 2.50 discs. Also revert
a multiplication order to enforce 64 bit math.
Forgot one place for UDF_ICB_FILETYPE_RANDOMACCESS.
 1.23.2.1  04-Jan-2007  bouyer Pull up following revision(s) (requested by reinoud in ticket #332):
sys/fs/udf/udf_subr.c: revision 1.26
sys/fs/udf/udf.h: revision 1.9
sys/fs/udf/udf_vfsops.c: revision 1.19
Implement read-only access to UDF 2.50 and UDF 2.60 discs that use metadata
partition mappings. This brings the NetBSD implementation to read all discs
upto date and will read all discs currently defined by OSTA.
 1.23.2.4.2.2  03-Jun-2008  skrll Sync with netbsd-4.
 1.23.2.4.2.1  06-Jan-2008  wrstuden Catch up to netbsd-4.0 release.
 1.31.2.3  07-May-2007  yamt sync with head.
 1.31.2.2  15-Apr-2007  yamt sync with head.
 1.31.2.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.32.6.1  11-Jul-2007  mjf Sync with head.
 1.32.4.8  09-Oct-2007  ad Sync with head.
 1.32.4.7  24-Aug-2007  ad Sync with buffer cache locking changes. See buf.h/vfs_bio.c for details.
Some minor portions are incomplete and needs to be verified as a whole.
 1.32.4.6  20-Aug-2007  ad Sync with HEAD.
 1.32.4.5  19-Aug-2007  ad - Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).
 1.32.4.4  17-Jun-2007  ad - Increase the number of thread priorities from 128 to 256. How the space
is set up is to be revisited.
- Implement soft interrupts as kernel threads. A generic implementation
is provided, with hooks for fast-path MD code that can run the interrupt
threads over the top of other threads executing in the kernel.
- Split vnode::v_flag into three fields, depending on how the flag is
locked (by the interlock, by the vnode lock, by the file system).
- Miscellaneous locking fixes and improvements.
 1.32.4.3  09-Jun-2007  ad Sync with head.
 1.32.4.2  08-Jun-2007  ad Sync with head.
 1.32.4.1  05-Apr-2007  ad Compile fixes.
 1.34.2.1  15-Aug-2007  skrll Sync with HEAD.
 1.36.10.2  29-Jul-2007  ad It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.36.10.1  29-Jul-2007  ad file udf_subr.c was added on branch matt-mips64 on 2007-07-29 13:31:12 +0000
 1.36.8.2  14-Oct-2007  yamt sync with head.
 1.36.8.1  06-Oct-2007  yamt sync with head.
 1.36.6.2  09-Jan-2008  matt sync with HEAD
 1.36.6.1  06-Nov-2007  matt sync with HEAD
 1.36.4.5  03-Dec-2007  joerg Sync with HEAD.
 1.36.4.4  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.36.4.3  31-Oct-2007  joerg Sync with HEAD.
 1.36.4.2  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.36.4.1  02-Oct-2007  joerg Sync with HEAD.
 1.39.2.1  13-Nov-2007  bouyer Sync with HEAD
 1.40.2.3  18-Feb-2008  mjf Sync with HEAD.
 1.40.2.2  27-Dec-2007  mjf Sync with HEAD.
 1.40.2.1  08-Dec-2007  mjf Sync with HEAD.
 1.42.6.2  02-Jan-2008  bouyer Sync with HEAD
 1.42.6.1  13-Dec-2007  bouyer Sync with HEAD
 1.42.4.1  11-Dec-2007  yamt sync with head.
 1.42.2.2  26-Dec-2007  ad Sync with head.
 1.42.2.1  04-Dec-2007  ad Pull the vmlocking changes into a new branch.
 1.44.12.3  10-Oct-2008  skrll Sync with HEAD.
 1.44.12.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.44.12.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.44.10.8  09-Oct-2010  yamt sync with head
 1.44.10.7  11-Aug-2010  yamt sync with head.
 1.44.10.6  11-Mar-2010  yamt sync with head
 1.44.10.5  19-Aug-2009  yamt sync with head.
 1.44.10.4  18-Jul-2009  yamt sync with head.
 1.44.10.3  20-Jun-2009  yamt sync with head
 1.44.10.2  04-May-2009  yamt sync with head.
 1.44.10.1  16-May-2008  yamt sync with head.
 1.44.8.2  04-Jun-2008  yamt sync with head
 1.44.8.1  18-May-2008  yamt sync with head.
 1.44.6.5  17-Jan-2009  mjf Sync with HEAD.
 1.44.6.4  05-Oct-2008  mjf Sync with HEAD.
 1.44.6.3  28-Sep-2008  mjf Sync with HEAD.
 1.44.6.2  29-Jun-2008  mjf Sync with HEAD.
 1.44.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.49.2.5  31-Jul-2008  simonb Sync with head.
 1.49.2.4  28-Jul-2008  simonb Sync with head.
 1.49.2.3  22-Jul-2008  simonb Sync with head.
 1.49.2.2  18-Jul-2008  simonb Sync with head.
 1.49.2.1  27-Jun-2008  simonb Sync with head.
 1.54.2.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.54.2.1  19-Oct-2008  haad Sync with HEAD.
 1.73.4.12  09-Jul-2009  snj Apply patch (requested by reinoud in ticket #852):
Numerous UDF improvements:
- a much saner rmw backend
- free space management done right
- the high system time usage when encountering huge numbers of nodes
are a thing of the past due to refactoring
- various small fixes
 1.73.4.11  06-Jun-2009  bouyer Pull up following revision(s) (requested by reinoud in ticket #770):
sys/fs/udf/udf_subr.c: revision 1.88, 1.89
sys/fs/udf/udf_bswap.h: revision 1.6, 1.7
sys/fs/udf/udf_allocation.c: revision 1.22, 1.23
sbin/newfs_udf/udf_create.c: revision 1.16
Fix *serious* bug in bswapping definitions for big endian machines.
ANSI-fy. No idea why they weren't so in the first place.
Fix newfs_udf to create a valid disc images on bigendian machines.
A descriptor's CRC lenth is 16 bit so use udf_rw16() on tag.desc_crc_len.
Forgot to use the udf_rw16() on the descriptor crc lengths of FID's!
Also fix a few dubiously formatted checks.
On creation of a new node, don't forget to set the length of the allocated
space in the right endian!
Account for the logical blocks recorded by the extent in the right endian!
 1.73.4.10  01-Jun-2009  liamjfoy Pull up following revision(s) (requested by reinoud in ticket #772):
sys/fs/udf/udf_strat_rmw.c: revision 1.19
sys/fs/udf/udf_strat_sequential.c: revision 1.10
sys/fs/udf/udf_strat_direct.c: revision 1.10
sys/fs/udf/udf_subr.c: revision 1.90
sys/fs/udf/udf_subr.c: revision 1.91
Descriptor version is 16 bit and not 8 so use udf_rw16() to access them.
UniqueID was written in the logical volume integrity without byteswapping for
bigendian machines.

Retire IN_CALLBACK_ULK flagging since its not used anymore and the old
assertions on it would trigger without cause.
 1.73.4.9  19-Feb-2009  snj branches: 1.73.4.9.4;
Apply patch (requested by plunky in ticket #447):
Use bitmask_snprintf instead of snprintb.
 1.73.4.8  18-Feb-2009  snj Pull up following revision(s) (requested by reinoud in ticket #447):
sys/fs/udf/udf.h: revision 1.30
sys/fs/udf/udf_readwrite.c: revision 1.10
sys/fs/udf/udf_strat_direct.c: revision 1.8
sys/fs/udf/udf_strat_rmw.c: revision 1.18
sys/fs/udf/udf_strat_sequential.c: revision 1.8
sys/fs/udf/udf_subr.c: revision 1.85
sys/fs/udf/udf_subr.h: revision 1.13
Implement session closure on sequential media when requested on mount. It will
allow CD-ROM/DVD-ROM/DB-ROM drives to read the media while still allowing them
to be appended later. It can also be seen as a way to make mountable
snapshots.
 1.73.4.7  22-Dec-2008  snj Pull up following revision(s) (requested by reinoud in ticket #194):
sys/fs/udf/udf_subr.c: revision 1.82
Implement auto-track repair on tracks marked damaged when searching for
writable tracks on session opening. Note that this an optionally implemented
feature and thus no error will be generated if it fails; the drive will most
likely autorepair it.
 1.73.4.6  22-Dec-2008  snj Pull up following revision(s) (requested by reinoud in ticket #194):
sys/fs/udf/udf_subr.c: revision 1.81
Fix critital panic when mounting a CD-R/DVD*R disc. The check for VV_ROOT was
not done correctly and could panic when requested to load a VAT descriptor
since the fileset was not yet fetched.
 1.73.4.5  18-Dec-2008  snj Pull up following revision(s) (requested by reinoud in ticket #192):
sys/fs/udf/udf_subr.c: revision 1.79
sys/fs/udf/udf_vfsops.c: revision 1.54
Check for a node being root on node creation so when the root node is disposed
of when working deep into the directory tree it can reliably be reget and
marked correctly as the FS root.
Fixed pwd(1) lock panic and possible endless loop in other tools.
 1.73.4.4  18-Dec-2008  snj Pull up following revision(s) (requested by reinoud in ticket #192):
sys/fs/udf/udf_subr.c: revision 1.77
sys/fs/udf/udf_vnops.c: revision 1.33
Elaborate SYNC debug messages and rename some debug messages to a more
proper category.
 1.73.4.3  06-Dec-2008  snj Pull up following revision(s) (requested by reinoud in ticket #167):
sys/fs/udf/udf_subr.c: revision 1.76
sys/fs/udf/udf_vnops.c: revision 1.32
Split uid/gid remapping code to be independent of eachother.
 1.73.4.2  06-Dec-2008  snj Pull up following revision(s) (requested by reinoud in ticket #167):
sys/fs/udf/udf_strat_direct.c: revision 1.6
sys/fs/udf/udf_subr.c: revision 1.75
Allow for the exclusive selection of `direct' for rdonly mounts; its disabled
for now since its a lot slower than `rmw' access.
For archs that have trouble with `rmw' for whatever reason can so use it as a
scapegoat to allways mount savely rdonly though slower.
 1.73.4.1  06-Dec-2008  snj Pull up following revision(s) (requested by reinoud in ticket #167):
sys/fs/udf/udf_subr.c: revision 1.74
Remove old comment and remove unused calculated variable
 1.73.4.9.4.1  21-Apr-2010  matt sync to netbsd-5
 1.73.2.3  28-Apr-2009  skrll Sync with HEAD.
 1.73.2.2  03-Mar-2009  skrll Sync with HEAD.
 1.73.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.85.2.2  23-Jul-2009  jym Sync with HEAD.
 1.85.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.101.2.3  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.101.2.2  17-Aug-2010  uebayasi Sync with HEAD.
 1.101.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.104.2.5  31-May-2011  rmind sync with head
 1.104.2.4  19-May-2011  rmind Implement sharing of vnode_t::v_interlock amongst vnodes:
- Lock is shared amongst UVM objects using uvm_obj_setlock() or getnewvnode().
- Adjust vnode cache to handle unsharing, add VI_LOCKSHARE flag for that.
- Use sharing in tmpfs and layerfs for underlying object.
- Simplify locking in ubc_fault().
- Sprinkle some asserts.

Discussed with ad@.
 1.104.2.3  05-Mar-2011  rmind sync with head
 1.104.2.2  03-Jul-2010  rmind sync with head
 1.104.2.1  16-Mar-2010  rmind Change struct uvm_object::vmobjlock to be dynamically allocated with
mutex_obj_alloc(). It allows us to share the locks among UVM objects.
 1.110.4.1  08-Feb-2011  bouyer Sync with HEAD
 1.110.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.114.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.117.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.117.2.2  23-May-2012  yamt sync with head.
 1.117.2.1  17-Apr-2012  yamt sync with head
 1.118.6.1  07-May-2012  riz Pull up following revision(s) (requested by chs in ticket #204):
sys/fs/sysvbfs/sysvbfs_vnops.c: revision 1.44
sys/ufs/ffs/ffs_vfsops.c: revision 1.277
sys/fs/v7fs/v7fs_vnops.c: revision 1.11
sys/ufs/chfs/chfs_vnops.c: revision 1.7
sys/ufs/ext2fs/ext2fs_readwrite.c: revision 1.61
sys/miscfs/genfs/genfs_io.c: revision 1.54
sys/kern/vfs_wapbl.c: revision 1.52
sys/uvm/uvm_pager.h: revision 1.43
sys/ufs/ffs/ffs_vnops.c: revision 1.121
sys/kern/vfs_subr.c: revision 1.434
sys/fs/msdosfs/msdosfs_vnops.c: revision 1.83
sys/fs/ntfs/ntfs_vnops.c: revision 1.51
sys/fs/udf/udf_subr.c: revision 1.119
sys/miscfs/specfs/spec_vnops.c: revision 1.135
sys/ufs/ext2fs/ext2fs_vnops.c: revision 1.103
sys/fs/udf/udf_vnops.c: revision 1.71
sys/ufs/ufs/ufs_readwrite.c: revision 1.104
change vflushbuf() to take the full FSYNC_* flags.
translate FSYNC_LAZY into PGO_LAZY for VOP_PUTPAGES() so that
genfs_do_io() can set the appropriate io priority for the I/O.
this is the first part of addressing PR 46325.
mark all wapbl I/O as BPRIO_TIMECRITICAL.
this is the second part of addressing PR 46325.
 1.118.4.1  02-Jun-2012  mrg sync to latest -current.
 1.119.4.2  18-May-2014  rmind sync with head
 1.119.4.1  28-Aug-2013  rmind sync with head
 1.119.2.2  03-Dec-2017  jdolecek update from HEAD
 1.119.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.124.2.1  10-Aug-2014  tls Rebase.
 1.125.2.2  27-Jul-2018  martin Pull up following revision(s) (requested by reinoud in ticket #1622):

sys/fs/udf/udf_subr.c: revision 1.142

Enhance logical volume integrity descriptor handling and provide
bug-compatibility for Linux mkudffs 1.3 images.
 1.125.2.1  16-Feb-2015  martin Pull up following revision(s) (requested by maxv in ticket #520):
sys/ufs/chfs/ebh.c: revision 1.6
sys/dev/sdmmc/sdmmc_mem.c: revision 1.33
sys/dev/ic/aic7xxx.c: revision 1.132
sys/fs/nfs/common/krpc_subr.c: revision 1.2
sys/modules/lua/lua.c: revision 1.16
sys/fs/udf/udf_subr.c: revision 1.128
sys/ufs/chfs/chfs_scan.c: revision 1.6
sys/dev/ic/an.c: revision 1.62

Fix six memory leaks and two inconsistencies.
 1.127.2.7  28-Aug-2017  skrll Sync with HEAD
 1.127.2.6  29-May-2016  skrll Sync with HEAD
 1.127.2.5  19-Mar-2016  skrll Sync with HEAD
 1.127.2.4  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.127.2.3  22-Sep-2015  skrll Sync with HEAD
 1.127.2.2  06-Jun-2015  skrll Sync with HEAD
 1.127.2.1  06-Apr-2015  skrll Sync with HEAD
 1.138.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.138.2.1  26-Apr-2017  pgoyette Sync with HEAD
 1.139.12.5  18-Jan-2019  pgoyette Synch with HEAD
 1.139.12.4  20-Oct-2018  pgoyette Sync with head
 1.139.12.3  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.139.12.2  28-Jul-2018  pgoyette Sync with HEAD
 1.139.12.1  25-Jun-2018  pgoyette Sync with HEAD
 1.139.6.1  27-Jul-2018  martin Pull up following revision(s) (requested by reinoud in ticket #942):

sys/fs/udf/udf_subr.c: revision 1.142

Enhance logical volume integrity descriptor handling and provide
bug-compatibility for Linux mkudffs 1.3 images.
 1.141.2.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.141.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.141.2.1  10-Jun-2019  christos Sync with HEAD
 1.146.2.3  24-Apr-2022  martin Pull up following revision(s) (requested by reinoud in ticket #1438):

sys/compat/netbsd32/netbsd32.h: revision 1.140
sys/compat/netbsd32/netbsd32_fs.c: revision 1.95
sys/fs/udf/udf_subr.c: revision 1.169

Fix endian issue with UDF extended attribute handling

Implement support for mounting UDF in compat32
Fixes PR#56801
 1.146.2.2  13-Mar-2022  martin Pull up following revision(s), all via patch,
requested by reinoud in ticket #1432:

sys/fs/udf/udf_vfsops.c: revision 1.83
sys/fs/udf/udf_allocation.c: revision 1.45
sys/fs/udf/udf_subr.c: revision 1.160
sys/fs/udf/udf_subr.c: revision 1.161

While searching the VAT on recordable media, search the last sector too!
This fixes Win10 formatted discs from being mounted incorrectly.

Make sysctl udf.verbose dependent on UDF_DEBUG instead of DEBUG

Fix serious issue with recordable media formatted with Win10. When closing it
after modification the VAT was written out corrupted making the disc
unreadable anymore on remount. Thanks for ig@ for spotting it in the wild!

On freeing a virtual address in the VAT, use the correct value; this might
confuse other implementations who can reject the VAT on this.
 1.146.2.1  13-Mar-2022  martin Pull up following revision(s) (requested by reinoud in ticket #1431):

sys/fs/udf/udf_strat_sequential.c: revision 1.16
sys/fs/udf/udf_subr.c: revision 1.167

On switching from writing to reading explicitly synchronize the caches. It
isn't strictly needed but some devices in the wild will otherwise bluntly
ignore all reading commands resulting in a kernel and device lockup.

For bug-compatibility with Windows, the last VAT sector must be a multiple of
16/32 from the start of the track. To allow for scratches, write out at least
a 32 pieces.
 1.147.2.2  29-Feb-2020  ad Sync with head.
 1.147.2.1  17-Jan-2020  ad Sync with head.
 1.150.4.1  03-Apr-2021  thorpej Sync with HEAD.
 1.152.2.1  17-Apr-2021  thorpej Sync with HEAD.
 1.153.2.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed