summaryrefslogtreecommitdiff
path: root/sys/ufs/ffs
AgeCommit message (Collapse)Author
2008-06-12Bring biomem diff back into the tree after the nfs_bio.c fix went in.Theo de Raadt
ok thib beck art
2008-06-11back out biomem diff since it is not right yet. Doing very largeTheo de Raadt
file copies to nfsv2 causes the system to eventually peg the console. On the console ^T indicates that the load is increasing rapidly, ddb indicates many calls to getbuf, there is some very slow nfs traffic making none (or extremely slow) progress. Eventually some machines seize up entirely.
2008-06-10Buffer cache revampBob Beck
1) remove multiple size queues, introduced as a stopgap. 2) decouple pages containing data from their mappings 3) only keep buffers mapped when they actually have to be mapped (right now, this is when buffers are B_BUSY) 4) New functions to make a buffer busy, and release the busy flag (buf_acquire and buf_release) 5) Move high/low water marks and statistics counters into a structure 6) Add a sysctl to retrieve buffer cache statistics Tested in several variants and beat upon by bob and art for a year. run accidentally on henning's nfs server for a few months... ok deraadt@, krw@, art@ - who promises to be around to deal with any fallout
2008-05-08retire vn_default_error() and replace all instancesThordur I. Bjornsson
with eopnotsupp() instead; ok blambert@
2008-04-10the ffs code is a bit noisy when it runs out of inodes/space etc;Thordur I. Bjornsson
so ratelimit the messages to about once every 2secs. ok dlg@ (who also pointed out me missing 'static' in the timeval decls.) "sounds good to me" deraadt@
2008-03-16Widen some struct statfs fields to support large filesystem stataOtto Moerbeek
and add some to be able to support statvfs(2). Do the compat dance to provide backward compatibility. ok thib@ miod@
2008-01-22with a lot of fragments per cylinder group and lots of cylinderOtto Moerbeek
groups, it is possible that fpg * ncg overflows an int. Problem seen by jared rr spiegel while playing with very small fragments on a large disk. ok krw@ millert@
2008-01-05Make the ffs code 64-bit disk block number clean. Based on a diffOtto Moerbeek
from Pedro Martelleto. Two things remain: the on-disk quota structures are still 32-bit and statfs does not do 64-bit numbers yet. ok deraadt@
2007-11-27typos; ok jmc@Martynas Venckus
sys/dev/pci/pciide.c from naddy@
2007-11-09Code to read in the cylinder groups is duplicated in a few spots,Thordur I. Bjornsson
factor it into a new function, ffs_cgread(); and use that. From mickey; OK art@, toby@
2007-10-29MALLOC/FREE -> malloc/freeCharles Longeau
ok krw@
2007-09-23Move notatime check from ffs_update() to ffs_read() and ufs_setattr().Todd C. Miller
Fixes a couple cases where atime was being updated even when the filesystem was mounted with the noatime option. Adapted from similar placement in FreeBSD and NetBSD. Tested by myself and naddy@
2007-09-10When selecting cylinder groups as candidates for new directory creationThordur I. Bjornsson
make sure that theres a minimum amount of free blocks in that cylinder group by tweaking the minbfree calculation. Without this, cylinder groups with no free blocks could be chosen which resaults in expensive searches for free blocks each time a new file is created in the directory. Tweak the calculation of minifree (minimum free inodes) in the same way. Also decrease the maxcontigdirs as the file system fills up to lessen the chance of directory clusters overflowing the available space in the cylinder group. From FreeBSD (Rev 1.116 of sys/ufs/ffs/ffs_alloc.c); ok miod@
2007-09-10Lock the vnode in ffs_unmount() before passing it too vinvalbuf()Thordur I. Bjornsson
and VOP_CLOSE() since both of them expected it too be locked. ok art@
2007-09-07Use M_ZERO in a few more places to shave bytes from the kernel.Artur Grabowski
eyeballed and ok dlg@
2007-08-04When we're writing out the summary information and fail on some blockArtur Grabowski
we'll just randomly brelse a random block that might or might no have been the block that failed. Which wouldn't be necessary anyway since bwrite releases the block wether the write succeeded or not. And if someone won the race for that block (perfectly possible since we're sleeping in this function) we'll just release a live block under his feet. beck@ ok
2007-07-11Bring back the change in rev 1.70, it is safe now:Todd C. Miller
Propagate the wait flag from fsync down to softdep_fsync_mountdev() and do not perform synchronous sync there is no wait requested by skipping the drain_output() call. This fixes a problem where update kthread would sleep forever on some vnode since work is created faster than it can be flushed. OK deraadt@
2007-06-22Update ffs[1/2] time last written for cg's inThordur I. Bjornsson
clusteralloc(); From mickey; ok pedro@
2007-06-06Don't promote MNT_WAIT to MNT_NOWAIT when syncing the device vnode of aPedro Martelletto
mounted softdep file system, okay mickey@ beck@ art@
2007-06-01pedro ok'd this ~3500 line diff which removes the vop argumentTheo de Raadt
"ap = v" comments in under 8 seconds, so it must be ok. and it compiles too.
2007-06-01Nuke 'ufs_lbn_t', okay otto@ deraadt@ krw@ beck@Pedro Martelletto
2007-06-01cleanup of 'ufs1_daddr_t', first round, okay deraadt@Pedro Martelletto
2007-06-01revert previous comment "fix", must have been sleepingOtto Moerbeek
2007-06-01fix comment, fs_ipg is inode *blocks* per cylinder groupOtto Moerbeek
2007-06-01convert ufs2_daddr_t -> daddr64_t for greater clarity; ok pedro otto thibTheo de Raadt
2007-05-29when mount -f'ing a dirty filesystem, do not clear the unclean flag,Otto Moerbeek
the fs remains dirty. ok pedro@
2007-05-29FFS2-aware code for ffs_sbupdate() and ffs_reload().Pedro Martelletto
Okay otto@ millert@ krw@ beck@ thib@
2007-05-27use struct csum_total for superblock summary info; ok pedro@Otto Moerbeek
2007-05-26Dynamic buffer cache. Initial diff from mickey@, okay art@ beck@ toby@Pedro Martelletto
deraadt@ dlg@.
2007-05-03Update CGSIZE macro so that it is no longer based on fs_cpg.Todd C. Miller
This was part of the ffs2 changes but was not committed earlier in order to make the userland and kernel changes independent. NOTE: the change to newfs require an updated fs.h; building an updated newfs with the old fs.h may result in a broken filesystem. OK otto@
2007-04-29enforce -Wdeclaration-after-statement by handTheo de Raadt
2007-04-24Fix mounting of ffs2 via "mount -a". ffs2 is not separate from ffsTodd C. Miller
and should not have its own MOUNT_XXX define.
2007-04-23Remove 'cg_space' from 'struct cg'. Due to the alignment on 64-bitPedro Martelletto
architectures, CGSIZE() was returning something sligthly over one block. The 'new' fsck would round this value up to a fragment boundary, and end up trying to access memory beyond allocated space. From mickey@, okay pedro@, millert@ and otto@.
2007-04-20Do not use time_t for on-disk data structures, use int32_t insteadTodd C. Miller
since time_t will have to be crank to 64 bits at some point in the future. OK pedro@
2007-04-15Save block pointers contents before releasing interrupts so that panicPedro Martelletto
messages are consistent, from mickey@, okay pedro@
2007-04-13Move the declaration of VN_KNOTE() into vnode.h instead of havingThordur I. Bjornsson
multiple defines all over; ok tedu@
2007-04-11in ffs_reload() use ffs_validate() to check if theThordur I. Bjornsson
superblock is OK; Makes it work for FFS2. ok tedu@
2007-04-04Back out revision 1.70. By asynchronously writing the bitmaps to diskPedro Martelletto
upon unmount, we were generating rollbacks that wouldn't be taken care of, as well as leaving dangling items in softdep's worklist.
2007-03-31deregister, no change in object codePedro Martelletto
2007-03-23Make FFS allocation functions non-static, okay miod@ mk@ thib@Pedro Martelletto
2007-03-21Remove the v_interlock simplelock from the vnode structure.Thordur I. Bjornsson
Zap all calls to simple_lock/unlock() on it (those calls are #defined away though). Remove the LK_INTERLOCK from the calls to vn_lock() and cleanup the filesystems wich implement VOP_LOCK(). (by remvoing the v_interlock from there calls to lockmgr()). ok pedro@, art@, tedu@
2007-03-19Also shift superblock fields in ffs_reload(), okay beck@ deraadt@Pedro Martelletto
2007-03-19Add FFS2 fields to the superblock, change file system tools to keepPedro Martelletto
accessing FFS1 fields, okay art@, quite some testing by ckuethe@, simon@ and thib@, thanks.
2007-03-15Since p_flag is often manipulated in interrupts and without biglockArtur Grabowski
it's a good idea to use atomic.h operations on it. This mechanic change updates all bit operations on p_flag to atomic_{set,clear}bits_int. Only exception is that P_OWEUPC is set by MI code before calling need_proftick and it's automatically cleared by ADDUPC. There's no reason for MD handling of that flag since everyone handles it the same way. kettenis@ ok
2007-02-26Don't enforce RLIMIT_FSIZE on vnd(4) I/O operations, okay deraadt@Pedro Martelletto
2007-02-17do not look for sblock at offset 0; pedro@ deraadt@ okMichael Shalayeff
2007-02-04Correctly fake dinode for the FFS2 case in handle_workitem_freeblocks()Pedro Martelletto
Okay millert@
2007-01-26remove ancient device-specific trick from ffs1_blkpref()Pedro Martelletto
okay toby@ millert@
2007-01-17"correctly deallocate dependencies when growing into an indirect blockNikolay Sturm
and failing to acquire a data block, from freebsd" fix this in ffs2_balloc() as well requested by and ok pedro
2007-01-17more ufs2 leftoversPedro Martelletto