History log of /src/sys/ufs/ffs/ffs_balloc.c |
Revision | | Date | Author | Comments |
1.66 |
| 17-Nov-2022 |
chs | Restore backward compatibility of UFS2 with previous NetBSD releases by disabling support in UFS2 for extended attributes (including ACLs). Add a new variant of UFS2 called "UFS2ea" that does support extended attributes. Add new fsck_ffs operations "-c ea" and "-c no-ea" to convert file systems from UFS2 to UFS2ea and vice-versa (both of which delete all existing extended attributes in the process).
|
1.65 |
| 05-Sep-2020 |
riastradh | Round of uvm.h cleanup.
The poorly named uvm.h is generally supposed to be for uvm-internal users only.
- Narrow it to files that actually need it -- mostly files that need to query whether curlwp is the pagedaemon, which should maybe be exposed by an external header.
- Use uvm_extern.h where feasible and uvm_*.h for things not exposed by it. We should split up uvm_extern.h but this will serve for now to reduce the uvm.h dependencies.
- Use uvm_stat.h and #ifdef UVMHIST uvm.h for files that use UVMHIST(ubchist), since ubchist is declared in uvm.h but the reference evaporates if UVMHIST is not defined, so we reduce header file dependencies.
- Make uvm_device.h and uvm_swap.h independently includable while here.
ok chs@
|
1.64 |
| 18-Apr-2020 |
christos | Extended attribute support for ffsv2, from FreeBSD.
|
1.63 |
| 28-Oct-2017 |
pgoyette | branches: 1.63.4; 1.63.14; Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
1.62 |
| 25-Sep-2016 |
jdolecek | branches: 1.62.8; fix typo in #ifdef notyet part
|
1.61 |
| 28-Mar-2015 |
maxv | branches: 1.61.2; Remove the 'cred' argument from bread(). Remove a now unused var in ffs_snapshot.c. Update the man page accordingly.
ok hannken@
|
1.60 |
| 20-Oct-2013 |
htodd | branches: 1.60.6; Definining needswap where needed.
|
1.59 |
| 23-Jun-2013 |
dholland | branches: 1.59.2; 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.58 |
| 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.57 |
| 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.56 |
| 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.55 |
| 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.54 |
| 23-Apr-2011 |
hannken | branches: 1.54.4; 1.54.14; Try to keep snapshot indirect blocks contiguous.
This speeds up snapshot creation by a factor of ~3 and reduces the file system suspension time by a factor of ~5.
|
1.53 |
| 06-Mar-2011 |
bouyer | merge the bouyer-quota2 branch. This adds a new on-disk format to store disk quota usage and limits, integrated with ffs metadata. Usage is checked by fsck_ffs (no more quotacheck) and is covered by the WAPBL journal. Enabled with kernel option QUOTA2 (added where QUOTA was enabled in kernel config files), turned on with tunefs(8) on a per-filesystem basis. mount_mfs(8) can also turn quotas on.
See http://mail-index.netbsd.org/tech-kern/2011/02/19/msg010025.html for details.
|
1.52 |
| 22-Feb-2009 |
ad | branches: 1.52.4; 1.52.6; 1.52.8; PR kern/26878 FFSv2 + softdep = livelock (no free ram) PR kern/16942 panic with softdep and quotas PR kern/19565 panic: softdep_write_inodeblock: indirect pointer #1 mismatch PR kern/26274 softdep panic: allocdirect_merge: ... PR kern/26374 Long delay before non-root users can write to softdep partitions PR kern/28621 1.6.x "vp != NULL" panic in ffs_softdep.c:4653 while unmounting a softdep (+quota) filesystem PR kern/29513 FFS+Softdep panic with unfsck-able file-corruption PR kern/31544 The ffs softdep code appears to fail to write dirty bits to disk PR kern/31981 stopping scsi disk can cause panic (softdep) PR kern/32116 kernel panic in softdep (assertion failure) PR kern/32532 softdep_trackbufs deadlock PR kern/37191 softdep: locking against myself PR kern/40474 Kernel panic after remounting raid root with softdep
Retire softdep, pass 2. As discussed and later formally announced on the mailing lists.
|
1.51 |
| 31-Jul-2008 |
simonb | branches: 1.51.2; 1.51.4; 1.51.8; Merge the simonb-wapbl branch. From the original branch commit:
Add Wasabi System's WAPBL (Write Ahead Physical Block Logging) journaling code. Originally written by Darrin B. Jewell while at Wasabi and updated to -current by Antti Kantee, Andy Doran, Greg Oster and Simon Burge.
OK'd by core@, releng@.
|
1.50 |
| 03-Jun-2008 |
hannken | branches: 1.50.2; 1.50.4; ufs/ffs: replace calls to getblk() with ffs_getblk(). Now all buffers have been run through copy-on-write and async mounts work again.
Fixes PR kern/38820
Reviewed by: YAMAMOTO Takashi <yamt@netbsd.org>
|
1.49 |
| 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.48 |
| 02-Jan-2008 |
ad | branches: 1.48.6; 1.48.8; 1.48.10; 1.48.12; Merge vmlocking2 to head.
|
1.47 |
| 08-Dec-2007 |
ad | branches: 1.47.4; Add some comments.
|
1.46 |
| 08-Oct-2007 |
ad | branches: 1.46.4; 1.46.6; Merge ffs locking & brelse changes from the vmlocking branch.
|
1.45 |
| 29-Jun-2007 |
pooka | branches: 1.45.6; 1.45.8; 1.45.10; remove redundant KASSERTs
|
1.44 |
| 29-Jan-2007 |
hubertf | branches: 1.44.6; 1.44.8; 1.44.10; Remove more duplicate headers. Patch by Slava Semushin <slava.semushin@gmail.com>
Again, this was tested by comparing obj files from a pristine and a patched source tree against an i386/ALL kernel, and also for src/sbin/fsck_ffs, src/sbin/fsdb and src/usr.sbin/makefs. Only changes in assert() line numbers were detected in 'objdump -d' output.
|
1.43 |
| 14-May-2006 |
elad | branches: 1.43.8; integrate kauth.
|
1.42 |
| 15-Apr-2006 |
christos | Coverity CID 2858: Avoid NULL deref.
|
1.41 |
| 23-Mar-2006 |
hannken | ffs_balloc*(): Add an assertion for "bpp != NULL" if B_METAONLY is set.
From Coverity CIDs 1170..1173
|
1.40 |
| 11-Dec-2005 |
christos | branches: 1.40.4; 1.40.6; 1.40.8; 1.40.10; 1.40.12; merge ktrace-lwp.
|
1.39 |
| 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.38 |
| 15-Jul-2005 |
thorpej | branches: 1.38.2; Use ANSI function decls.
|
1.37 |
| 15-Dec-2004 |
mycroft | branches: 1.37.10; Remove some unnecessary (int32_t) casts that would cause us to screw up the top bit in block addresses.
Also, change some daddr_t->int32_t casts (mostly as arguments to ufs_rw32(), where they would get promoted anyway) to u_int32_t.
|
1.36 |
| 14-Aug-2004 |
mycroft | In the indirect block unwind case, we only need to do the synchronous writes of the inode in the softdep case. XXX This is really a deficiency in softdep.
|
1.35 |
| 25-May-2004 |
hannken | Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.
- Not enabled by default. Needs kernel option FFS_SNAPSHOT. - Change parameters of ffs_blkfree. - Let the copy-on-write functions return an error so spec_strategy may fail if the copy-on-write fails. - Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock. - Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer. - Add a function ffs_checkfreefile needed for snapshot creation. - Add special handling of snapshot files: Snapshots may not be opened for writing and the attributes are read-only. Use the mtime as the time this snapshot was taken. Deny mtime updates for snapshot files. - Add function transferlockers to transfer any waiting processes from one lock to another. - Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through a vnode. - Add snapshot support to ls, fsck_ffs and dump.
Welcome to 2.0F.
Approved by: Jason R. Thorpe <thorpej@netbsd.org>
|
1.34 |
| 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.33 |
| 02-Apr-2003 |
fvdl | branches: 1.33.2; 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.32 |
| 15-Mar-2003 |
kristerw | ffs_gop_alloc() is not used any more. Remove it.
OK:ed by Konrad Schroder.
|
1.31 |
| 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.30 |
| 05-Jun-2002 |
chs | get the units right when computing a blkno in the ENOSPC path for allocations involving indirect blocks. spotted by Trevin Beattie <trevin@xmission.com>.
|
1.29 |
| 08-Nov-2001 |
chs | branches: 1.29.8; 1.29.10; the previous fix (in rev. 1.26) for hangs when the filesystem is full was wrong, so fix it right this time. undo the previous change and instead, replace the troublesome VOP_FSYNC()s with code that just flushes the particular indirect blocks that we allocated. this resolves the softdeps for those blocks. then we can change the pointer for the first indirect block we allocated to zero, write that, and finally invalidate all the indirect blocks we've touched. also, wait until after we finish all this before freeing any blocks we allocated. fixes PRs 14413 and 14423.
|
1.28 |
| 30-Oct-2001 |
lukem | add __KERNEL_RCSID()
|
1.27 |
| 30-Sep-2001 |
chs | branches: 1.27.2; in ffs_balloc(), clean up page cache state to avoid hangs when we get ENOSPC. as a result of this, we now skip some of the normal cleanup in ufs_balloc_range() in the error case.
|
1.26 |
| 15-Sep-2001 |
chs | a whole bunch of changes to improve performance and robustness under load:
- remove special treatment of pager_map mappings in pmaps. this is required now, since I've removed the globals that expose the address range. pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's no longer any need to special-case it. - eliminate struct uvm_vnode by moving its fields into struct vnode. - rewrite the pageout path. the pager is now responsible for handling the high-level requests instead of only getting control after a bunch of work has already been done on its behalf. this will allow us to UBCify LFS, which needs tighter control over its pages than other filesystems do. writing a page to disk no longer requires making it read-only, which allows us to write wired pages without causing all kinds of havoc. - use a new PG_PAGEOUT flag to indicate that a page should be freed on behalf of the pagedaemon when it's unlocked. this flag is very similar to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the pageout fails due to eg. an indirect-block buffer being locked. this allows us to remove the "version" field from struct vm_page, and together with shrinking "loan_count" from 32 bits to 16, struct vm_page is now 4 bytes smaller. - no longer use PG_RELEASED for swap-backed pages. if the page is busy because it's being paged out, we can't release the swap slot to be reallocated until that write is complete, but unlike with vnodes we don't keep a count of in-progress writes so there's no good way to know when the write is done. instead, when we need to free a busy swap-backed page, just sleep until we can get it busy ourselves. - implement a fast-path for extending writes which allows us to avoid zeroing new pages. this substantially reduces cpu usage. - encapsulate the data used by the genfs code in a struct genfs_node, which must be the first element of the filesystem-specific vnode data for filesystems which use genfs_{get,put}pages(). - eliminate many of the UVM pagerops, since they aren't needed anymore now that the pager "put" operation is a higher-level operation. - enhance the genfs code to allow NFS to use the genfs_{get,put}pages instead of a modified copy. - clean up struct vnode by removing all the fields that used to be used by the vfs_cluster.c code (which we don't use anymore with UBC). - remove kmem_object and mb_object since they were useless. instead of allocating pages to these objects, we now just allocate pages with no object. such pages are mapped in the kernel until they are freed, so we can use the mapping to find the page to free it. this allows us to remove splvm() protection in several places.
The sum of all these changes improves write throughput on my decstation 5000/200 to within 1% of the rate of NetBSD 1.5 and reduces the elapsed time for "make release" of a NetBSD 1.5 source tree on my 128MB pc to 10% less than a 1.5 kernel took.
|
1.25 |
| 08-Aug-2001 |
lukem | branches: 1.25.2; get argument name correct in comment describing vop_balloc_args
|
1.24 |
| 30-May-2001 |
mrg | branches: 1.24.4; use _KERNEL_OPT
|
1.23 |
| 27-Nov-2000 |
chs | branches: 1.23.2; Initial integration of the Unified Buffer Cache project.
|
1.22 |
| 19-Sep-2000 |
fvdl | Adapt for VOP_FSYNC parameter change.
Implement range fsync for FFS. Note: not yet implemented for the SOFTDEP case.
|
1.21 |
| 28-Jun-2000 |
mrg | remove include of <vm/vm.h> and <uvm/uvm_extern.h>
|
1.20 |
| 29-May-2000 |
mycroft | branches: 1.20.2; MNT_WAIT -> FSYNC_WAIT
|
1.19 |
| 28-May-2000 |
mycroft | DTRT when unwinding multiple levels.
|
1.18 |
| 28-May-2000 |
mycroft | When unwinding a failed allocation, make sure to nuke the unwound block from the vnode's block list. This fixes `itrunc3' panics (at least in some cases; further testing is needed) and prevents further lossage later on.
|
1.17 |
| 25-Feb-2000 |
fvdl | branches: 1.17.2; Fix a bug introduced in Lite2 with block allocation and full disk conditions. Reported by Ian Dowse <iedowse@maths.tcd.ie>, based on patch in FreeBSD reviewed by Kirk McKusick.
|
1.16 |
| 14-Feb-2000 |
fvdl | Fixes to the softdep code from Ethan Solomita <ethan@geocast.com>. * Fix buffer ordering when it has dependencies. * Alleviate memory problems. * Deal with some recursive vnode locks (sigh). * Fix other bugs.
|
1.15 |
| 15-Nov-1999 |
fvdl | Add Kirk McKusick's soft updates code to the trunk. Not enabled by default, as the copyright on the main file (ffs_softdep.c) is such that is has been put into gnusrc. options SOFTDEP will pull this in. This code also contains the trickle syncer.
Bump version number to 1.4O
|
1.14 |
| 24-Mar-1999 |
mrg | branches: 1.14.4; 1.14.8; 1.14.10; 1.14.14; completely remove Mach VM support. all that is left is the all the header files as UVM still uses (most of) these.
|
1.13 |
| 27-Oct-1998 |
mycroft | branches: 1.13.2; Do not corrupt file flags when file system is full!
|
1.12 |
| 13-Jun-1998 |
kleink | KNF, mostly of FFS_EI changes.
|
1.11 |
| 09-Jun-1998 |
scottr | Protect various config(8)-generated files from inclusion while building LKMs. Fixes PR 5557.
|
1.10 |
| 08-Jun-1998 |
scottr | Use the newly-defined opt_quota.h.
|
1.9 |
| 18-Mar-1998 |
bouyer | Add support for reading/writing FFS in non-native byte order, conditioned to "options FFS_EI". The superblock and inodes (without blk addr) are byteswapped at disk read/write time, other metadatas are byteswapped when used (as they are acceeded directly in the buffer cache). This required the addition of a "um_flags" field to struct ufsmount. ffs_bswap.c contains superblock and inode byteswap routines also used by userland utilities.
|
1.8 |
| 01-Mar-1998 |
fvdl | Merge with Lite2 + local changes
|
1.7 |
| 10-Feb-1998 |
mrg | - add defopt's for UVM, UVMHIST and PMAP_NEW. - remove unnecessary UVMHIST_DECL's.
|
1.6 |
| 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.5 |
| 04-Jul-1997 |
drochner | 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.4 |
| 11-Jun-1997 |
bouyer | Add support for ext2fs, this needed a few modifications to ufs/ufs/inode.h: - added an "union inode_ext" to struct inode, for the per-fs extentions. For now only ext2fs uses it. - i_din is now an union: union { struct dinode ffs_din; /* 128 bytes of the on-disk dinode. */ struct ext2fs_dinode e2fs_din; /* 128 bytes of the on-disk dinode. */ } i_din Added a lot of #define i_ffs_* and i_e2fs_* to access the fields. - Added two macros: FFS_ITIMES and EXT2FS_ITIMES. ITIMES calls the rigth macro, depending on the time of the inode. ITIMES is used where necessary, FFS_ITIMES and EXT2FS_ITIMES in other places.
|
1.3 |
| 09-Feb-1996 |
christos | ffs prototypes
|
1.2 |
| 29-Jun-1994 |
cgd | New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
1.1 |
| 08-Jun-1994 |
mycroft | branches: 1.1.1; Update to 4.4-Lite fs code, with local changes.
|
1.1.1.2 |
| 01-Mar-1998 |
fvdl | Import 4.4BSD-Lite2
|
1.1.1.1 |
| 01-Mar-1998 |
fvdl | Import 4.4BSD-Lite for reference
|
1.13.2.5 |
| 30-May-1999 |
chs | in ffs_balloc(), remove the "alloced" flag I added. with the demise of the vm_page blkno field this is no longer useful. also be sure to return the blkno in all cases. in ffs_balloc_range(), uvm_vnp_setpageblknos() is gone.
|
1.13.2.4 |
| 29-Apr-1999 |
chs | catch another case in ffs_balloc() where we need to set the aux return info. adjust the file size in ffs_balloc_range() instead of ffs_write(), the allocator routines need to have current info.
|
1.13.2.3 |
| 09-Apr-1999 |
chs | undo combining of two cases that were actually different.
|
1.13.2.2 |
| 25-Feb-1999 |
chs | add some args to ffs_balloc() to allow it to return the physical blkno of the requested block and whether or not the block was allocated by the current call. move ffs_mballoc() here from ufs_readwrite.c and rename it to ffs_balloc_range().
|
1.13.2.1 |
| 09-Nov-1998 |
chs | initial snapshot. lots left to do.
|
1.14.14.2 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.14.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.14.10.1 |
| 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
1.14.8.2 |
| 08-Dec-2000 |
bouyer | Sync with HEAD.
|
1.14.8.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
1.14.4.6 |
| 06-Aug-1999 |
chs | avoid setting u_size lower in ffs_balloc(), otherwise we'll end up PG_RELEASEing pages we have busy in ufs_balloc_range().
|
1.14.4.5 |
| 31-Jul-1999 |
chs | adapt to new VOP_BALLOC() interface.
|
1.14.4.4 |
| 11-Jul-1999 |
chs | no need to call uvm_vnp_zerorange() in ffs_balloc() anymore, it's handled differently now.
|
1.14.4.3 |
| 06-Jul-1999 |
chs | avoid creating pages beyond EOF.
|
1.14.4.2 |
| 04-Jul-1999 |
chs | convert ffs_balloc() to a VOP interface. rename ffs_balloc_range() to ufs_balloc_range() in ufs_inode.c.
|
1.14.4.1 |
| 07-Jun-1999 |
chs | merge everything from chs-ubc branch.
|
1.17.2.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
1.20.2.1 |
| 14-Dec-2000 |
he | Pull up revision 1.22 (requested by fvdl): Improve NFS performance, possibly with as much as 100% in throughput. Please note: this implies a kernel interface change, VOP_FSYNC gains two arguments.
|
1.23.2.7 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.23.2.6 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.23.2.5 |
| 08-Oct-2001 |
nathanw | Catch up to -current.
|
1.23.2.4 |
| 21-Sep-2001 |
nathanw | Catch up to -current.
|
1.23.2.3 |
| 24-Aug-2001 |
nathanw | Catch up with -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.4.3 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.24.4.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.24.4.1 |
| 25-Aug-2001 |
thorpej | Merge Aug 24 -current into the kqueue branch.
|
1.25.2.1 |
| 01-Oct-2001 |
fvdl | Catch up with -current.
|
1.27.2.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
1.29.10.1 |
| 05-Jun-2002 |
lukem | Pull up revision 1.30 (requested by chuq in ticket #171): get the units right when computing a blkno in the ENOSPC path for allocations involving indirect blocks. spotted by Trevin Beattie <trevin@xmission.com>.
|
1.29.8.1 |
| 20-Jun-2002 |
gehenna | catch up with -current.
|
1.33.2.6 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.33.2.5 |
| 18-Dec-2004 |
skrll | Sync with HEAD.
|
1.33.2.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.33.2.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.33.2.2 |
| 25-Aug-2004 |
skrll | Sync with HEAD.
|
1.33.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.37.10.5 |
| 21-Jan-2008 |
yamt | sync with head
|
1.37.10.4 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.37.10.3 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.37.10.2 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.37.10.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.38.2.2 |
| 29-Oct-2005 |
yamt | use ffs_* directly rather than via ufs_ops. suggested by Chuck Silvers.
|
1.38.2.1 |
| 20-Oct-2005 |
yamt | adapt ufs.
|
1.40.12.2 |
| 24-May-2006 |
tron | Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
|
1.40.12.1 |
| 28-Mar-2006 |
tron | Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
|
1.40.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.40.10.2 |
| 19-Apr-2006 |
elad | sync with head.
|
1.40.10.1 |
| 08-Mar-2006 |
elad | Adapt to kernel authorization KPI.
|
1.40.8.2 |
| 24-May-2006 |
yamt | sync with head.
|
1.40.8.1 |
| 01-Apr-2006 |
yamt | sync with head.
|
1.40.6.2 |
| 01-Jun-2006 |
kardel | Sync with head.
|
1.40.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.40.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.43.8.1 |
| 01-Feb-2007 |
ad | Sync with head.
|
1.44.10.1 |
| 09-Dec-2007 |
reinoud | Pullup to HEAD
|
1.44.8.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.44.6.6 |
| 24-Oct-2007 |
ad | Comment out 'fix' for allocation failure with softdep. It would hang because we can try to flush pages that we hold busy. Instead it now crashes (matching what happens on HEAD).
|
1.44.6.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.44.6.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.44.6.3 |
| 15-Jul-2007 |
ad | Sync with head.
|
1.44.6.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.44.6.1 |
| 13-Apr-2007 |
ad | Put a per-mount lock around ffs shared data structures, excluding softdep and quotas. Strategy lifted from FreeBSD.
|
1.45.10.1 |
| 14-Oct-2007 |
yamt | sync with head.
|
1.45.8.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.45.8.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.45.6.2 |
| 09-Dec-2007 |
jmcneill | Sync with HEAD.
|
1.45.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.46.6.2 |
| 08-Dec-2007 |
ad | Sync with head.
|
1.46.6.1 |
| 04-Dec-2007 |
ad | Pull the vmlocking changes into a new branch.
|
1.46.4.1 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.47.4.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.48.12.2 |
| 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.48.12.1 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.48.10.1 |
| 04-May-2009 |
yamt | sync with head.
|
1.48.8.2 |
| 04-Jun-2008 |
yamt | sync with head
|
1.48.8.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.48.6.3 |
| 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.48.6.2 |
| 05-Jun-2008 |
mjf | Sync with HEAD.
Also fix build.
|
1.48.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.50.4.1 |
| 19-Oct-2008 |
haad | Sync with HEAD.
|
1.50.2.1 |
| 28-Jul-2008 |
simonb | Add support for creating a WAPBL log in the filesystem. Will create an in-filesystem log on first "mount -o log" if one doesn't exist, and will then continue to use same log in the future. See (soon to be added) wapbl(4) for more info.
Adds a new B_CONTIG low-level allocation flag that uses hints in "struct ffs_inode_ext" to lay out an ffs file's data contiguously.
Thanks to Greg Oster for helping with the design of this and to Antti Kantee for code review and suggestions.
|
1.51.8.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.51.4.1 |
| 18-Jun-2011 |
bouyer | Pull up following revision(s) (requested by hannken in ticket #1627): sys/kern/vfs_wapbl.c: revisions 1.41-1.42 sbin/dump/snapshot.c: revisions 1.6 (patch) share/man/man4/fss.4: revisions 1.15 (patch) sys/dev/fss.c: revisions 1.73 (patch) sys/dev/fssvar.h: revisions 1.25 usr.sbin/fssconfig/fssconfig.c: revisions 1.7 sys/ufs/ffs/ffs_balloc.c: revisions 1.54 sys/ufs/ffs/ffs_snapshot.c: revisions 1.90, 1.98, 1.100-1.101, 1.103-1.110, 1.111, 1.112-1.115 (patch)
- Try to keep snapshot indirect blocks contiguous. This speeds up snapshot creation by a factor of ~3 and reduces the file system suspension time by a factor of ~5.
- Refine the scope of WAPBL transactions and the limit for deallocations in one transaction so we should no longer get a "wapbl_flush: current transaction too big to flush" panic when creating or removing snapshots on larger logging disks.
- fss(4): Allow FSSIOCSET to set the initial flags. Add a new flag "FSS_UNLINK_ON_CREATE" to unlink the backing store before the snapshot gets created. With this change dump(8) no longer dumps the zero-sized, but named snapshot it is working on.
|
1.51.2.1 |
| 03-Mar-2009 |
skrll | Sync with HEAD.
|
1.52.8.1 |
| 20-Jan-2011 |
bouyer | Snapshot of work in progress on a modernised disk quota system: - new quotactl syscall (versionned for backward compat), which takes as parameter a path to a mount point, and a prop_dictionary (in plistref format) describing commands and arguments. For each command, status and data are returned as a prop_dictionary. quota commands features will be added to take advantage of this, exporting quota data or getting quota commands as plists.
- new on disk-format storage (all 64bit wide), integrated to metadata for ffs (and playing nicely with wapbl). Quotas are enabled on a ffs filesystem via superblock flags. tunefs(8) can enable or disable quotas. On a quota-enabled filesystem, fsck_ffs(8) will track per-uid/gid block and inode usages, and will check and update quotas in Pass 6. quota usage and limits are stored in unliked files (one for users, one for groups)l fsck_ffs(8) will create the files if needed, or free them if needed. This means that after enabling or disabling quotas on a filesystem; a fsck_ffs(8) run is required. quotacheck(8) is not needed any more, on a unclean shutdown fsck or journal replay will take care of fixing quotas. newfs(8) can create a ready-to-mount quota-enabled filesystem (superblock flags are set and quota inodes are created). Other new features or semantic changes: - default quota datas, applied to users or groups which don't already have a quota entry - per-user/group grace time (instead of a filesystem global one) - 0 really means "nothing allowed at all", not "no limit". If you want "no limit", set the limit to UQUAD_MAX (tools will understand "unlimited" and "-")
A quota file is structured as follow: it starts with a header, containing a few per-filesystem values, and the default quota limits. Quota entries are linked together as a simple list, each entry has a pointer (as an offset withing the file) to the next. The header has a pointer to a list of free quota entries, and a hash table of in-use entries. The size of the hash table depends on the filesystem block size (header+hash table should fit in the first block). The file is not sparse and is a multiple of filesystem block size (when the free quota entry list is empty a new filesystem block is allocated). quota entries to not cross filesystem block boundaries.
In memory, the kernel keeps a cache of recently used quota entries as a reference to the block number, and offset withing the block. The quota entry itself is keept in the buf cache.
fsck_ffs(8), tunefs(8) and newfs(8) supports are completed (with related atf tests :) The kernel can update disk usage and report it via quotactl(2).
Todo: enforce quotas limits (limits are not checked by kernel yet) update repquota, edquota and rpc.rquotad to the new world implement compat_50_quotactl ioctl. update quotactl(2) man page
fsck_ffs required fixes so that allocating new blocks or inodes will properly update the superblock and cg sumaries. This was not an issue up to now because superblock and cg sumaries check happened last, but now allocations or frees can happen in pass 6.
|
1.52.6.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.52.4.2 |
| 31-May-2011 |
rmind | sync with head
|
1.52.4.1 |
| 21-Apr-2011 |
rmind | sync with head
|
1.54.14.4 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.54.14.3 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.54.14.2 |
| 23-Jun-2013 |
tls | resync from head
|
1.54.14.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.54.4.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.54.4.1 |
| 23-Jan-2013 |
yamt | sync with head
|
1.59.2.1 |
| 18-May-2014 |
rmind | sync with head
|
1.60.6.2 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|
1.60.6.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.61.2.1 |
| 04-Nov-2016 |
pgoyette | Sync with HEAD
|
1.62.8.1 |
| 02-Nov-2017 |
snj | Pull up following revision(s) (requested by pgoyette in ticket #335): share/man/man9/kernhist.9: 1.5-1.8 sys/arch/acorn26/acorn26/pmap.c: 1.39 sys/arch/arm/arm32/fault.c: 1.105 via patch sys/arch/arm/arm32/pmap.c: 1.350, 1.359 sys/arch/arm/broadcom/bcm2835_bsc.c: 1.7 sys/arch/arm/omap/if_cpsw.c: 1.20 sys/arch/arm/omap/tiotg.c: 1.7 sys/arch/evbarm/conf/RPI2_INSTALL: 1.3 sys/dev/ic/sl811hs.c: 1.98 sys/dev/usb/ehci.c: 1.256 sys/dev/usb/if_axe.c: 1.83 sys/dev/usb/motg.c: 1.18 sys/dev/usb/ohci.c: 1.274 sys/dev/usb/ucom.c: 1.119 sys/dev/usb/uhci.c: 1.277 sys/dev/usb/uhub.c: 1.137 sys/dev/usb/umass.c: 1.160-1.162 sys/dev/usb/umass_quirks.c: 1.100 sys/dev/usb/umass_scsipi.c: 1.55 sys/dev/usb/usb.c: 1.168 sys/dev/usb/usb_mem.c: 1.70 sys/dev/usb/usb_subr.c: 1.221 sys/dev/usb/usbdi.c: 1.175 sys/dev/usb/usbdi_util.c: 1.67-1.70 sys/dev/usb/usbroothub.c: 1.3 sys/dev/usb/xhci.c: 1.75 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.34 sys/kern/kern_history.c: 1.15 sys/kern/kern_xxx.c: 1.74 sys/kern/vfs_bio.c: 1.275-1.276 sys/miscfs/genfs/genfs_io.c: 1.71 sys/sys/kernhist.h: 1.21 sys/ufs/ffs/ffs_balloc.c: 1.63 sys/ufs/lfs/lfs_vfsops.c: 1.361 sys/ufs/lfs/ulfs_inode.c: 1.21 sys/ufs/lfs/ulfs_vnops.c: 1.52 sys/ufs/ufs/ufs_inode.c: 1.102 sys/ufs/ufs/ufs_vnops.c: 1.239 sys/uvm/pmap/pmap.c: 1.37-1.39 sys/uvm/pmap/pmap_tlb.c: 1.22 sys/uvm/uvm_amap.c: 1.108 sys/uvm/uvm_anon.c: 1.64 sys/uvm/uvm_aobj.c: 1.126 sys/uvm/uvm_bio.c: 1.91 sys/uvm/uvm_device.c: 1.66 sys/uvm/uvm_fault.c: 1.201 sys/uvm/uvm_km.c: 1.144 sys/uvm/uvm_loan.c: 1.85 sys/uvm/uvm_map.c: 1.353 sys/uvm/uvm_page.c: 1.194 sys/uvm/uvm_pager.c: 1.111 sys/uvm/uvm_pdaemon.c: 1.109 sys/uvm/uvm_swap.c: 1.175 sys/uvm/uvm_vnode.c: 1.103 usr.bin/vmstat/vmstat.c: 1.219 Reorder to test for null before null deref in debug code -- Reorder to test for null before null deref in debug code -- KNF -- No need for '\n' in UVMHIST_LOG -- normalise a BIOHIST log message -- Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up... (As proposed on tech-kern@ with additional changes and enhancements.) Details of changes: * All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.) * Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments. * All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t. * All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size." * All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed. * vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9). * vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed). * vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built. * The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements. [1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju". [2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies. -- For some reason this single kernel seems to have outgrown its declared size as a result of the kernhist(9) changes. Bump the size. XXX The amount of increase may be excessive - anyone with more detailed XXX knowledge please feel free to further adjust the value appropriately. -- Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit -- And yet another one. :( -- Use correct mark-up for NetBSD version. -- More improvements in grammar and readability. -- Remove a stray '"' (obvious typo) and add a couple of casts that are probably needed. -- And replace an instance of "%p" conversion with "%#jx" -- Whitespace fix. Give Bl tag table a width. Fix Xr.
|
1.63.14.1 |
| 20-Apr-2020 |
bouyer | Sync with HEAD
|
1.63.4.1 |
| 21-Apr-2020 |
martin | Sync with HEAD
|