The NetBSD Project

CVS log for src/sys/fs/udf/udf_vnops.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / fs / udf

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.75 / (download) - annotate - [select for diffs], Mon Mar 18 19:35:41 2013 UTC (2 months ago) by plunky
Branch: MAIN
CVS Tags: khorben-n900, agc-symver-base, agc-symver, HEAD
Changes since 1.74: +3 -3 lines
Diff to previous 1.74 (colored)

C99 section 6.7.2.3 (Tags) Note 3 states that:

  A type specifier of the form

	enum identifier

  without an enumerator list shall only appear after the type it
  specifies is complete.

which means that we cannot pass an "enum vtype" argument to
kauth_access_action() without fully specifying the type first.
Unfortunately there is a complicated include file loop which
makes that difficult, so convert this minimal function into a
macro (and capitalize it).

(ok elad@)

Revision 1.74 / (download) - annotate - [select for diffs], Mon Nov 5 17:27:39 2012 UTC (6 months, 2 weeks ago) by dholland
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, tls-maxphys-nbase, tls-maxphys-base
Changes since 1.73: +6 -4 lines
Diff to previous 1.73 (colored)

Excise struct componentname from the namecache.

This uglifies the interface, because several operations need to be
passed the namei flags and cache_lookup also needs for the time being
to be passed cnp->cn_nameiop. Nonetheless, it's a net benefit.

The glop should be able to go away eventually but requires structural
cleanup elsewhere first.

This change requires a kernel bump.

Revision 1.73 / (download) - annotate - [select for diffs], Mon Nov 5 17:24:11 2012 UTC (6 months, 2 weeks ago) by dholland
Branch: MAIN
Changes since 1.72: +6 -6 lines
Diff to previous 1.72 (colored)

Disentangle the namecache from the internals of namei.

 - Move the namecache's hash computation to inside the namecache code,
instead of being spread out all over the place. Remove cn_hash from
struct componentname and delete all uses of it.

 - It is no longer necessary (if it ever was) for cache_lookup and
cache_lookup_raw to clear MAKEENTRY from cnp->cn_flags for the cases
that cache_enter already checks for.

 - Rearrange the interface of cache_lookup (and cache_lookup_raw) to
make it somewhat simpler, to exclude certain nonexistent error
conditions, and (most importantly) to make it not require write access
to cnp->cn_flags.

This change requires a kernel bump.

Revision 1.72 / (download) - annotate - [select for diffs], Sun Jul 22 00:53:21 2012 UTC (10 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base6
Branch point for: tls-maxphys
Changes since 1.71: +3 -3 lines
Diff to previous 1.71 (colored)

Move some the test for MAKEENTRY into the cache_enter(9).  Make some
variables in vfs_cache.c static, __read_mostly, etc.

No objection on tech-kern@.

Revision 1.71 / (download) - annotate - [select for diffs], Sun Apr 29 22:53:59 2012 UTC (12 months, 3 weeks ago) by chs
Branch: MAIN
CVS Tags: yamt-pagecache-base5, jmcneill-usbmp-base10
Changes since 1.70: +5 -5 lines
Diff to previous 1.70 (colored)

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.

Revision 1.70 / (download) - annotate - [select for diffs], Tue Mar 13 18:40:51 2012 UTC (14 months, 1 week ago) by elad
Branch: MAIN
CVS Tags: yamt-pagecache-base4, jmcneill-usbmp-base9, jmcneill-usbmp-base8
Changes since 1.69: +11 -8 lines
Diff to previous 1.69 (colored)

Replace the remaining KAUTH_GENERIC_ISSUSER authorization calls with
something meaningful. All relevant documentation has been updated or
written.

Most of these changes were brought up in the following messages:

    http://mail-index.netbsd.org/tech-kern/2012/01/18/msg012490.html
    http://mail-index.netbsd.org/tech-kern/2012/01/19/msg012502.html
    http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012728.html

Thanks to christos, manu, njoly, and jmmv for input.

Huge thanks to pgoyette for spinning these changes through some build
cycles and ATF.

Revision 1.69 / (download) - annotate - [select for diffs], Fri Nov 18 21:18:51 2011 UTC (18 months ago) by christos
Branch: MAIN
CVS Tags: netbsd-6-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: netbsd-6, jmcneill-usbmp
Changes since 1.68: +14 -3 lines
Diff to previous 1.68 (colored)

Obey MNT_RELATIME, the only addition is that mkdir in ufs sets IN_ACCESS too.

Revision 1.68 / (download) - annotate - [select for diffs], Tue Oct 18 20:20:29 2011 UTC (19 months ago) by hannken
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base
Branch point for: yamt-pagecache
Changes since 1.67: +5 -3 lines
Diff to previous 1.67 (colored)

VOP_GETATTR() needs a shared lock at least.

While here fix a typo (fvp -> tvp).

Revision 1.67 / (download) - annotate - [select for diffs], Tue Sep 27 01:33:30 2011 UTC (19 months, 3 weeks ago) by christos
Branch: MAIN
Changes since 1.66: +3 -3 lines
Diff to previous 1.66 (colored)

return UDF_MAXNAMLEN instead of NAME_MAX

Revision 1.66 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:55 2011 UTC (23 months, 1 week ago) by rmind
Branch: MAIN
Changes since 1.65: +9 -9 lines
Diff to previous 1.65 (colored)

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.

Revision 1.65 / (download) - annotate - [select for diffs], Thu May 19 03:11:58 2011 UTC (2 years ago) by rmind
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, cherry-xenmp-base
Branch point for: cherry-xenmp
Changes since 1.64: +2 -5 lines
Diff to previous 1.64 (colored)

Remove cache_purge(9) calls from reclamation routines in the file systems,
as vclean(9) performs it for us since Lite2 merge.

Revision 1.64 / (download) - annotate - [select for diffs], Tue Apr 26 11:32:39 2011 UTC (2 years ago) by hannken
Branch: MAIN
Changes since 1.63: +5 -3 lines
Diff to previous 1.63 (colored)

Change vflushbuf() to return an error if a synchronous write fails.

Welcome to 5.99.51.

Revision 1.63 / (download) - annotate - [select for diffs], Sun Apr 24 21:35:30 2011 UTC (2 years, 1 month ago) by rmind
Branch: MAIN
Changes since 1.62: +5 -11 lines
Diff to previous 1.62 (colored)

sys_link: prevent hard links on directories (cross-mount operations are
already prevented).  File systems are no longer responsible to check this.
Clean up and add asserts (note that dvp == vp cannot happen in vop_link).

OK dholland@

Revision 1.62 / (download) - annotate - [select for diffs], Sun Jan 2 05:09:30 2011 UTC (2 years, 4 months ago) by dholland
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231, jruoho-x86intr-base, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: jruoho-x86intr
Changes since 1.61: +3 -4 lines
Diff to previous 1.61 (colored)

Remove the special refcount behavior (adding an extra reference to the
parent dir) associated with SAVESTART in relookup().

Check all call sites to make sure that SAVESTART wasn't set while
calling relookup(); if it was, adjust the refcount behavior. Remove
related references to SAVESTART.

The only code that was reaching the extra ref was msdosfs_rename,
where the refcount behavior was already fairly broken and/or gross;
repair it.

Add a dummy 4th argument to relookup to make sure code that hasn't
been inspected won't compile. (This will go away next time the
relookup semantics change, which they will.)

Revision 1.61 / (download) - annotate - [select for diffs], Tue Nov 30 10:43:04 2010 UTC (2 years, 5 months ago) by dholland
Branch: MAIN
Changes since 1.60: +2 -4 lines
Diff to previous 1.60 (colored)

Abolish the SAVENAME and HASBUF flags. There is now always a buffer,
so the path in a struct componentname is now always valid during VOP
calls.

Revision 1.60 / (download) - annotate - [select for diffs], Tue Nov 30 10:30:01 2010 UTC (2 years, 5 months ago) by dholland
Branch: MAIN
Changes since 1.59: +2 -10 lines
Diff to previous 1.59 (colored)

Abolish struct componentname's cn_pnbuf. Use the path buffer in the
pathbuf object passed to namei as work space instead. (For now a pnbuf
pointer appears in struct nameidata, to support certain unclean things
that haven't been fixed yet, but it will be going away in the future.)

This removes the need for the SAVENAME and HASBUF namei flags.

Revision 1.59 / (download) - annotate - [select for diffs], Thu Jun 24 13:03:11 2010 UTC (2 years, 11 months ago) by hannken
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2
Changes since 1.58: +10 -10 lines
Diff to previous 1.58 (colored)

Clean up vnode lock operations pass 2:

VOP_UNLOCK(vp, flags) -> VOP_UNLOCK(vp): Remove the unneeded flags argument.

Welcome to 5.99.32.

Discussed on tech-kern.

Revision 1.58 / (download) - annotate - [select for diffs], Thu Jun 24 07:54:46 2010 UTC (2 years, 11 months ago) by hannken
Branch: MAIN
Changes since 1.57: +12 -8 lines
Diff to previous 1.57 (colored)

Clean up vnode lock operations:

 - VOP_LOCK(vp, flags): Limit the set of allowed flags to LK_EXCLUSIVE,
   LK_SHARED and LK_NOWAIT.  LK_INTERLOCK is no longer allowed as it
   makes no sense here.

- VOP_ISLOCKED(vp): Remove the for some time unused return value
  LK_EXCLOTHER.  Mark this operation as "diagnostic only".
  Making a lock decision based on this operation is no longer allowed.

Discussed on tech-kern.

Revision 1.57 / (download) - annotate - [select for diffs], Fri Jan 8 11:35:09 2010 UTC (3 years, 4 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base1, uebayasi-xip-base
Branch point for: uebayasi-xip, rmind-uvmplock
Changes since 1.56: +4 -4 lines
Diff to previous 1.56 (colored)

The VATTR_NULL/VREF/VHOLD/HOLDRELE() macros lost their will to live
years ago when the kernel was modified to not alter ABI based on
DIAGNOSTIC, and now just call the respective function interfaces
(in lowercase).  Plenty of mix'n match upper/lowercase has creeped
into the tree since then.  Nuke the macros and convert all callsites
to lowercase.

no functional change

Revision 1.56 / (download) - annotate - [select for diffs], Tue Jan 5 13:30:11 2010 UTC (3 years, 4 months ago) by mbalmer
Branch: MAIN
Changes since 1.55: +4 -4 lines
Diff to previous 1.55 (colored)

Remove extra semicolons.

Revision 1.55 / (download) - annotate - [select for diffs], Mon Sep 14 21:10:44 2009 UTC (3 years, 8 months ago) by reinoud
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, matt-premerge-20091211, jym-xensuspend-nbase
Changes since 1.54: +16 -9 lines
Diff to previous 1.54 (colored)

Rework simplistic UBC flushing. Recent changes to genfs made the old flush
system generate heaps of odd allocations since the end of write request was
overwritten by the start of the second resulting in another relocation.

Also added a full flush of the file on a VOP_CLOSE(). This automatically
flushes file tails to disc.

Revision 1.54 / (download) - annotate - [select for diffs], Thu Jul 30 12:13:51 2009 UTC (3 years, 9 months ago) by reinoud
Branch: MAIN
CVS Tags: yamt-nfs-mp-base7
Changes since 1.53: +4 -4 lines
Diff to previous 1.53 (colored)

Fix uid/gid check; it was checking if the old values would fit in 32 bits
instead of checking if the new values would.

Revision 1.53 / (download) - annotate - [select for diffs], Mon Jul 27 13:20:41 2009 UTC (3 years, 9 months ago) by reinoud
Branch: MAIN
Changes since 1.52: +6 -3 lines
Diff to previous 1.52 (colored)

System nodes are not written out on becomming inactive; they should be written
out before automatically.

However, when dealing with faulty discs that fail to mount, system nodes are
of course not written out and thus may still be marked dirty, if only due to
access. Especially on sequential media this gave rise to panics on reading
trackinfo since the write track section had not yet been initialised.

Revision 1.52 / (download) - annotate - [select for diffs], Wed Jul 8 14:46:55 2009 UTC (3 years, 10 months ago) by reinoud
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6, jymxensuspend-base
Changes since 1.51: +4 -4 lines
Diff to previous 1.51 (colored)

Since OSTA has not defined a good set of flags to cover our flags, its not
usefull to implement chflags(). Instead ignore it for now since the error
codes might confuse esp. gui's.

Revision 1.51 / (download) - annotate - [select for diffs], Tue Jul 7 10:23:36 2009 UTC (3 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.50: +8 -8 lines
Diff to previous 1.50 (colored)

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.

Revision 1.50 / (download) - annotate - [select for diffs], Mon Jul 6 17:06:57 2009 UTC (3 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.49: +3 -4 lines
Diff to previous 1.49 (colored)

Make source prettier

Revision 1.49 / (download) - annotate - [select for diffs], Fri Jul 3 23:14:11 2009 UTC (3 years, 10 months ago) by pgoyette
Branch: MAIN
Changes since 1.48: +4 -4 lines
Diff to previous 1.48 (colored)

Pass the vp arg to udf_check_possible() so we can access its v_mount
member.

XXX No idea if this is the right solution to this problem, but it does
XXX at least allow thebuild to continue.  The original committed should
XXX verify that this does what was intended!

(Hello again, Elad)

Revision 1.48 / (download) - annotate - [select for diffs], Fri Jul 3 21:17:41 2009 UTC (3 years, 10 months ago) by elad
Branch: MAIN
Changes since 1.47: +45 -24 lines
Diff to previous 1.47 (colored)

Where possible, extract the file-system's access() routine to two internal
functions: the first checking if the operation is possible (regardless of
permissions), the second checking file-system permissions, ACLs, etc.

Mailing list reference:

	http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005311.html

Revision 1.47 / (download) - annotate - [select for diffs], Thu Jun 25 17:16:33 2009 UTC (3 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.46: +102 -36 lines
Diff to previous 1.46 (colored)

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.

Revision 1.46 / (download) - annotate - [select for diffs], Wed Jun 24 17:09:13 2009 UTC (3 years, 11 months ago) by reinoud
Branch: MAIN
Changes since 1.45: +9 -2 lines
Diff to previous 1.45 (colored)

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.

Revision 1.45 / (download) - annotate - [select for diffs], Tue Jun 23 20:09:07 2009 UTC (3 years, 11 months ago) by reinoud
Branch: MAIN
Changes since 1.44: +76 -7 lines
Diff to previous 1.44 (colored)

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.

Revision 1.44 / (download) - annotate - [select for diffs], Tue Jun 23 19:36:39 2009 UTC (3 years, 11 months ago) by elad
Branch: MAIN
Changes since 1.43: +4 -4 lines
Diff to previous 1.43 (colored)

Move the implementation of vaccess() to genfs_can_access(), in line with
the other routines of the same spirit.

Adjust file-system code to use it.

Keep vaccess() for KPI compatibility and to keep element of least
surprise. A "diagnostic" message warning that vaccess() is deprecated will
be printed when it's used (obviously, only in DIAGNOSTIC kernels).

No objections on tech-kern@:

	http://mail-index.netbsd.org/tech-kern/2009/06/21/msg005310.html

Revision 1.43 / (download) - annotate - [select for diffs], Thu Jun 18 15:51:44 2009 UTC (3 years, 11 months ago) by reinoud
Branch: MAIN
Changes since 1.42: +3 -2 lines
Diff to previous 1.42 (colored)

Add overlooked `cred' declaration in udf_write() when i committed the catchup
patches.

Revision 1.42 / (download) - annotate - [select for diffs], Thu Jun 18 15:15:10 2009 UTC (3 years, 11 months ago) by reinoud
Branch: MAIN
Changes since 1.41: +3 -4 lines
Diff to previous 1.41 (colored)

Pass-on credentials to size reversal on aborted write due to error. It could
be that in the future this credentials need to be changed to allways-allow
since its an reverting-on-error behaviour.

Revision 1.41 / (download) - annotate - [select for diffs], Thu May 7 19:30:30 2009 UTC (4 years ago) by elad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base5, yamt-nfs-mp-base4, jym-xensuspend-base
Changes since 1.40: +6 -17 lines
Diff to previous 1.40 (colored)

Extract the open-coded authorization logic for chtimes() from various
file-systems and put it in a single function, genfs_can_chtimes().

This also makes UDF follow the same policy as all other file-systems.

Mailing list reference:

	http://mail-index.netbsd.org/tech-kern/2009/04/27/msg004951.html

Revision 1.40 / (download) - annotate - [select for diffs], Wed Apr 22 22:57:09 2009 UTC (4 years, 1 month ago) by elad
Branch: MAIN
CVS Tags: yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base
Changes since 1.39: +4 -4 lines
Diff to previous 1.39 (colored)

Per discussion on tech-kern@:

  - Replace use of label/goto with returns

  - Rename, change prototype of, and move functions from vfs_subr.c to
    genfs_vnops.c

Revision 1.39 / (download) - annotate - [select for diffs], Mon Apr 20 18:06:26 2009 UTC (4 years, 1 month ago) by elad
Branch: MAIN
Changes since 1.38: +12 -43 lines
Diff to previous 1.38 (colored)

Refactor some duplicated file-system code.

Proposed and received no objections on tech-kern@:

	http://mail-index.netbsd.org/tech-kern/2009/04/18/msg004843.html

Revision 1.38 / (download) - annotate - [select for diffs], Fri Mar 20 23:06:52 2009 UTC (4 years, 2 months ago) by reinoud
Branch: MAIN
Changes since 1.37: +5 -8 lines
Diff to previous 1.37 (colored)

Fix panic due to memory leak on symlink creation. A test copy with 3000+
symlinks could get the machine down.

Revision 1.37 / (download) - annotate - [select for diffs], Sat Mar 14 14:46:09 2009 UTC (4 years, 2 months ago) by dsl
Branch: MAIN
Changes since 1.36: +3 -3 lines
Diff to previous 1.36 (colored)

Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.

Revision 1.36 / (download) - annotate - [select for diffs], Wed Feb 11 13:08:08 2009 UTC (4 years, 3 months ago) by reinoud
Branch: MAIN
CVS Tags: nick-hppapmap-base2
Changes since 1.35: +13 -7 lines
Diff to previous 1.35 (colored)

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.

Revision 1.35 / (download) - annotate - [select for diffs], Tue Feb 10 21:24:27 2009 UTC (4 years, 3 months ago) by reinoud
Branch: MAIN
Changes since 1.34: +16 -3 lines
Diff to previous 1.34 (colored)

Add simplistic UBC async flushing as other FS's seem to do. Its a clutch and
needs to be addressed in UBC properly.

Revision 1.34 / (download) - annotate - [select for diffs], Tue Dec 16 14:28:34 2008 UTC (4 years, 5 months ago) by reinoud
Branch: MAIN
CVS Tags: mjf-devfs2-base
Branch point for: jym-xensuspend
Changes since 1.33: +4 -5 lines
Diff to previous 1.33 (colored)

Fix endless loop occuring on empty directories listing on 512 bytes/sector
media like harddiscs. Also provide provide a `safety net' on readdir so it
will signal EOF when its requested an entry outside the directory.

Revision 1.33 / (download) - annotate - [select for diffs], Tue Dec 16 10:30:19 2008 UTC (4 years, 5 months ago) by reinoud
Branch: MAIN
Changes since 1.32: +11 -8 lines
Diff to previous 1.32 (colored)

Elaborate SYNC debug messages and rename some debug messages to a more
proper category.

Revision 1.32 / (download) - annotate - [select for diffs], Mon Dec 1 14:19:01 2008 UTC (4 years, 5 months ago) by reinoud
Branch: MAIN
CVS Tags: haad-nbase2, haad-dm-base2, haad-dm-base, ad-audiomp2-base, ad-audiomp2
Changes since 1.31: +4 -4 lines
Diff to previous 1.31 (colored)

Split uid/gid remapping code to be independent of eachother.

Revision 1.31 / (download) - annotate - [select for diffs], Wed Nov 26 20:17:33 2008 UTC (4 years, 5 months ago) by pooka
Branch: MAIN
Changes since 1.30: +7 -16 lines
Diff to previous 1.30 (colored)

Rototill all remaining file systems to use ubc_uiomove() instead
of the ubc_alloc() - uiomove() - ubc_release() dance.

Revision 1.30 / (download) - annotate - [select for diffs], Thu Jul 17 19:10:22 2008 UTC (4 years, 10 months ago) by reinoud
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, simonb-wapbl-nbase, simonb-wapbl-base, netbsd-5-base, matt-mips64-base2, haad-dm-base1
Branch point for: nick-hppapmap, netbsd-5
Changes since 1.29: +13 -5 lines
Diff to previous 1.29 (colored)

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)

Revision 1.29 / (download) - annotate - [select for diffs], Thu Jul 17 11:00:29 2008 UTC (4 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored)

Since the rename logic now locks its source directory too, we ought to
unlock the source directory again on exit. The stub that doesn't allow
cross directory renames for now jumped to the wrong exit point and thus
left a locked directory node that paniced on next locking.

Revision 1.28 / (download) - annotate - [select for diffs], Tue Jul 15 15:49:05 2008 UTC (4 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.27: +13 -8 lines
Diff to previous 1.27 (colored)

Keep the directory to read '..' from locked until its dirent is read and
its location is extracted.

Also lock the source directory so its contents can safely be changed...
patch from tmpfs.

Revision 1.27 / (download) - annotate - [select for diffs], Thu Jul 10 17:38:31 2008 UTC (4 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.26: +7 -7 lines
Diff to previous 1.26 (colored)

Fix chtimes permission checking. This sanitised version is hopefully DTRT.

Revision 1.26 / (download) - annotate - [select for diffs], Thu Jul 10 15:29:51 2008 UTC (4 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.25: +42 -14 lines
Diff to previous 1.25 (colored)

Allow the renaming of directories *within* their current directory. No
cross-directory renaming is allowed yet.

Revision 1.25 / (download) - annotate - [select for diffs], Thu Jul 10 14:16:02 2008 UTC (4 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.24: +5 -5 lines
Diff to previous 1.24 (colored)

Clarifying comments

Revision 1.24 / (download) - annotate - [select for diffs], Mon Jul 7 18:45:27 2008 UTC (4 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.23: +11 -2 lines
Diff to previous 1.23 (colored)

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.

Revision 1.23 / (download) - annotate - [select for diffs], Tue Jun 24 15:57:13 2008 UTC (4 years, 11 months ago) by reinoud
Branch: MAIN
Branch point for: haad-dm
Changes since 1.22: +9 -5 lines
Diff to previous 1.22 (colored)

Make readsymlink bug-tolerant to MacOS X symlink construction bug. It puts
the name ".." on a parent path component. To prevent other similar errors,
name length checking is not done but the passed name that shouldn't be
passed is ignored.

Revision 1.22 / (download) - annotate - [select for diffs], Tue Jun 24 15:42:07 2008 UTC (4 years, 11 months ago) by reinoud
Branch: MAIN
Changes since 1.21: +6 -2 lines
Diff to previous 1.21 (colored)

We are not allowed zero length names in softlinks.

Revision 1.21 / (download) - annotate - [select for diffs], Tue Jun 24 15:35:57 2008 UTC (4 years, 11 months ago) by reinoud
Branch: MAIN
Changes since 1.20: +18 -5 lines
Diff to previous 1.20 (colored)

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.

Revision 1.20 / (download) - annotate - [select for diffs], Wed Jun 18 21:23:32 2008 UTC (4 years, 11 months ago) by reinoud
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-1, wrstuden-revivesa-base
Changes since 1.19: +12 -26 lines
Diff to previous 1.19 (colored)

Cleanup file access,modification,attribute and birthtime setting of files
and make the modification time when set never older than the creation time.

Revision 1.19 / (download) - annotate - [select for diffs], Mon May 19 20:12:36 2008 UTC (5 years ago) by reinoud
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, hpcarm-cleanup-nbase
Branch point for: simonb-wapbl
Changes since 1.18: +4 -3 lines
Diff to previous 1.18 (colored)

Implement wide char support for UDF by properly implementing unicode-16 to
UTF-8 like cd9660 and ntfs already do.

Revision 1.18 / (download) - annotate - [select for diffs], Wed May 14 16:49:48 2008 UTC (5 years ago) by reinoud
Branch: MAIN
CVS Tags: yamt-pf42-base2, yamt-nfs-mp-base2
Changes since 1.17: +1138 -208 lines
Diff to previous 1.17 (colored)

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.

Revision 1.17 / (download) - annotate - [select for diffs], Fri Jan 25 14:32:14 2008 UTC (5 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base, ad-socklock-base1
Branch point for: yamt-pf42, yamt-nfs-mp, wrstuden-revivesa, mjf-devfs2
Changes since 1.16: +2 -3 lines
Diff to previous 1.16 (colored)

Remove VOP_LEASE. Discussed on tech-kern.

Revision 1.16 / (download) - annotate - [select for diffs], Thu Jan 17 10:39:14 2008 UTC (5 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: bouyer-xeni386-nbase, bouyer-xeni386-base
Changes since 1.15: +3 -6 lines
Diff to previous 1.15 (colored)

Fix dodgy tests of v_usecount.

Revision 1.15 / (download) - annotate - [select for diffs], Wed Jan 2 11:48:47 2008 UTC (5 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: matt-armv6-base
Changes since 1.14: +4 -4 lines
Diff to previous 1.14 (colored)

Merge vmlocking2 to head.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Dec 11 12:05:28 2007 UTC (5 years, 5 months ago) by lukem
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, vmlocking2-base3, cube-autoconf-base, cube-autoconf
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 (colored)

use __KERNEL_RCSID() instead of __RCSID()

Revision 1.13 / (download) - annotate - [select for diffs], Mon Nov 26 19:01:57 2007 UTC (5 years, 5 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-kmem-base, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base
Branch point for: yamt-kmem, vmlocking2, bouyer-xeni386
Changes since 1.12: +4 -5 lines
Diff to previous 1.12 (colored)

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

Revision 1.12 / (download) - annotate - [select for diffs], Mon Oct 8 17:01:43 2007 UTC (5 years, 7 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, vmlocking-base, jmcneill-base, bouyer-xenamd64-base2, bouyer-xenamd64-base, bouyer-xenamd64
Branch point for: mjf-devfs
Changes since 1.11: +3 -3 lines
Diff to previous 1.11 (colored)

Merge from vmlocking: fix dodgy use of VOP_ISLOCKED().

Revision 1.11 / (download) - annotate - [select for diffs], Mon Sep 24 00:42:15 2007 UTC (5 years, 8 months ago) by rumble
Branch: MAIN
CVS Tags: yamt-x86pmap-base2
Changes since 1.10: +18 -16 lines
Diff to previous 1.10 (colored)

Avoid stack allocation of large dirent structures in foo_readdir().

Revision 1.10 / (download) - annotate - [select for diffs], Sun Apr 29 20:23:36 2007 UTC (6 years ago) by msaitoh
Branch: MAIN
CVS Tags: yamt-x86pmap-base, yamt-idlelwp-base8, nick-csl-alignment-base5, nick-csl-alignment-base, nick-csl-alignment, mjf-ufs-trans-base, matt-mips64-base, matt-mips64, hpcarm-cleanup
Branch point for: yamt-x86pmap, matt-armv6, jmcneill-pm
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored)

fix typos

Revision 1.9 / (download) - annotate - [select for diffs], Thu Jan 4 04:15:43 2007 UTC (6 years, 4 months ago) by reinoud
Branch: MAIN
CVS Tags: thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup, post-newlock2-merge, newlock2-nbase, newlock2-base, ad-audiomp-base, ad-audiomp
Branch point for: yamt-idlelwp, vmlocking, mjf-ufs-trans
Changes since 1.8: +3 -3 lines
Diff to previous 1.8 (colored)

Add UDF_ICB_FILETYPE_REALTIME type as found on UDF 2.50 discs. Also revert
a multiplication order to enforce 64 bit math.

Revision 1.8 / (download) - annotate - [select for diffs], Sat Dec 9 16:11:51 2006 UTC (6 years, 5 months ago) by chs
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3
Changes since 1.7: +5 -20 lines
Diff to previous 1.7 (colored)

a smorgasbord of improvements to vnode locking and path lookup:
 - LOCKPARENT is no longer relevant for lookup(), relookup() or VOP_LOOKUP().
   these now always return the parent vnode locked.  namei() works as before.
   lookup() and various other paths no longer acquire vnode locks in the
   wrong order via vrele().  fixes PR 32535.
   as a nice side effect, path lookup is also up to 25% faster.
 - the above allows us to get rid of PDIRUNLOCK.
 - also get rid of WANTPARENT (just use LOCKPARENT and unlock it).
 - remove an assumption in layer_node_find() that all file systems implement
   a recursive VOP_LOCK() (unionfs doesn't).
 - require that all file systems supply vfs_vptofh and vfs_fhtovp routines.
   fill in eopnotsupp() for file systems that don't support being exported
   and remove the checks for NULL.  (layerfs calls these without checking.)
 - in union_lookup1(), don't change refcounts in the ISDOTDOT case, just
   adjust which vnode is locked.  fixes PR 33374.
 - apply fixes for ufs_rename() from ufs_vnops.c rev. 1.61 to ext2fs_rename().

Revision 1.7 / (download) - annotate - [select for diffs], Thu Oct 12 01:32:14 2006 UTC (6 years, 7 months ago) by christos
Branch: MAIN
CVS Tags: yamt-splraiseipl-base2, netbsd-4-base
Branch point for: netbsd-4
Changes since 1.6: +3 -3 lines
Diff to previous 1.6 (colored)

- sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386

Revision 1.6 / (download) - annotate - [select for diffs], Mon Jun 12 00:20:21 2006 UTC (6 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: yamt-splraiseipl-base, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, rpaulo-netinet-merge-pcb-base, gdamore-uart-base, gdamore-uart, chap-midi-nbase, chap-midi-base, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-splraiseipl, yamt-lazymbuf, rpaulo-netinet-merge-pcb, newlock2
Changes since 1.5: +26 -26 lines
Diff to previous 1.5 (colored)

remove ; from };

Revision 1.5 / (download) - annotate - [select for diffs], Sun May 14 21:31:52 2006 UTC (7 years ago) by elad
Branch: MAIN
CVS Tags: yamt-pdpolicy-base5, simonb-timecounters-base
Branch point for: chap-midi
Changes since 1.4: +14 -14 lines
Diff to previous 1.4 (colored)

integrate kauth.

Revision 1.4 / (download) - annotate - [select for diffs], Thu May 11 01:12:21 2006 UTC (7 years ago) by mrg
Branch: MAIN
CVS Tags: elad-kernelauth-base
Changes since 1.3: +5 -5 lines
Diff to previous 1.3 (colored)

quell GCC 4.1 uninitialised variable warnings.

XXX: we should audit the tree for which old ones are no longer needed
after getting the older compilers out of the tree..

Revision 1.3 / (download) - annotate - [select for diffs], Tue Apr 25 02:19:31 2006 UTC (7 years, 1 month ago) by snj
Branch: MAIN
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored)

s/allready/already/

Revision 1.2 / (download) - annotate - [select for diffs], Thu Feb 2 15:38:35 2006 UTC (7 years, 3 months ago) by reinoud
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, peter-altq-base
Branch point for: yamt-uio_vmspace, yamt-pdpolicy, simonb-timecounters, peter-altq, elad-kernelauth
Changes since 1.1: +2 -2 lines
Diff to previous 1.1 (colored)

Fix $NetBSD$ tags. (sorry)

Revision 1.1 / (download) - annotate - [select for diffs], Thu Feb 2 15:19:16 2006 UTC (7 years, 3 months ago) by reinoud
Branch: MAIN

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.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>