Home | History | Annotate | Download | only in ext2fs
History log of /src/sys/ufs/ext2fs/ext2fs_inode.c
RevisionDateAuthorComments
 1.91  26-Aug-2023  riastradh ext2fs: Nix trailing whitespace.
 1.90  17-Aug-2021  andvar fix multiplei repetitive typos in comments, messages and documentation. mainly because copy paste code big amount of files are affected.
 1.89  23-Apr-2020  ad PR kern/54759 (vm.ubc_direct deadlock when read()/write() into mapping of itself)

- Add new flag UBC_ISMAPPED which tells ubc_uiomove() the object is mmap()ed
somewhere. Use it to decide whether to do direct-mapped copy, rather than
poking around directly in the vnode in ubc_uiomove(), which is ugly and
doesn't work for tmpfs. It would be nicer to contain all this in UVM but
the filesystem provides the needed locking here (VV_MAPPED) and to
reinvent that would suck more.

- Rename UBC_UNMAP_FLAG() to UBC_VNODE_FLAGS(). Pass in UBC_ISMAPPED where
appropriate.
 1.88  26-May-2017  riastradh branches: 1.88.20;
Eliminate crusty debugging sludge.

We have a mostly sane vnode lifecycle now. If this needs debugging,
it should be done once at the call site of VOP_RECLAIM.
 1.87  11-Apr-2017  riastradh Make VOP_INACTIVE preserve vnode lock on return.

Discussed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2017/04/01/msg021751.html

Ride 7.99.68, a bumpy bus of incremental vfs improvements!
 1.86  14-Aug-2016  jdolecek branches: 1.86.2;
switch code to use the EXT2_HAS_{COMPAT|ROCOMPAT|INCOMPAT}_FEATURE() macros instead of open coding the checks
 1.85  13-Aug-2016  christos KNF, no functional changes...
 1.84  04-Aug-2016  jdolecek rename struct ext2fs_dinode attribute e2di_dacl to correct
e2di_size_high; even Linux ext2 filesystem code actually uses it
unconditionally this way and ext4 code finally also calls it that way
in their struct definition too; if there was any trace of this for other
purpose it's long gone
 1.83  03-Aug-2016  jdolecek support arbitrary ext3/ext4 inode size, add all the new ext4 fields ext2fs_dinode, and add support for loading the extra inode data
 1.82  28-Mar-2015  maxv branches: 1.82.2;
Remove the 'cred' argument from bread(). Remove a now unused var in
ffs_snapshot.c. Update the man page accordingly.

ok hannken@
 1.81  23-Jun-2013  dholland branches: 1.81.10;
Stick ffs_, ext2_, chfs_, filecore_, cd9660_, or mfs_ in front of
the following symbols so as to disambiguate fully. (Christos already
did the lfs ones.)

lblkno
lblktosize
lfragtosize
numfrags
blkroundup
fragroundup
 1.80  23-Jun-2013  dholland fsbtodb() -> FFS_FSBTODB(), EXT2_FSBTODB(), or MFS_FSBTODB()
dbtofsb() -> FFS_DBTOFSB() or EXT2_DBTOFSB()

(Christos already did the lfs ones a few days back)
 1.79  19-Jun-2013  dholland Rename ambiguous macros:
MAXDIRSIZE -> UFS_MAXDIRSIZE or LFS_MAXDIRSIZE
NINDIR -> FFS_NINDIR, EXT2_NINDIR, LFS_NINDIR, or MFS_NINDIR
INOPB -> FFS_INOPB, LFS_INOPB
INOPF -> FFS_INOPF, LFS_INOPF
blksize -> ffs_blksize, ext2_blksize, or lfs_blksize
sblksize -> ffs_blksize

These are not the only ambiguously defined filesystem macros, of
course, there's a pile more. I may not have found all the ambiguous
definitions of blksize(), too, as there are a lot of other things
called 'blksize' in the system.
 1.78  22-Jan-2013  dholland Stuff UFS_ in front of a few of ufs's symbols to reduce namespace
pollution. Specifically:
ROOTINO -> UFS_ROOTINO
WINO -> UFS_WINO
NXADDR -> UFS_NXADDR
NDADDR -> UFS_NDADDR
NIADDR -> UFS_NIADDR
MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN
MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)

Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have
the same values in ext2fs and ffs.

No functional change intended.
 1.77  20-Dec-2012  hannken Change bread() and breadn() to never return a buffer on
error and modify all callers to not brelse() on error.

Welcome to 6.99.16

PR kern/46282 (6.0_BETA crash: msdosfs_bmap -> pcbmap -> bread -> bio_doread)
 1.76  21-Nov-2012  jakllsch Write support for the Ext4 Read-only Compatible Feature "huge_file".

Primarily, this feature extends the inode block count field to 48 bits.
Additionally, this feature allows this field to be represented in file
system block size units rather than DEV_BSIZE units.
 1.75  27-Jan-2012  para branches: 1.75.6;
converting readdir in ffs ext2fs from malloc(9) to kmem(9)
while there allocate ufs mount structs from kmem(9) too
preceding kmem-vmem-pool-patch

releng@ acknowledged
 1.74  16-Jun-2011  hannken branches: 1.74.2; 1.74.6;
Rename uvm_vnp_zerorange(struct vnode *, off_t, size_t) to
ubc_zerorange(struct uvm_object *, off_t, size_t, int) changing
the first argument to an uvm_object and adding a flags argument.

Modify tmpfs_reg_resize() to zero the backing store (aobj) instead
of the vnode. Ubc_purge() no longer panics when unmounting tmpfs.

Keep uvm_vnp_zerorange() until the next kernel version bump.
 1.73  28-Jul-2010  hannken branches: 1.73.6;
ext2fs,ffs: free on disk inodes in the reclaim routine.
Remove now unneeded vnode flag VI_FREEING.

Welcome to 5.99.38.

Ok: Andrew Doran <ad@netbsd.org>
 1.72  24-Jun-2010  hannken 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.
 1.71  07-Feb-2010  bouyer branches: 1.71.2; 1.71.4;
- ufs_balloc_range(): on error, only PG_RELEASED the pages that were
allocated to extend the file to the new size. Releasing all pages
may release pages that contains previously-written data not yet flushed
to disk. Should fix PR kern/35704
- {ffs,lfs,ext2fs}_truncate(): Even if the inode's size is the same as
the new length, call uvm_vnp_setsize(). *_truncate() may have been
called by *_write() in the error path (e.g. block allocation failure
because of quota of file system full), and at this point v_writesize
has been set to the desired size of the file and not reverted to the
old size. Not adjusting v_writesize to the real size cause
genfs_do_io() to write to disk past the real end of the file.
 1.70  19-Oct-2009  bouyer Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen
for the booring work !
 1.69  12-Sep-2009  tsutsui Migrate from u_intNN_t to uintNN_t.
 1.68  01-Mar-2009  christos PR/40936: Frederik Sausmikat: ext2fs: add support for inodes > 128 bytes
 1.67  17-Dec-2008  cegger branches: 1.67.2;
kill MALLOC and FREE macros.
 1.66  16-May-2008  hannken branches: 1.66.6; 1.66.8; 1.66.14;
Make sure all cached buffers with valid, not yet written data have been
run through copy-on-write. Call fscow_run() with valid data where possible.

The LP_UFSCOW hack is no longer needed to protect ffs_copyonwrite() against
endless recursion.

- Add a flag B_MODIFY to bread(), breada() and breadn(). If set the caller
intends to modify the buffer returned.

- Always run copy-on-write on buffers returned from ffs_balloc().

- Add new function ffs_getblk() that gets a buffer, assigns a new blkno,
may clear the buffer and runs copy-on-write. Process possible errors
from getblk() or fscow_run(). Part of PR kern/38664.

Welcome to 4.99.63

Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
 1.65  27-Mar-2008  ad branches: 1.65.2; 1.65.4; 1.65.6;
Make rusage collection per-LWP and collate in the appropriate places.
cloned threads need a little bit more work but the locking needs to
be fixed first.
 1.64  09-Jan-2008  ad branches: 1.64.6;
Go back to freeing on disk inodes in the inactive routine. It would be
better not to do this, but it rules out potential side effects with softdep.
 1.63  02-Jan-2008  ad Merge vmlocking2 to head.
 1.62  08-Dec-2007  pooka branches: 1.62.4;
Remove cn_lwp from struct componentname. curlwp should be used
from on. The NDINIT() macro no longer takes the lwp parameter and
associates the credentials of the calling thread with the namei
structure.
 1.61  26-Nov-2007  pooka branches: 1.61.2;
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.60  08-Oct-2007  ad branches: 1.60.4;
Merge ffs locking & brelse changes from the vmlocking branch.
 1.59  05-Jun-2007  yamt branches: 1.59.6; 1.59.8; 1.59.10;
improve post-ubc file overwrite performance in common cases.
ie. when it's safe, actually overwrite blocks rather than doing
read-modify-write.

also fixes PR/33152 and PR/36303.
 1.58  07-Apr-2007  hannken Remove calls to now obsolete vn_start_write() and vn_finished_write().
 1.57  04-Mar-2007  christos branches: 1.57.2; 1.57.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.56  09-Dec-2006  chs branches: 1.56.2;
several ext2fs fixes provided by Barry Bouwsma:
- set ip->i_e2fs_dtime to time_second, not time_uptime.
- don't allow ipref to go negative
- fs->e2fs.e2fs_icount is a valid inode number, allow it.
 1.55  07-Jun-2006  kardel branches: 1.55.6; 1.55.8; 1.55.10;
merge FreeBSD timecounters from branch simonb-timecounters
- struct timeval time is gone
time.tv_sec -> time_second
- struct timeval mono_time is gone
mono_time.tv_sec -> time_uptime
- access to time via
{get,}{micro,nano,bin}time()
get* versions are fast but less precise
- support NTP nanokernel implementation (NTP API 4)
- further reading:
Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf
NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
 1.54  14-May-2006  elad branches: 1.54.2;
integrate kauth.
 1.53  17-Mar-2006  christos don't use MALLOC with a non-constant size; use malloc instead.
 1.52  11-Dec-2005  christos branches: 1.52.4; 1.52.6; 1.52.8; 1.52.10; 1.52.12;
merge ktrace-lwp.
 1.51  11-Nov-2005  yamt - ignore truncation for VCHR/VBLK/VFIFO as it used to be
before yamt-vop merge. PR/32049 from Atsushi Onoe.
- reject setattr which attempts to change size of VLNK/VSOCK.
 1.50  02-Nov-2005  yamt merge yamt-vop branch. remove following VOPs.

VOP_BLKATOFF
VOP_VALLOC
VOP_BALLOC
VOP_REALLOCBLKS
VOP_VFREE
VOP_TRUNCATE
VOP_UPDATE
 1.49  26-Sep-2005  yamt branches: 1.49.2;
always use nanotime rather than time.
it's bad to mix nanotime and time because it sometimes
make timestamps go backwards.
 1.48  12-Sep-2005  christos Use nanotime() to update the time fields in filesystems. Convert the code
from macros to real functions. Original patch and review from chuq.
Note: ext2fs only keeps seconds in the on-disk inode, and msdosfs does not
have enough precision for all fields, so this is not very useful for those
two.
 1.47  30-Aug-2005  xtraeme * Remove __P()
* Use ANSI function declarations on ext2fs and mfs
 1.46  28-Jun-2005  kml branches: 1.46.2;
Ensure that we change the size of the vnode at the same time as
we change the size of the inode, and use ext2fs_size uniformly.
This fixes a crash that occurs when I create a directory, then
move it, all on an ext2 filesystem.
 1.45  26-Feb-2005  perry nuke trailing whitespace
 1.44  09-Feb-2005  ws Add support for large files (>2GB).
Like Linux, automagically convert old filesystem to use this,
if they are already at revision 1.
For revision 0, just punt (unlike Linux; makes me a bit too nervous.)

There should be an option to fsck_ext2fs to upgrade revision 0 to revision 1.

Reviewd by Manuel (bouyer@).
 1.43  15-Aug-2004  mycroft branches: 1.43.4; 1.43.6;
Fixing age old cruft:
* Rather than using mnt_maxsymlinklen to indicate that a file systems returns
d_type fields(!), add a new internal flag, IMNT_DTYPE.

Add 3 new elements to ufsmount:
* um_maxsymlinklen, replaces mnt_maxsymlinklen (which never should have existed
in the first place).
* um_dirblksiz, which tracks the current directory block size, eliminating the
FS-specific checks littered throughout the code. This may be used later to
make the block size variable.
* um_maxfilesize, which is the maximum file size, possibly adjusted lower due
to implementation issues.

Sync some bug fixes from FFS into ext2fs, particularly:
* ffs_lookup.c 1.21, 1.28, 1.33, 1.48
* ffs_inode.c 1.43, 1.44, 1.45, 1.66, 1.67
* ffs_vnops.c 1.84, 1.85, 1.86

Clean up some crappy pointer frobnication.
 1.42  14-Aug-2004  mycroft Push atime/mtime updates even further -- into the reclaim path, so they happen
rarely in the normal case. (Note: This happens at reboot/shutdown time because
all file systems are unmounted.)

Also, for IN_MODIFY, use IN_ACCESSED, not IN_MODIFIED; otherwise "ls -l" of
your device node or FIFO would cause the time stamps to get written too
quickly.
 1.41  14-Aug-2004  mycroft Add a new flag, IN_MODIFY. This is like IN_UPDATE|IN_CHANGE, but unlike
setting those flags, it does not cause the inode to be written in the periodic
sync. This is used for writes to special files (devices and named pipes) and
FIFOs.

Do not preemptively sync updates to access times and modification times. They
are now updated in the inode only opportunistically, or when the file or device
is closed. (Really, it should be delayed beyond close, but this is enough to
help substantially with device nodes.)

And the most amusing part:
Trickle sync was broken on both FFS and ext2fs, in different ways. In FFS, the
periodic call to VFS_SYNC(MNT_LAZY) was still causing all file data to be
synced. In ext2fs, it was causing the metadata to *not* be synced. We now
only call VOP_UPDATE() on the node if we're doing MNT_LAZY. I've confirmed
that we do in fact trickle correctly now.
 1.40  22-Mar-2004  bouyer Fix disclaimer in my copyright. Pointed out by Thomas Klausner.
 1.39  25-Jan-2004  hannken Make VOP_STRATEGY(bp) a real VOP as discussed on tech-kern.

VOP_STRATEGY(bp) is replaced by one of two new functions:

- VOP_STRATEGY(vp, bp) Call the strategy routine of vp for bp.
- DEV_STRATEGY(bp) Call the d_strategy routine of bp->b_dev for bp.

DEV_STRATEGY(bp) is used only for block-to-block device situations.
 1.38  05-Nov-2003  hannken Clean up the usage of vn_start_write(). At least one occurence clobbered
previous error conditions.
If "(flags & (V_WAIT|V_PCATCH)) == V_WAIT" the return value is always zero.
Ignore the return value in these cases.

From Darrin B. Jewell.
 1.37  15-Oct-2003  hannken Add the gating of system calls that cause modifications to the underlying
file system.
The function vfs_write_suspend stops all new write operations to a file
system, allows any file system modifying system calls already in progress
to complete, then sync's the file system to disk and returns. The
function vfs_write_resume allows the suspended write operations to
complete.

From FreeBSD with slight modifications.

Approved by: Frank van der Linden <fvdl@netbsd.org>
 1.36  05-Oct-2003  bouyer Remove references to University of California from my copyright notices.
 1.35  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.34  29-Jun-2003  fvdl branches: 1.34.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.33  28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.32  02-Apr-2003  he In the inode, i_din.e2fs_din is now a pointer, so there is no longer
a need to take the address here.
 1.31  02-Apr-2003  fvdl Add support for UFS2. UFS2 is an enhanced FFS, adding support for
64 bit block pointers, extended attribute storage, and a few
other things.

This commit does not yet include the code to manipulate the extended
storage (for e.g. ACLs), this will be done later.

Originally written by Kirk McKusick and Network Associates Laboratories for
FreeBSD.
 1.30  25-Jan-2003  fvdl The oldblks and newblks arrays are used to store direct copies of
on-disk block pointers, so they should be int32_t. Error found
by Izumi Tsutsui.
 1.29  24-Jan-2003  fvdl Bump daddr_t to 64 bits. Replace it with int32_t in all places where
it was used on-disk, so that on-disk formats remain the same.
Remove ufs_daddr_t and ufs_lbn_t for the time being.
 1.28  26-Sep-2002  jdolecek use ufs_balloc_range() rather than local (mostly identical, but with some
bugs) ext2fs variant
 1.27  08-Nov-2001  lukem add RCSID
 1.26  06-Nov-2001  simonb Remove some bogus checks for unsigned variables < 0.
 1.25  26-Oct-2001  lukem remove #include <ufs/ufs/quota.h> where it was just to appease
<ufs/ufs/inode.h>, since the latter now includes the former. leave the former
in source that obviously uses specific bits of it (for completeness.)
 1.24  19-Jun-2001  wiz branches: 1.24.4; 1.24.8;
`accessible' only has one `a'.
 1.23  18-Feb-2001  chs branches: 1.23.2;
skip truncating a file to 0 before freeing it if it's already zero-length.
 1.22  07-Feb-2001  tsutsui Fix nested extern declaration of prtactive.
 1.21  27-Nov-2000  chs Initial integration of the Unified Buffer Cache project.
 1.20  28-Jun-2000  mrg remove include of <vm/vm.h> and <uvm/uvm_extern.h>
 1.19  30-May-2000  mycroft Adjust where IN_MODIFIED and IN_ACCESSED are cleared (as in the FFS code).
 1.18  29-May-2000  mycroft Pull in IN_ACCESSED changes and some MNT_LAZY `bug fixes' from FFS.
 1.17  28-May-2000  mycroft Pull in indirect block unwind code from FFS.
 1.16  28-May-2000  mycroft Add a new function to remove extra buffers when truncating a file. This is
more generic than the vinvalbuf(V_SAVEMETA) case, avoiding synchronous
operations when truncating to a non-zero length.
 1.15  13-May-2000  perseant branches: 1.15.2;
Change the sementics of the last parameter from a boolean ("waitfor") to
a set of flags ("flags"). Two flags are defined, UPDATE_WAIT and
UPDATE_DIROP.

Under the old semantics, VOP_UPDATE would block if waitfor were set,
under the assumption that directory operations should be done
synchronously. At least LFS and FFS+softdep do not make this
assumption; FFS+softdep got around the problem by enclosing all relevant
calls to VOP_UPDATE in a "if(!DOINGSOFTDEP(vp))", while LFS simply
ignored waitfor, one of the reasons why NFS-serving an LFS filesystem
did not work properly.

Under the new semantics, the UPDATE_DIROP flag is a hint to the
fs-specific update routine that the call comes from a dirop routine, and
should be wait for, or not, accordingly.

Closes PR#8996.
 1.14  30-Mar-2000  augustss Remove register declarations.
 1.13  24-Mar-1999  mrg branches: 1.13.4; 1.13.8; 1.13.14;
completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
 1.12  05-Mar-1999  mycroft Pass null pointers to VOP_UPDATE rather than having all the callers fetch the
current time themselves.
 1.11  05-Mar-1999  mycroft Permit the access and modify time pointers passed to VOP_UPDATE to be null,
meaning the current time.
 1.10  23-Oct-1998  thorpej For consistency w/ FFS/LFS, define EXT2_DINODE_SIZE, and use it instead
of pointer arithmetic and/or sizeof(struct ext2fs_dinode).
 1.9  29-Sep-1998  bouyer #include opt_uvm.h only if _KENREL and !_LKM
Make ext2fs_init() call ufs_init(). it was doing the init by itself,
testing for extern done != 0. This bug was hidden by the fact that
ext2fs_init() is called before ffs_init().
 1.8  09-Aug-1998  perry bzero->memset, bcopy->memcpy, bcmp->memcmp
 1.7  09-Jun-1998  mikel ffs_ -> ext2fs_ in warning; art@openbsd.org
 1.6  01-Mar-1998  fvdl Merge with Lite2 + local changes
 1.5  10-Feb-1998  mrg - add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.
 1.4  05-Feb-1998  mrg initial import of the new virtual memory system, UVM, into -current.

UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code. i provided some help
getting swap and paging working, and other bug fixes/ideas. chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the rest of the MI portion changes.

this will be KNF'd shortly. :-)
 1.3  09-Oct-1997  bouyer Add byte-swapping functions (bswap16, bswap32, bswap64) to libkern.
Only assembly version for i386 bswap16 and bswap32 for now (bswap64 uses
bswap32). Contribution of assembly versions of these are welcome.
Add byte-swapping of ext2fs metadata for big-endian systems.
Tested on i386 and sparc.
 1.2  04-Jul-1997  drochner branches: 1.2.2;
Don't cast 64bit (off_t) file sizes to vm_offset_t (32bit on many
architectures), truncate them intelligently instead.
The truncation is done centralized in vnode_pager.c.
This prevents from wrap-over effects when parts of large (>2^32 byte) files
are mmapped.
Don't allow to mmap above the numerical range of vm_offset_t.
This is considered a temporary solution until the vm system handles the
object sizes/offsets more cleanly.
 1.1  11-Jun-1997  bouyer The ext2fs layer, based on the ffs/ufs one. Uses a few functions from
sys/ufs/ufs/
 1.2.2.1  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.13.14.1  21-Dec-1999  wrstuden Initial commit of recent changes to make DEV_BSIZE go away.

Runs on i386, needs work on other arch's. Main kernel routines should be
fine, but a number of the stand programs need help.

cd, fd, ccd, wd, and sd have been updated. sd has been tested with non-512
byte block devices. vnd, raidframe, and lfs need work.

Non 2**n block support is automatic for LKM's and conditional for kernels
on "options NON_PO2_BLOCKS".
 1.13.8.4  12-Mar-2001  bouyer Sync with HEAD.
 1.13.8.3  11-Feb-2001  bouyer Sync with HEAD.
 1.13.8.2  08-Dec-2000  bouyer Sync with HEAD.
 1.13.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.13.4.2  06-Aug-1999  chs UBCify.
 1.13.4.1  11-Jul-1999  chs remove uvm_vnp_uncache(), it's no longer needed.
 1.15.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.23.2.6  18-Oct-2002  nathanw Catch up to -current.
 1.23.2.5  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.23.2.4  24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.23.2.3  14-Nov-2001  nathanw Catch up to -current.
 1.23.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.23.2.1  05-Mar-2001  nathanw Initial commit of scheduler activations and lightweight process support.
 1.24.8.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.24.4.2  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.24.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.34.2.10  11-Dec-2005  christos Sync with head.
 1.34.2.9  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.34.2.8  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.34.2.7  15-Feb-2005  skrll Sync with HEAD.
 1.34.2.6  27-Oct-2004  skrll Fix various comments that describe the argument structures
 1.34.2.5  21-Sep-2004  skrll Fix the sync with head I botched.
 1.34.2.4  18-Sep-2004  skrll Sync with HEAD.
 1.34.2.3  25-Aug-2004  skrll Sync with HEAD.
 1.34.2.2  03-Aug-2004  skrll Sync with HEAD
 1.34.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.43.6.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.43.6.1  12-Feb-2005  yamt sync with head.
 1.43.4.1  29-Apr-2005  kent sync with -current
 1.46.2.6  21-Jan-2008  yamt sync with head
 1.46.2.5  07-Dec-2007  yamt sync with head
 1.46.2.4  27-Oct-2007  yamt sync with head.
 1.46.2.3  03-Sep-2007  yamt sync with head.
 1.46.2.2  30-Dec-2006  yamt sync with head.
 1.46.2.1  21-Jun-2006  yamt sync with head.
 1.49.2.1  20-Oct-2005  yamt adapt ufs.
 1.52.12.2  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.52.12.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.52.10.3  06-May-2006  christos - Move kauth_cred_t declaration to <sys/types.h>
- Cleanup struct ucred; forward declarations that are unused.
- Don't include <sys/kauth.h> in any header, but include it in the c files
that need it.

Approved by core.
 1.52.10.2  19-Apr-2006  elad sync with head.
 1.52.10.1  08-Mar-2006  elad Adapt to kernel authorization KPI.
 1.52.8.3  26-Jun-2006  yamt sync with head.
 1.52.8.2  24-May-2006  yamt sync with head.
 1.52.8.1  01-Apr-2006  yamt sync with head.
 1.52.6.3  01-Jun-2006  kardel Sync with head.
 1.52.6.2  22-Apr-2006  simonb Sync with head.
 1.52.6.1  04-Feb-2006  simonb Adapt for timecounters: mostly use get*time() and use "time_second"
instead of "time.tv_sec".
 1.52.4.1  09-Sep-2006  rpaulo sync with head
 1.54.2.1  19-Jun-2006  chap Sync with head.
 1.55.10.1  12-Jan-2007  bouyer Pull up following revision(s) (requested by chs in ticket #346):
sys/ufs/ext2fs/ext2fs_inode.c: revision 1.56
sys/ufs/ext2fs/ext2fs_alloc.c: revision 1.33
several ext2fs fixes provided by Barry Bouwsma:
- set ip->i_e2fs_dtime to time_second, not time_uptime.
- don't allow ipref to go negative
- fs->e2fs.e2fs_icount is a valid inode number, allow it.
 1.55.8.1  10-Dec-2006  yamt sync with head.
 1.55.6.1  12-Jan-2007  ad Sync with head.
 1.56.2.2  15-Apr-2007  yamt sync with head.
 1.56.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.57.4.1  11-Jul-2007  mjf Sync with head.
 1.57.2.5  16-Sep-2007  ad - Checkpoint work in progress on the vnode lifecycle and reference counting
stuff. This makes it work properly without kernel_lock and fixes a few
quite old bugs. See vfs_subr.c 1.283.2.17 for details.

- Fix some problems with softdep. Unfortunately our softdep code appears
to have some longstanding bugs that cause it fail under stress test.
 1.57.2.4  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.57.2.3  09-Jun-2007  ad Sync with head.
 1.57.2.2  13-May-2007  ad - Pass the error number and residual count to biodone(), and let it handle
setting error indicators. Prepare to eliminate B_ERROR.
- Add a flag argument to brelse() to be set into the buf's flags, instead
of doing it directly. Typically used to set B_INVAL.
- Add a "struct cpu_info *" argument to kthread_create(), to be used to
create bound threads. Change "bool mpsafe" to "int flags".
- Allow exit of LWPs in the IDL state when (l != curlwp).
- More locking fixes & conversion to the new API.
 1.57.2.1  10-Apr-2007  ad Sync with head.
 1.59.10.1  14-Oct-2007  yamt sync with head.
 1.59.8.3  23-Mar-2008  matt sync with HEAD
 1.59.8.2  09-Jan-2008  matt sync with HEAD
 1.59.8.1  06-Nov-2007  matt sync with HEAD
 1.59.6.3  09-Dec-2007  jmcneill Sync with HEAD.
 1.59.6.2  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.59.6.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.60.4.3  18-Feb-2008  mjf Sync with HEAD.
 1.60.4.2  27-Dec-2007  mjf Sync with HEAD.
 1.60.4.1  08-Dec-2007  mjf Sync with HEAD.
 1.61.2.3  30-Dec-2007  ad Fix remaining problems with ext2fs on this branch.
 1.61.2.2  26-Dec-2007  ad Sync with head.
 1.61.2.1  04-Dec-2007  ad Pull the vmlocking changes into a new branch.
 1.62.4.2  10-Jan-2008  bouyer Sync with HEAD
 1.62.4.1  02-Jan-2008  bouyer Sync with HEAD
 1.64.6.3  17-Jan-2009  mjf Sync with HEAD.
 1.64.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.64.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.65.6.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.65.4.4  11-Aug-2010  yamt sync with head.
 1.65.4.3  11-Mar-2010  yamt sync with head
 1.65.4.2  16-Sep-2009  yamt sync with head
 1.65.4.1  04-May-2009  yamt sync with head.
 1.65.2.1  18-May-2008  yamt sync with head.
 1.66.14.1  21-Apr-2010  matt sync to netbsd-5
 1.66.8.2  16-Jan-2011  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1486):
sbin/fsck_ext2fs/setup.c: revision 1.26
sbin/newfs_ext2fs/mke2fs.c: revision 1.10
sbin/newfs_ext2fs/mke2fs.c: revision 1.11
sbin/newfs_ext2fs/mke2fs.c: revision 1.12
sbin/fsck_ext2fs/inode.c: revision 1.24
sys/lib/libsa/ext2fs.c: revision 1.6
sbin/newfs_ext2fs/extern.h: revision 1.3
sbin/fsck_ext2fs/inode.c: revision 1.25
sys/lib/libsa/ext2fs.c: revision 1.7
sbin/fsck_ext2fs/inode.c: revision 1.26
sys/ufs/ext2fs/ext2fs_inode.c: revision 1.68
sbin/fsck_ext2fs/inode.c: revision 1.27
sbin/fsck_ext2fs/inode.c: revision 1.28
sys/ufs/ext2fs/ext2fs_dinode.h: revision 1.18
sys/ufs/ext2fs/ext2fs_dinode.h: revision 1.19
sbin/newfs_ext2fs/newfs_ext2fs.c: revision 1.5
sbin/newfs_ext2fs/newfs_ext2fs.8: revision 1.2
sbin/newfs_ext2fs/newfs_ext2fs.c: revision 1.6
sbin/newfs_ext2fs/newfs_ext2fs.8: revision 1.3
sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.142
sbin/newfs_ext2fs/newfs_ext2fs.c: revision 1.7
sbin/newfs_ext2fs/newfs_ext2fs.8: revision 1.4
sbin/newfs_ext2fs/newfs_ext2fs.c: revision 1.8
PR/40936: Frederik Sausmikat: ext2fs: add support for inodes > 128 bytes
Support variable inode sizes.
catch up with variable inode size.
Don't use e2fs_inode_size in superblock on E2FS_REV0 file system.
- accept only EXT2_REV0_DINODE_SIZE inodesize on -O 0
- use inodesize to get offset of inode, not struct ext2fs_dinode array
Replace a magic number with a new EXT2_REV0_DINODE_SIZE macro.
Use EXT2_DINODE_SIZE() to get offset of inode, not struct ext2fs_dinode array.
Fix botched logic in inodesize check.
Use inodesize to get offset of inode in one more place.
- add a sanity check for e2fs_inode_size in readsb()
- use EXT2_DINODE_SIZE() rather than sizeof(struct ext2fs_dinode) or
struct ext2fs_dinode array/pointer to see e2fs_ipb and inode offsets
Sort options.
New sentence, new line.
Sort options in usage.
- unsigned -> unsigned int
- remove unnecessary casts from malloc(3) and free(3)
- fix a bogus indent
Use "size > INT32_MAX" rather than "size >= 0x80000000U" to check 2GB limit.
Add missed byteswap ops against ext2fs_dinode members.
Handle 32 bit uid field on E2FS_REV1.
 1.66.8.1  22-Feb-2010  snj Pull up following revision(s) (requested by bouyer in ticket #1302):
sys/ufs/ext2fs/ext2fs_inode.c: revision 1.71
sys/ufs/ffs/ffs_inode.c: revision 1.104
sys/ufs/lfs/lfs_inode.c: revision 1.121
sys/ufs/ufs/ufs_inode.c: revision 1.79
- ufs_balloc_range(): on error, only PG_RELEASED the pages that were
allocated to extend the file to the new size. Releasing all pages
may release pages that contains previously-written data not yet flushed
to disk. Should fix PR kern/35704
- {ffs,lfs,ext2fs}_truncate(): Even if the inode's size is the same as
the new length, call uvm_vnp_setsize(). *_truncate() may have been
called by *_write() in the error path (e.g. block allocation failure
because of quota of file system full), and at this point v_writesize
has been set to the desired size of the file and not reverted to the
old size. Not adjusting v_writesize to the real size cause
genfs_do_io() to write to disk past the real end of the file.
 1.66.6.2  03-Mar-2009  skrll Sync with HEAD.
 1.66.6.1  19-Jan-2009  skrll Sync with HEAD.
 1.67.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.71.4.3  05-Mar-2011  rmind sync with head
 1.71.4.2  03-Jul-2010  rmind sync with head
 1.71.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.71.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.73.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.74.6.1  18-Feb-2012  mrg merge to -current.
 1.74.2.4  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.74.2.3  23-Jan-2013  yamt sync with head
 1.74.2.2  16-Jan-2013  yamt sync with (a bit old) head
 1.74.2.1  17-Apr-2012  yamt sync with head
 1.75.6.4  03-Dec-2017  jdolecek update from HEAD
 1.75.6.3  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.75.6.2  23-Jun-2013  tls resync from head
 1.75.6.1  25-Feb-2013  tls resync with head
 1.81.10.3  28-Aug-2017  skrll Sync with HEAD
 1.81.10.2  05-Oct-2016  skrll Sync with HEAD
 1.81.10.1  06-Apr-2015  skrll Sync with HEAD
 1.82.2.2  26-Apr-2017  pgoyette Sync with HEAD
 1.82.2.1  06-Aug-2016  pgoyette Sync with HEAD
 1.86.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.88.20.1  25-Apr-2020  bouyer Sync with bouyer-xenpvh-base2 (HEAD)

RSS XML Feed