Home | History | Annotate | Download | only in udf
History log of /src/sys/fs/udf/udf_subr.h
RevisionDateAuthorComments
 1.21  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.20  24-May-2016  reinoud branches: 1.20.18; 1.20.24;
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.19  07-Jul-2013  reinoud branches: 1.19.8;
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.18  25-Feb-2010  reinoud branches: 1.18.10; 1.18.20; 1.18.24;
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.17  07-Jul-2009  reinoud branches: 1.17.2;
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.16  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.15  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.14  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.13  08-Feb-2009  reinoud branches: 1.13.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.12  06-Aug-2008  reinoud branches: 1.12.2; 1.12.4;
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.11  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.10  26-Jul-2008  reinoud Forgot to rename those two references to write_space_bitmap too.
 1.9  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.8  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.7  18-Jun-2008  reinoud branches: 1.7.2;
Cleanup file access,modification,attribute and birthtime setting of files
and make the modification time when set never older than the creation time.
 1.6  19-May-2008  reinoud branches: 1.6.2;
Implement wide char support for UDF by properly implementing unicode-16 to
UTF-8 like cd9660 and ntfs already do.
 1.5  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.4  05-Mar-2006  christos branches: 1.4.10; 1.4.16; 1.4.66; 1.4.68; 1.4.70; 1.4.72;
remove trailing newlines
 1.3  02-Feb-2006  reinoud branches: 1.3.2; 1.3.4; 1.3.6;
Fix header re-inclusion protection defines to a less generic naming
scheme.
 1.2  02-Feb-2006  reinoud 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.3.6.1  13-Mar-2006  yamt sync with head.
 1.3.4.2  18-Feb-2006  yamt sync with head.
 1.3.4.1  02-Feb-2006  yamt file udf_subr.h was added on branch yamt-uio_vmspace on 2006-02-18 15:39:18 +0000
 1.3.2.1  22-Apr-2006  simonb Sync with head.
 1.4.72.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.4.72.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.4.70.4  11-Mar-2010  yamt sync with head
 1.4.70.3  18-Jul-2009  yamt sync with head.
 1.4.70.2  04-May-2009  yamt sync with head.
 1.4.70.1  16-May-2008  yamt sync with head.
 1.4.68.2  04-Jun-2008  yamt sync with head
 1.4.68.1  18-May-2008  yamt sync with head.
 1.4.66.3  28-Sep-2008  mjf Sync with HEAD.
 1.4.66.2  29-Jun-2008  mjf Sync with HEAD.
 1.4.66.1  02-Jun-2008  mjf Sync with HEAD.
 1.4.16.2  09-Sep-2006  rpaulo sync with head
 1.4.16.1  05-Mar-2006  rpaulo file udf_subr.h was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:57:06 +0000
 1.4.10.2  21-Jun-2006  yamt sync with head.
 1.4.10.1  05-Mar-2006  yamt file udf_subr.h was added on branch yamt-lazymbuf on 2006-06-21 15:09:37 +0000
 1.6.2.4  31-Jul-2008  simonb Sync with head.
 1.6.2.3  28-Jul-2008  simonb Sync with head.
 1.6.2.2  18-Jul-2008  simonb Sync with head.
 1.6.2.1  27-Jun-2008  simonb Sync with head.
 1.7.2.1  19-Oct-2008  haad Sync with HEAD.
 1.12.4.2  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.12.4.1  18-Feb-2009  snj branches: 1.12.4.1.4;
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.12.4.1.4.1  21-Apr-2010  matt sync to netbsd-5
 1.12.2.1  03-Mar-2009  skrll Sync with HEAD.
 1.13.2.1  23-Jul-2009  jym Sync with HEAD.
 1.17.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.18.24.1  28-Aug-2013  rmind sync with head
 1.18.20.2  03-Dec-2017  jdolecek update from HEAD
 1.18.20.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.18.10.1  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.19.8.1  29-May-2016  skrll Sync with HEAD
 1.20.24.1  17-Jan-2020  ad Sync with head.
 1.20.18.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed