Home | History | Annotate | Download | only in adosfs
History log of /src/sys/fs/adosfs/adutil.c
RevisionDateAuthorComments
 1.17  05-Aug-2014  hannken Change adosfs from hashlist to vcache.
- point ap->block to real file header block for hard links.
 1.16  27-Feb-2014  hannken branches: 1.16.2;
The current implementation of vn_lock() is racy. Modification of
the vnode operations vector for active vnodes is unsafe because it
is not known whether deadfs or the original file system will be
called.

- Pass down LK_RETRY to the lock operation (hint for deadfs only).

- Change deadfs lock operation to return ENOENT if LK_RETRY is unset.

- Change all other lock operations to check for dead vnode once
the vnode is locked and unlock and return ENOENT in this case.

With these changes in place vnode lock operations will never succeed
after vclean() has marked the vnode as VI_XLOCK and before vclean()
has changed the operations vector.

Adresses PR kern/37706 (Forced unmount of file systems is unsafe)

Discussed on tech-kern.

Welcome to 6.99.33
 1.15  12-Jun-2011  rmind branches: 1.15.2; 1.15.12; 1.15.16;
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.14  23-May-2011  rmind branches: 1.14.2;
Convert some simple_lock(9) uses to mutex(9) and malloc(9) to kmem(9).
 1.13  21-Jul-2010  hannken branches: 1.13.2;
Make holding v_interlock mandatory for callers of vget().

Announced some time ago on tech-kern.
 1.12  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.11  14-Mar-2009  dsl branches: 1.11.2; 1.11.4;
ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
 1.10  14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.9  14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.8  30-Jan-2008  ad branches: 1.8.10; 1.8.18; 1.8.24;
Replace struct lock on vnodes with a simpler lock object built on
krwlock_t. This is a step towards removing lockmgr and simplifying
vnode locking. Discussed on tech-kern.
 1.7  04-Jan-2008  ad Start detangling lock.h from intr.h. This is likely to cause short term
breakage, but the mess of dependencies has been regularly breaking the
build recently anyhow.
 1.6  02-Jan-2008  ad Merge vmlocking2 to head.
 1.5  10-Oct-2007  ad branches: 1.5.4; 1.5.6; 1.5.10;
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.4  11-Dec-2005  christos branches: 1.4.30; 1.4.44; 1.4.46; 1.4.48;
merge ktrace-lwp.
 1.3  26-Feb-2005  perry branches: 1.3.4;
nuke trailing whitespace
 1.2  27-Jan-2003  lonewolf branches: 1.2.2; 1.2.10; 1.2.12;
Fix compiler warnings after 64bit daddr_t change.
 1.1  23-Dec-2002  jdolecek branches: 1.1.2;
move adosfs files from sys/adosfs to sys/fs/adosfs
 1.1.2.2  29-Dec-2002  thorpej With with HEAD.
 1.1.2.1  23-Dec-2002  thorpej file adutil.c was added on branch nathanw_sa on 2002-12-29 19:55:27 +0000
 1.2.12.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.2.10.1  29-Apr-2005  kent sync with -current
 1.2.2.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.2.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.2.2.2  24-Aug-2004  skrll Undo part of the ktrace/lwp changes. In particular:
* Remove the "lwp *" argument that was added to vget(). Turns out
that nothing actually used it!
* Remove the "lwp *" arguments that were added to VFS_ROOT(), VFS_VGET(),
and VFS_FHTOVP(); all they did was pass it to vget() (which, as noted
above, didn't use it).
* Remove all of the "lwp *" arguments to internal functions that were added
just to appease the above.
 1.2.2.1  03-Jul-2003  wrstuden LWP-ify adosfs. Also remove unused variable size from adosfs_mount().

Note: These changes suffer from the same cnp->cn_lwp issue noted for
ufs. They will need to get fixed at the same time as ufs. The fix is to
add struct lwp * as a parameter to some VOPs.
 1.3.4.3  04-Feb-2008  yamt sync with head.
 1.3.4.2  21-Jan-2008  yamt sync with head
 1.3.4.1  27-Oct-2007  yamt sync with head.
 1.4.48.1  14-Oct-2007  yamt sync with head.
 1.4.46.3  23-Mar-2008  matt sync with HEAD
 1.4.46.2  09-Jan-2008  matt sync with HEAD
 1.4.46.1  06-Nov-2007  matt sync with HEAD
 1.4.44.1  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.4.30.1  20-Aug-2007  ad Sync with HEAD.
 1.5.10.2  08-Jan-2008  bouyer Sync with HEAD
 1.5.10.1  02-Jan-2008  bouyer Sync with HEAD
 1.5.6.1  04-Dec-2007  ad Pull the vmlocking changes into a new branch.
 1.5.4.1  18-Feb-2008  mjf Sync with HEAD.
 1.8.24.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.8.18.1  28-Apr-2009  skrll Sync with HEAD.
 1.8.10.2  11-Aug-2010  yamt sync with head.
 1.8.10.1  04-May-2009  yamt sync with head.
 1.11.4.4  31-May-2011  rmind sync with head
 1.11.4.3  05-Mar-2011  rmind sync with head
 1.11.4.2  03-Jul-2010  rmind sync with head
 1.11.4.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.11.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.13.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.14.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.15.16.1  18-May-2014  rmind sync with head
 1.15.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.2.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.16.2.1  10-Aug-2014  tls Rebase.

RSS XML Feed