| History log of /src/sys/ufs/ufs/inode.h |
| Revision | | Date | Author | Comments |
| 1.79 |
| 23-Mar-2022 |
andvar | fix few typos for word "previous(ly)" in comments.
|
| 1.78 |
| 20-Aug-2020 |
christos | Don't cache id's for vnodes that have ACLs. ok chs@
|
| 1.77 |
| 18-Apr-2020 |
christos | Extended attribute support for ffsv2, from FreeBSD.
|
| 1.76 |
| 20-Aug-2017 |
maya | branches: 1.76.4; 1.76.14; update the comment to the current IFMT/permissions location
|
| 1.75 |
| 14-Aug-2016 |
jdolecek | again remove IN_E4EXTENTS; it's not used anywhere any more, and it's better to keep fs-specific flags out of generic headers anyway
|
| 1.74 |
| 04-Aug-2016 |
jdolecek | move i_e2fs_* defines from ufs/inode.h to ext2fs/ext2fs_dinode.h, where they belong; they don't seem to be used anywhere else then ext2fs code any more
|
| 1.73 |
| 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.72 |
| 03-Jun-2016 |
christos | branches: 1.72.2; ext4 extents glue
|
| 1.71 |
| 26-May-2014 |
dholland | branches: 1.71.4; Fix previous. Anyone have a brown paper bag?
|
| 1.70 |
| 26-May-2014 |
ryoon | Close comments
|
| 1.69 |
| 26-May-2014 |
dholland | Remove lfs-only inode flags.
|
| 1.68 |
| 17-May-2014 |
martin | Reorder struct ufid members to avoid padding (and save 4 bytes) on some architectures.
|
| 1.67 |
| 14-May-2014 |
martin | Make filehandles on UFS based filesystems use proper 64bit inodes. 32bit restriction noticed by Taylor R Campbell.
|
| 1.66 |
| 08-May-2014 |
hannken | Add a global vnode cache:
- vcache_get() retrieves a referenced and initialised vnode / fs node pair. - vcache_remove() removes a vnode / fs node pair from the cache.
On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to initialise a vnode / fs node pair. This call is guaranteed exclusive, no other thread will try to load this vnode / fs node pair.
Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.
Remove now unused ufs/ufs_ihash
Discussed on tech-kern.
Welcome to 6.99.41
|
| 1.65 |
| 09-Jun-2013 |
dholland | branches: 1.65.2; 1.65.6; Remove lfs-only inumber field (and its supporting union) from struct ufs1_dinode.
|
| 1.64 |
| 19-Nov-2012 |
jakllsch | - Add e2di_version, e2di_nblock_high, e2di_facl_high fields to ext2fs_dinode.
- Update i_e2fs_ aliases to match.
- ext2fs_bswap support for these ext2fs_dinode fields.
(e2di_version and e2di_facl_high replace previously reserved fields. e2di_nblock_high was formerly e2di_nfrag and e2di_fsize, however these are currently defined in e2fsprogs as only being relevant for HURD.)
|
| 1.63 |
| 19-Nov-2012 |
jakllsch | Move i_e2fs_rdev define to be adjacent to the field it aliases.
|
| 1.62 |
| 04-Jun-2012 |
riastradh | branches: 1.62.2; Use two separate comments for stub where IN_RENAME was.
|
| 1.61 |
| 04-Jun-2012 |
riastradh | Kill the IN_RENAME in-core inode flag in ufs and ext2fs.
Now that rename works we need not to wave this sort of voodoo at it.
ok dholland
|
| 1.60 |
| 05-May-2012 |
yamt | comments and cosmetics. no functional changes.
|
| 1.59 |
| 02-Jan-2012 |
perseant | * Remove PGO_RECLAIM during lfs_putpages()' call to genfs_putpages(), to avoid a live lock in the latter when reclaiming a vnode with dirty pages.
* Add a new segment flag, SEGM_RECLAIM, to note when a segment is being written for vnode reclamation, and record which inode is being reclaimed, to aid in forensic debugging.
* Add a new segment flag, SEGM_SINGLE, so that opportunistic writes can write a single segment's worth of blocks and then stop, rather than writing all the way up to the cleaner's reserved number of segments.
* Add assert statements to check mutex ownership is the way it ought to be, mostly in lfs_putpages; fix problems uncovered by this.
* Don't clear VU_DIROP until the inode actually makes its way to disk, avoiding a problem where dirop inodes could become separated (uncovered by a modified version of the "ckckp" forensic regression test).
* Move the vfs_getopsbyname() call into lfs_writerd. Prepare code to make lfs_writerd notice when there are no more LFSs, and exit losing the reference, so that, in theory, the module can be unloaded. This code is not enabled, since it causes a crash on exit.
* Set IN_MODIFIED on inodes flushed by lfs_flush_dirops. Really we only need to set IN_MODIFIED if we are going to write them again (e.g., to write pages); need to think about this more.
Finally, several changes to help avoid "no clean segments" panics:
* In lfs_bmapv, note when a vnode is loaded only to discover whether its blocks are live, so it can immediately be recycled. Since the cleaner will try to choose ~empty segments over full ones, this prevents the cleaner from (1) filling the vnode cache with junk, and (2) squeezing any unwritten writes to disk and running the fs out of segments.
* Overestimate by half the amount of metadata that will be required to fill the clean segments. This will make the disk appear smaller, but should help avoid a "no clean segments" panic.
* Rearrange lfs_writerd. In particular, lfs_writerd now pays attention to the number of clean segments available, and holds off writing until there is room.
|
| 1.58 |
| 12-Jul-2011 |
dholland | branches: 1.58.2; 1.58.6; Currently, ufs_lookup produces five auxiliary results that are left in the vnode when lookup returns and fished out again later.
1. Create struct ufs_lookup_results to hold these.
2. Call the ufs_lookup_results instance in struct inode "i_crap" to be clear about exactly what's going on, and to distinguish the lookup results from respectable members of struct inode.
3. Update references to these members in the directory access subroutines.
4. Include preliminary infrastructure for checking that the i_crap being used is still valid when it's used. This doesn't actually do anything yet.
5. Update the way ufs_wapbl_rename manipulates these elements to use the new data structures. I have not changed the manipulation; it may or may not be correct but I continue to suspect that it is not.
The word of the day is "stigmergy".
|
| 1.57 |
| 28-Jul-2010 |
hannken | 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.56 |
| 22-Feb-2009 |
ad | branches: 1.56.2; 1.56.4; 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.55 |
| 23-Nov-2008 |
mrg | branches: 1.55.4; add support for 32 bit uid/gid fields in ext2, but only do so for when the revision is > REV0.
|
| 1.54 |
| 23-Sep-2008 |
christos | branches: 1.54.2; 1.54.4; fix reversed comment, from anon ymous
|
| 1.53 |
| 31-Jul-2008 |
simonb | Be consistent with #define<tab>.
|
| 1.52 |
| 31-Jul-2008 |
simonb | 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.51 |
| 09-Jan-2008 |
ad | branches: 1.51.6; 1.51.10; 1.51.12; 1.51.14; 1.51.16; 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.50 |
| 07-Jan-2008 |
ad | Fix 'panic: softdep_update_inodeblock: update failed'.
|
| 1.49 |
| 02-Jan-2008 |
ad | Merge vmlocking2 to head.
|
| 1.48 |
| 09-Apr-2007 |
pooka | branches: 1.48.10; 1.48.16; 1.48.18; 1.48.22; fix comment: struct fid is in fstypes.h now
|
| 1.47 |
| 04-Mar-2007 |
christos | branches: 1.47.2; 1.47.4; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
| 1.46 |
| 11-Dec-2005 |
christos | branches: 1.46.26; merge ktrace-lwp.
|
| 1.45 |
| 27-Sep-2005 |
yamt | introduce "ufs_ops" and use it for ITIMES.
|
| 1.44 |
| 12-Sep-2005 |
christos | - access the ffs and ext2fs itimes functions through a pointer, so that if the filesystem is not compiled in the kernel still links. Probably a better solution is to use weak symbols. - move the filesystem-specific itime macros to the filesystem header files.
|
| 1.43 |
| 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.42 |
| 19-Aug-2005 |
christos | 64 bit inode changes.
|
| 1.41 |
| 26-Feb-2005 |
perry | branches: 1.41.4; nuke trailing whitespace
|
| 1.40 |
| 23-Jan-2005 |
rumble | branches: 1.40.2; Bring in Ian Dowse's Dirhash from FreeBSD. Hash tables of directories are created on the fly and used to increase performance by circumventing ufs_lookup's linear search.
Dirhash is enabled by the UFS_DIRHASH option, but not by default.
|
| 1.39 |
| 14-Aug-2004 |
mycroft | branches: 1.39.4; 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.38 |
| 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.37 |
| 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.36 |
| 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.35 |
| 15-May-2003 |
kristerw | branches: 1.35.2; The C language does not permit statements of the form (X ? Y : Z) = 0; even though gcc handles this by a stupid extension.
Transform these to correct C.
Approved by fvdl.
|
| 1.34 |
| 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.33 |
| 17-Feb-2003 |
perseant | Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now (there are still some details to work out) but expect that to go away soon. To support these basic changes (creation of lfs_putpages, lfs_gop_write, mods to lfs_balloc) several other changes were made, to wit:
* Create a writer daemon kernel thread whose purpose is to handle page writes for the pagedaemon, but which also takes over some of the functions of lfs_check(). This thread is started the first time an LFS is mounted.
* Add a "flags" parameter to GOP_SIZE. Current values are GOP_SIZE_READ, meaning that the call should return the size of the in-core version of the file, and GOP_SIZE_WRITE, meaning that it should return the on-disk size. One of GOP_SIZE_READ or GOP_SIZE_WRITE must be specified.
* Instead of using malloc(...M_WAITOK) for everything, reserve enough resources to get by and use malloc(...M_NOWAIT), using the reserves if necessary. Use the pool subsystem for structures small enough that this is feasible. This also obsoletes LFS_THROTTLE.
And a few that are not strictly necessary:
* Moves the LFS inode extensions off onto a separately allocated structure; getting closer to LFS as an LKM. "Welcome to 1.6O."
* Unified GOP_ALLOC between FFS and LFS.
* Update LFS copyright headers to correct values.
* Actually cast to unsigned in lfs_shellsort, like the comment says.
* Keep track of which segments were empty before the previous checkpoint; any segments that pass two checkpoints both dirty and empty can be summarily cleaned. Do this. Right now lfs_segclean still works, but this should be turned into an effectless compatibility syscall.
|
| 1.32 |
| 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.31 |
| 01-Dec-2002 |
matt | Add multiple inclusion protection for headers. Fix mismatched variable declarations (missing const's) as needed.
|
| 1.30 |
| 26-Nov-2002 |
yamt | eliminate i_ino from in-core inode and use local variable instead.
ok'ed by Frank van der Linden.
|
| 1.29 |
| 06-Jul-2002 |
perseant | Deal with fragment size changes better. For each fragment that can exist on an on-disk inode, we keep a record of its size in struct inode, which is updated when we write the block to disk. The cleaner routines thus have ready access to what size is the correct size for this block, on disk.
Fixed a related bug: if a file with fragments is being cleaned (fragments being cleaned) at the same time it is being extended beyond NDADDR blocks, we could write a bogus FINFO record that has a frag in the middle; when it was cleaned this would give back bogus file data. Don't write the indirect blocks in this case, since there is no need.
lfs_fragextend and lfs_truncate no longer require the seglock, but instead take a shared lock, which the seglock locks exclusively.
|
| 1.28 |
| 16-Jun-2002 |
perseant | For synchronous writes, keep separate i/o counters for each write, so processes don't have to wait for one another to finish (e.g., nfsd seems to be a little happier now, though I haven't measured the difference). Synchronous checkpoints, however, must always wait for all i/o to finish.
Take the contents of the callback functions and have them run in thread context instead (aiodoned thread). lfs_iocount no longer has to be protected in splbio(), and quite a bit less of the segment construction loop needs to be in splbio() as well.
If lfs_markv is handed a block that is not the correct size according to the inode, refuse to process it. (Formerly it was extended to the "correct" size.) This is possibly more prone to deadlock, but less prone to corruption.
lfs_segclean now outright refuses to clean segments that appear to have live bytes in them. Again this may be more prone to deadlock but avoids corruption.
Replace ufsspec_close and ufsfifo_close with LFS equivalents; this means that no UFS functions need to know about LFS_ITIMES any more. Remove the reference from ufs/inode.h.
Tested on i386, test-compiled on alpha.
|
| 1.27 |
| 18-Dec-2001 |
fvdl | branches: 1.27.8; 1.27.10; Bring over fixes from FreeBSD that weren't incorporated yet, mainly from Kirk McKusick. They implement taking pending block/inode frees into account for the sake of correct statfs() numbers, and adding a new softdep type (newdirblk) to correctly handle newly allocated directory blocks.
Minor additional changes: 1) swap the newly introduced fs_pendinginodes and fs_pendingblock fields in ffs_sb_swap, and 2) declare lkt_held in the debug version of the softdep lock structure volatile, as it can be modified from interrupt context #ifdef DEBUG.
|
| 1.26 |
| 26-Oct-2001 |
lukem | this needs <ufs/ufs/quota.h>, so pull it in
|
| 1.25 |
| 15-Sep-2001 |
chs | branches: 1.25.2; 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.24 |
| 05-Jun-2001 |
mrg | branches: 1.24.4; 1.24.6; only include "fs_lfs.h" if _KERNEL_OPT.
|
| 1.23 |
| 10-Jan-2001 |
chs | branches: 1.23.2; attach the softdep pagecache pseudo-buffers to the inode so we can find them quickly in the softdep truncate path.
|
| 1.22 |
| 06-Jul-2000 |
perseant | Fix so non-kernel code will compile (_LKM)
|
| 1.21 |
| 05-Jul-2000 |
perseant | Clean up accounting of lfs_uinodes (dirty but unwritten inodes).
Make lfs_uinodes a signed quantity for debugging purposes, and set it to zero as fs mount time.
Enclose setting/clearing of the dirty flags (IN_MODIFIED, IN_ACCESSED, IN_CLEANING) in macros, and use those macros everywhere. Make LFS_ITIMES use these macros; updated the ITIMES macro in inode.h to know about this. Make ufs_getattr use ITIMES instead of FFS_ITIMES.
|
| 1.20 |
| 03-Jul-2000 |
perseant | Allow the number of free segments reserved for the cleaner to be parametrized in the filesystem, defaulting to MIN_FREE_SEGS = 2 but set to something more reasonable at newfs_lfs time.
Note the number of blocks that have been scheduled for writing but which are not yet on disk in an inode extension, i_lfs_effnblks. Move i_ffs_effnlink out of the ffs extension and onto the main inode, since it's used all over the shared code and the lfs extension would clobber it.
At inode write time, indirect blocks and inode-held blocks of inodes that have i_lfs_effnblks != i_ffs_blocks are cleansed of UNWRITTEN disk addresses, so that these never make it to disk.
|
| 1.19 |
| 29-May-2000 |
mycroft | branches: 1.19.2; Pull in IN_ACCESSED changes and some MNT_LAZY `bug fixes' from FFS to EXT2FS.
|
| 1.18 |
| 29-May-2000 |
mycroft | Add a new inode flags called IN_ACCESSED. This used in place of IN_MODIFIED to record that the atime was updated. In ffs_update(), we only do synchronous writes if something *other* than the atime was changed.
|
| 1.17 |
| 27-May-2000 |
perseant | branches: 1.17.2; Prevent dirops from getting around lfs_check and wedging the buffer cache. All the dirop vnops now mark the inodes with a new flag, IN_ADIROP, which is removed as soon as the dirop is done (as opposed to VDIROP which stays until the file is written). To address one issue raised in PR#9357.
|
| 1.16 |
| 18-Nov-1999 |
enami | Define i_e2fs_rdev.
|
| 1.15 |
| 18-Nov-1999 |
enami | Cosmetic changes; fix indentation and usage of white spaces.
|
| 1.14 |
| 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.13 |
| 08-Jul-1999 |
wrstuden | branches: 1.13.2; 1.13.4; 1.13.8; Modify file systems to deal with struct lock in struct vnode. All leaf fs's other than nfs use genfs_lock() for locking.
Modify lookup routines to set PDIRUNLOCK when they unlock the parrent.
|
| 1.12 |
| 09-Mar-1999 |
perseant | branches: 1.12.4; Add IN_CLEANING flag for LFS
|
| 1.11 |
| 01-Mar-1998 |
fvdl | Merge with Lite2 + local changes
|
| 1.10 |
| 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.9 |
| 01-Sep-1996 |
mycroft | Add a set of generic file system operations that most file systems use. Also, fix some time stamp bogosities.
|
| 1.8 |
| 15-Jun-1995 |
cgd | compensate for timeval/timespec/stat structure changes.
|
| 1.7 |
| 26-Mar-1995 |
jtc | KERNEL -> _KERNEL
|
| 1.6 |
| 21-Dec-1994 |
mycroft | Add RCS ids where missing.
|
| 1.5 |
| 14-Dec-1994 |
mycroft | Sync with CSRG.
|
| 1.4 |
| 20-Oct-1994 |
cgd | update for new syscall args description mechanism, and deal safely with wider types.
|
| 1.3 |
| 30-Jun-1994 |
cgd | fix the definition of a dev_t
|
| 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.12.4.1 |
| 02-Aug-1999 |
thorpej | Update from trunk.
|
| 1.13.8.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
| 1.13.4.1 |
| 19-Oct-1999 |
fvdl | Bring in Kirk McKusick's FFS softdep code on a branch.
|
| 1.13.2.2 |
| 18-Jan-2001 |
bouyer | Sync with head (for UBC+NFS fixes, mostly).
|
| 1.13.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
| 1.17.2.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
| 1.19.2.1 |
| 14-Sep-2000 |
perseant | Pull up recent LFS kernel changes (approved by thorpej):
ufs/ufs/inode.h, 1.20--1.22 (add i_lfs_effnblks extension ; make ITIMES aware of LFS_ITIMES; _LKM protection so userland progs compile) ufs/ufs/ufs_vnops.c, 1.69, 1.71 (remove IN_ADIROP; use ITIMES instead of FFS_ITIMES) ufs/ufs/ufs_readwrite.c, 1.27 (use lfs_reserve in lfs_write) ufs/lfs/lfs.h, 1.26--1.32 (define LFS_EST_* macros ; change MIN_FREE_SEGS to lfs_minfreesegs ; add avail and bfree to CLEANERINFO ; change lfs_uinodes to signed ; change lfs_dmeta to signed ; add whitespace to line up structure members ; explicit cast to int32_t in LFS_EST_* macros) ufs/lfs/lfs_alloc.c, back out 1.34.2.3 (pullups of 1.39, 1.40); then pull up 1.38 (clean up on error) 1.39--1.43 (restore fvdl's ufs_hashlock fix ; restore fvdl's ufs_hashlock fix ; set i_lfs_effnblks ; use UINO macros ; add comments and fix long lines) ufs/lfs/lfs_balloc.c, 1.19 (don't succeed halfway) 1.21--1.25 (use i_lfs_effnblks ; fix i_lfs_effnblks computation and quieten ; fix i_ffs_blocks in unwritten fragment ; remove useless debugging check ; add comments and (c) 2000) ufs/lfs/lfs_bio.c, 1.24--1.30 (cleanup and make lfs_flush_fs take "struct lfs *" instead of "struct mount *" ; use lfs_minfreeseg instead of MIN_FREE_SEGS ; use UINO macros, and copy bfree/avail to CLEANERINFO ; add lfs_reserve function ; 1.28--1.30 fix printf formatting) ufs/lfs/lfs_cksum.c, 1.13 (add (c) 2000) ufs/lfs/lfs_debug.c, 1.11 (use btodb instead of DEV_BSIZE) ufs/lfs/lfs_extern.h, 1.18, 1.20--1.21 (function prototype changes) ufs/lfs/lfs_inode.c, 1.38 (rewrite lfs_truncate from ffs_truncate) 1.40--1.44 (count written and unwritten blocks seperately ; use disk block units instead of bytes ; remove unnecessary "mod" variable ; correct B_DELWRI to avoid bawrite panic ; use lfs_reserve) ufs/lfs/lfs_segment.c, 1.52-1.59 (use lfs_dmeta to note used summaries ; check for UNWRITTEN in indirect blocks ; more debugging stuff inside #ifdef DEBUG_LFS ; use LK_CANRECURSE ; don't drop dirty indirect blocks ; use UINO macros ; don't hose the free list ; use btodb() instead of DEV_BSIZE ; make it compile again (oops)) ufs/lfs/lfs_subr.c, 1.16--1.17 (check for locked inodes before changing ; use btodb() instead of DEV_BSIZE, (c) 2000) ufs/lfs/lfs_syscalls.c, back out 1.41.4.2 (fvdl's ufs_hashlock fix); then pull up 1.43 (use lfs_dmeta) 1.44--1.45 (restore fvdl's ufs_hashlock fix) 1.46--1.47 (fix lfs_avail leakage from sblock segments ; use UINO macros) 1.49 (bounds-check inode numbers in lfs_markv) ufs/lfs/lfs_vfsops.c, 1.53 (use LFS_EST_* macros in lfs_statfs) 1.56--1.58 (initialize lfs_minfreeseg, lfs_effnblk ; initialize lfs_uinodes ; initialize lfs_ravail) ufs/lfs/lfs_vnops.c, 1.40 (remove VDIROP from removed files) 1.42--1.44 (move SET_ENDOP below the removal of VDIROP ; use UINO macros and add lfs_itimes function ; use lfs_reserve in dirops)
|
| 1.23.2.7 |
| 11-Dec-2002 |
thorpej | Sync with HEAD.
|
| 1.23.2.6 |
| 01-Aug-2002 |
nathanw | Catch up to -current.
|
| 1.23.2.5 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
| 1.23.2.4 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
| 1.23.2.3 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
| 1.23.2.2 |
| 21-Sep-2001 |
nathanw | Catch up to -current.
|
| 1.23.2.1 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
| 1.24.6.1 |
| 01-Oct-2001 |
fvdl | Catch up with -current.
|
| 1.24.4.3 |
| 06-Sep-2002 |
jdolecek | sync kqueue branch with HEAD
|
| 1.24.4.2 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
| 1.24.4.1 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
| 1.25.2.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
| 1.27.10.1 |
| 20-Jun-2002 |
lukem | Pull up revision 1.28 (requested by perseant in ticket #325): For synchronous writes, keep separate i/o counters for each write, so processes don't have to wait for one another to finish (e.g., nfsd seems to be a little happier now, though I haven't measured the difference). Synchronous checkpoints, however, must always wait for all i/o to finish. Take the contents of the callback functions and have them run in thread context instead (aiodoned thread). lfs_iocount no longer has to be protected in splbio(), and quite a bit less of the segment construction loop needs to be in splbio() as well. If lfs_markv is handed a block that is not the correct size according to the inode, refuse to process it. (Formerly it was extended to the "correct" size.) This is possibly more prone to deadlock, but less prone to corruption. lfs_segclean now outright refuses to clean segments that appear to have live bytes in them. Again this may be more prone to deadlock but avoids corruption. Replace ufsspec_close and ufsfifo_close with LFS equivalents; this means that no UFS functions need to know about LFS_ITIMES any more. Remove the reference from ufs/inode.h. Tested on i386, test-compiled on alpha.
|
| 1.27.8.2 |
| 15-Jul-2002 |
gehenna | catch up with -current.
|
| 1.27.8.1 |
| 20-Jun-2002 |
gehenna | catch up with -current.
|
| 1.35.2.7 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
| 1.35.2.6 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
| 1.35.2.5 |
| 24-Jan-2005 |
skrll | Sync with HEAD.
|
| 1.35.2.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
| 1.35.2.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
| 1.35.2.2 |
| 25-Aug-2004 |
skrll | Sync with HEAD.
|
| 1.35.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
| 1.39.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
| 1.40.2.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
| 1.41.4.3 |
| 21-Jan-2008 |
yamt | sync with head
|
| 1.41.4.2 |
| 03-Sep-2007 |
yamt | sync with head.
|
| 1.41.4.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
| 1.46.26.2 |
| 15-Apr-2007 |
yamt | sync with head.
|
| 1.46.26.1 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
| 1.47.4.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
| 1.47.2.2 |
| 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.47.2.1 |
| 10-Apr-2007 |
ad | Sync with head.
|
| 1.48.22.3 |
| 10-Jan-2008 |
bouyer | Sync with HEAD
|
| 1.48.22.2 |
| 08-Jan-2008 |
bouyer | Sync with HEAD
|
| 1.48.22.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
| 1.48.18.1 |
| 04-Dec-2007 |
ad | Pull the vmlocking changes into a new branch.
|
| 1.48.16.1 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
| 1.48.10.2 |
| 23-Mar-2008 |
matt | sync with HEAD
|
| 1.48.10.1 |
| 09-Jan-2008 |
matt | sync with HEAD
|
| 1.51.16.2 |
| 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
| 1.51.16.1 |
| 19-Oct-2008 |
haad | Sync with HEAD.
|
| 1.51.14.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.12.2 |
| 10-Oct-2008 |
skrll | Sync with HEAD.
|
| 1.51.12.1 |
| 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
| 1.51.10.2 |
| 11-Aug-2010 |
yamt | sync with head.
|
| 1.51.10.1 |
| 04-May-2009 |
yamt | sync with head.
|
| 1.51.6.2 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
| 1.51.6.1 |
| 28-Sep-2008 |
mjf | Sync with HEAD.
|
| 1.54.4.2 |
| 19-May-2012 |
riz | Apply patch (requested by buhrow in ticket #1759):
sys/ufs/lfs/lfs_vnops.c patch sys/ufs/ufs/inode.h patch sys/ufs/ufs/ufs_extern.h patch sys/ufs/ufs/ufs_lookup.c patch sys/ufs/ufs/ufs_vnops.c patch sys/ufs/ufs/ufs_wapbl.c patch
Port dholland's ufs_rename locking changes to netbsd-5. [buhrow, ticket #1759]
Hello. More testing has revealed a minor misunderstanding between the vnode API in -current and 5.x. The below patch, against NetBSD-5.1 sources, rolls all the accumulated patches into one patch set. With this patch, I believe you can now run with WAPBL, softdep or traditional ufs semantics with heavy file loads and avoid panics due to resource exhaustion and/or tstile deadlocks. Testing has been done on I386, both uniprocessor and multiprocessor, and on Sparc machines in uniprocessor mode, though I think multiprocessor Sparc would be fine as well. Since these changes are machine independent, I don't anticipate any issues on any platform. It is my hope that modulo any final issues that come up in the final round of testing I'm currently performing, these patches will be ready to be pulled up into the NetBSD-5 branch. Finally, I'd like to thank mouse@ and hannken@ for their help and patience in helping me track down and test the final versions of these patches. With their assistance, I'm confident these patches make NetBSD-5 a much more stable and robust operating environment in a variety of setings.
|
| 1.54.4.1 |
| 29-Nov-2008 |
snj | Pull up following revision(s) (requested by mrg in ticket #147): sys/ufs/ext2fs/ext2fs_alloc.c: revision 1.37 sys/ufs/ext2fs/ext2fs_bswap.c: revision 1.14 sys/ufs/ext2fs/ext2fs_dinode.h: revision 1.17 sys/ufs/ext2fs/ext2fs_lookup.c: revision 1.56 sys/ufs/ext2fs/ext2fs_vnops.c: revision 1.83 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.140 sys/ufs/ufs/inode.h: revision 1.55 add support for 32 bit uid/gid fields in ext2, but only do so for when the revision is > REV0.
|
| 1.54.2.2 |
| 03-Mar-2009 |
skrll | Sync with HEAD.
|
| 1.54.2.1 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
| 1.55.4.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
| 1.56.4.1 |
| 05-Mar-2011 |
rmind | sync with head
|
| 1.56.2.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
| 1.58.6.2 |
| 02-Jun-2012 |
mrg | sync to latest -current.
|
| 1.58.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
| 1.58.2.5 |
| 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.58.2.4 |
| 16-Jan-2013 |
yamt | sync with (a bit old) head
|
| 1.58.2.3 |
| 30-Oct-2012 |
yamt | sync with head
|
| 1.58.2.2 |
| 23-May-2012 |
yamt | sync with head.
|
| 1.58.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
| 1.62.2.4 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
| 1.62.2.3 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
| 1.62.2.2 |
| 23-Jun-2013 |
tls | resync from head
|
| 1.62.2.1 |
| 25-Feb-2013 |
tls | resync with head
|
| 1.65.6.1 |
| 10-Aug-2014 |
tls | Rebase.
|
| 1.65.2.1 |
| 18-May-2014 |
rmind | sync with head
|
| 1.71.4.3 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
| 1.71.4.2 |
| 05-Oct-2016 |
skrll | Sync with HEAD
|
| 1.71.4.1 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
| 1.72.2.1 |
| 06-Aug-2016 |
pgoyette | Sync with HEAD
|
| 1.76.14.1 |
| 20-Apr-2020 |
bouyer | Sync with HEAD
|
| 1.76.4.1 |
| 21-Apr-2020 |
martin | Sync with HEAD
|