Home | History | Annotate | Download | only in udf
History log of /src/sys/fs/udf/udf_strat_sequential.c
RevisionDateAuthorComments
 1.20  27-Jun-2023  reinoud Convert UDF file system code from the depricated tsleep(9)/wakeup(9) to the MP
friendly condvar(9). No functional change intended.
 1.19  27-Aug-2022  skrll Spell approximately correctly.
 1.18  27-Aug-2022  skrll Trailing whitespace
 1.17  16-Apr-2022  andvar fix various typos in comments and log messages.
 1.16  08-Mar-2022  reinoud 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.
 1.15  24-May-2016  reinoud branches: 1.15.22;
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.14  06-Oct-2015  hannken Remove dubious vhold()/holdrele() from write_logvol_dscr strategies.

The udf_node already gets locked with UDF_LOCK_NODE() and udf_reclaim()
will wait for the lock to clear.
 1.13  23-Mar-2014  christos branches: 1.13.6;
fix unused
 1.12  18-Oct-2013  christos fix unused variable warnings
 1.11  03-Jan-2011  drochner branches: 1.11.8; 1.11.18; 1.11.22;
destroy mutex/cv before freeing the struct holding them, fixes
LOCKDEBUG panic
 1.10  20-May-2009  reinoud branches: 1.10.4;
Retire IN_CALLBACK_ULK flagging since its not used anymore and the old
assertions on it would trigger without cause.
 1.9  10-Feb-2009  reinoud Sequential writing goes before normal write. Its not likely to ever go wrong
but there could be a race otherwise.
 1.8  08-Feb-2009  reinoud branches: 1.8.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.7  13-Jan-2009  yamt g/c BUFQ_FOO() macros and use bufq_foo() directly.
 1.6  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.5  29-Aug-2008  reinoud branches: 1.5.2; 1.5.4;
Remove all remaining traces of UDF_READWRITE since it has been removed as
option.
 1.4  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.3  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.2  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.1  14-May-2008  reinoud branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.10; 1.1.12;
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.1.12.1  19-Oct-2008  haad Sync with HEAD.
 1.1.10.3  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.10.2  23-Jun-2008  wrstuden Add files to branch that were added on -current.

After this, all that's left of update is to merge some changes
that had conflicts.
 1.1.10.1  14-May-2008  wrstuden file udf_strat_sequential.c was added on branch wrstuden-revivesa on 2008-06-23 05:02:14 +0000
 1.1.8.2  31-Jul-2008  simonb Sync with head.
 1.1.8.1  18-Jul-2008  simonb Sync with head.
 1.1.6.4  17-Jan-2009  mjf Sync with HEAD.
 1.1.6.3  28-Sep-2008  mjf Sync with HEAD.
 1.1.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.1.6.1  14-May-2008  mjf file udf_strat_sequential.c was added on branch mjf-devfs2 on 2008-06-02 13:24:06 +0000
 1.1.4.2  18-May-2008  yamt sync with head.
 1.1.4.1  14-May-2008  yamt file udf_strat_sequential.c was added on branch yamt-pf42 on 2008-05-18 12:35:06 +0000
 1.1.2.4  20-Jun-2009  yamt sync with head
 1.1.2.3  04-May-2009  yamt sync with head.
 1.1.2.2  16-May-2008  yamt sync with head.
 1.1.2.1  14-May-2008  yamt file udf_strat_sequential.c was added on branch yamt-nfs-mp on 2008-05-16 02:25:21 +0000
 1.5.4.4  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.5.4.3  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.5.4.2  18-Mar-2009  snj branches: 1.5.4.2.4;
Apply patch (requested by reinoud in ticket #569):
Remove dead code and double check if it's allowed to write out
non-sequential there.
--
Sequential writing goes before normal write. Its not likely to ever go
wrong but there could be a race otherwise.
--
Add simplistic UBC async flushing as other FS's seem to do. Its a clutch
and needs to be addressed in UBC properly.
Improve write throttling by doing it on page-size basis. The `standard'
solution would cut up files unnessisary during allocation. It also made
assumptions about ucb wich were propably right but still.
 1.5.4.1  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.5.4.2.4.1  21-Apr-2010  matt sync to netbsd-5
 1.5.2.2  03-Mar-2009  skrll Sync with HEAD.
 1.5.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.8.2.2  23-Jul-2009  jym Sync with HEAD.
 1.8.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.10.4.1  05-Mar-2011  rmind sync with head
 1.11.22.1  18-May-2014  rmind sync with head
 1.11.18.2  03-Dec-2017  jdolecek update from HEAD
 1.11.18.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11.8.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.13.6.2  29-May-2016  skrll Sync with HEAD
 1.13.6.1  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.15.22.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.

RSS XML Feed