Home | History | Annotate | Download | only in ext2fs
History log of /src/sys/ufs/ext2fs/ext2fs_subr.c
RevisionDateAuthorComments
 1.33  13-Aug-2016  christos KNF, no functional changes...
 1.32  03-Aug-2016  jdolecek get and set expanded timestamp if the inode contains the extra information, add support for create time
 1.31  28-Mar-2015  maxv branches: 1.31.2;
Remove the 'cred' argument from bread(). Remove a now unused var in
ffs_snapshot.c. Update the man page accordingly.

ok hannken@
 1.30  23-Jun-2013  dholland branches: 1.30.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.29  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.28  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.27  19-Oct-2009  bouyer branches: 1.27.12; 1.27.22;
Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen
for the booring work !
 1.26  16-May-2008  hannken 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.25  08-Oct-2007  ad branches: 1.25.18; 1.25.20; 1.25.22; 1.25.24;
Merge ffs locking & brelse changes from the vmlocking branch.
 1.24  23-Jun-2006  yamt branches: 1.24.14; 1.24.28; 1.24.30; 1.24.32;
fix a simonb-timecounters regression.
the precision of getnanotime() is not suitable for file timestamps.
esp. when it's nfs-exported.

- introduce vfs_timestamp().
(the name is from freebsd. currently merely a wrapper of nanotime())
- for ufs-like filesystems, use it rather than getnanotime().

XXX check other filesystems.
 1.23  07-Jun-2006  kardel branches: 1.23.2;
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.22  14-May-2006  elad branches: 1.22.2;
integrate kauth.
 1.21  18-Mar-2006  bouyer Fix a dead error condition, coverity ID 603.
 1.20  27-Dec-2005  chs branches: 1.20.4; 1.20.6; 1.20.8; 1.20.10; 1.20.12;
changes for making DIAGNOSTIC not change the kernel ABI:
- for structure fields that are conditionally present,
make those fields always present.
- for functions which are conditionally inline, make them never inline.
- remove some other functions which are conditionally defined but
don't actually do anything anymore.
- make a lock-debugging function conditional on only LOCKDEBUG.

as discussed on tech-kern some time back.
 1.19  11-Dec-2005  christos merge ktrace-lwp.
 1.18  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.17  27-Sep-2005  yamt branches: 1.17.2;
introduce "ufs_ops" and use it for ITIMES.
 1.16  12-Sep-2005  christos Add a KASSERT like the one ffs has.
 1.15  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.14  30-Aug-2005  xtraeme * Remove __P()
* Use ANSI function declarations on ext2fs and mfs
 1.13  22-Mar-2004  bouyer branches: 1.13.16;
Fix disclaimer in my copyright. Pointed out by Thomas Klausner.
 1.12  30-Dec-2003  pk Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes). It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms. Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
 1.11  05-Oct-2003  bouyer Remove references to University of California from my copyright notices.
 1.10  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.9  25-Jan-2003  tron branches: 1.9.2;
Use PRId64 instead of hard coding "%lld" to fix build problems under
LP64 ports.
 1.8  25-Jan-2003  tron Fix printf() format strings problems caused by "daddr_t" change.
 1.7  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.6  08-Nov-2001  lukem add RCSID
 1.5  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.4  30-Mar-2000  augustss branches: 1.4.6; 1.4.10; 1.4.14;
Remove register declarations.
 1.3  04-Mar-1998  cgd branches: 1.3.14; 1.3.20;
ext2fs_checkoverlap is (or at least seems) unused, and its prototype is
#ifdef DIAGNOSTIC. Make the function #ifdef DIAGNOSTIC, as well, so we
don't get a warning about the function declaration not being a prototype.
 1.2  01-Mar-1998  fvdl Merge with Lite2 + local changes
 1.1  11-Jun-1997  bouyer The ext2fs layer, based on the ffs/ufs one. Uses a few functions from
sys/ufs/ufs/
 1.3.20.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.3.14.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.4.14.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.4.10.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.4.6.1  14-Nov-2001  nathanw Catch up to -current.
 1.9.2.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.9.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.9.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.9.2.1  03-Aug-2004  skrll Sync with HEAD
 1.13.16.3  27-Oct-2007  yamt sync with head.
 1.13.16.2  30-Dec-2006  yamt sync with head.
 1.13.16.1  21-Jun-2006  yamt sync with head.
 1.17.2.1  20-Oct-2005  yamt adapt ufs.
 1.20.12.2  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.20.12.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.20.10.2  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.20.10.1  19-Apr-2006  elad sync with head.
 1.20.8.3  26-Jun-2006  yamt sync with head.
 1.20.8.2  24-May-2006  yamt sync with head.
 1.20.8.1  01-Apr-2006  yamt sync with head.
 1.20.6.4  01-Jun-2006  kardel Sync with head.
 1.20.6.3  22-Apr-2006  simonb Sync with head.
 1.20.6.2  05-Feb-2006  simonb In the *itimes functions, just call getnanotime() at the start of
the function and use the result if needed, rather than the previous
conditional calls/assignments method. The code is clearer this way,
and benchmarks at about the same speed.
 1.20.6.1  04-Feb-2006  simonb Adapt for timecounters: mostly use get*time() and use "time_second"
instead of "time.tv_sec".
 1.20.4.1  09-Sep-2006  rpaulo sync with head
 1.22.2.1  19-Jun-2006  chap Sync with head.
 1.23.2.1  13-Jul-2006  gdamore Merge from HEAD.
 1.24.32.1  14-Oct-2007  yamt sync with head.
 1.24.30.1  06-Nov-2007  matt sync with HEAD
 1.24.28.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.24.14.1  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.25.24.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.25.22.2  11-Mar-2010  yamt sync with head
 1.25.22.1  04-May-2009  yamt sync with head.
 1.25.20.1  18-May-2008  yamt sync with head.
 1.25.18.1  02-Jun-2008  mjf Sync with HEAD.
 1.27.22.4  03-Dec-2017  jdolecek update from HEAD
 1.27.22.3  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.27.22.2  23-Jun-2013  tls resync from head
 1.27.22.1  25-Feb-2013  tls resync with head
 1.27.12.2  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.27.12.1  23-Jan-2013  yamt sync with head
 1.30.10.2  05-Oct-2016  skrll Sync with HEAD
 1.30.10.1  06-Apr-2015  skrll Sync with HEAD
 1.31.2.1  06-Aug-2016  pgoyette Sync with HEAD

RSS XML Feed