summaryrefslogtreecommitdiff
path: root/sys/ufs
AgeCommit message (Collapse)Author
2009-01-31Rewrite DIRECTSIZ macro using offsetof. As a bonus it elimitanes castingAlexander Yurchenko
pointer to int. ok miod@ tedu@ millert@
2009-01-17Use proper assignment macros for dinode manipulations instead ofAlexander Yurchenko
abusing the DIP() macro which is an rvalue and can't be used as an lvalue. No functional changes. ok tedu@ pedro@
2009-01-15Use proper *_ASSIGN() macros in assigments instead of abusing rvalue macros.Alexander Yurchenko
No binary change. ok tedu@ My 1000th commit!
2008-11-24styled code is happy codeTed Unangst
2008-11-23fancy new ext2fs can have big inodes. we can possibly still read themTed Unangst
though if no new features are in play. diff from Wouter Godefroy
2008-11-06use PAGE_SIZE in FS_KERNMAXFILESIZE() use, note this is not the same as ↵Theo de Raadt
getpagesize() elsewhere. otto, please fix correctly after
2008-11-06Have called pass pagesize into FS_KERNMAXFILESIZE(), because there is noTheo de Raadt
automatic symbol that has this information. PAGE_SIZE is simply not portable, or even fixed on some systems. ok otto
2008-11-02introduce a macro for max file size, instead of hardcoding it; okOtto Moerbeek
millert@
2008-09-30Fix an occasional mfs-related panic on reboot in mfs_close. There's noTodd C. Miller
need to check v_usecount, the buffer queue check is sufficient. From mickey. OK deraadt@
2008-09-12Remove bzero/memset calls after pool_gets by passing the PR_ZEROBret Lambert
flag to the pool_get call. ok art@, krw@
2008-08-13remove a bunch of bogus ARGSUSEDThordur I. Bjornsson
2008-08-08Admit b_blkno means block number; a block is DEV_BSIZE (a.k.a.Kenneth R Westerback
512) bytes; ffs is inextricably tied to using b_blkno and disklabel always uses sectorsize units. Thus use DEV_BSIZE units for all fields describing ffs filesystems and convert to/from sectors where required. This enables the creation and use of ffs filesystems on non-512 byte sectorsize devices. This diff allows i386 and sgi (the two test platforms) to find disklabels that are not on a sectorsize boundary. Same change to further archs coming. This is a no-op on 512-byte sectorsize devices. This work triggered by jsing@'s need to create ffs filesystems on sgi cdroms so we can create cdrom install media for sgi. sgi testing by jsing@ ok jsing@ pedro@ "looks sane" beck@ weingart@
2008-08-08use cgbase() instead of doing arthmetic on fs_fpg when calculatingThordur I. Bjornsson
block# too ensure proper casting. From FreeBSD; ok miod@, pedro@, blambert@
2008-08-08spacing + wrap a line at 79chars.Thordur I. Bjornsson
2008-08-02fix printf format specifiers; ok krw@ millert@ deraadt@Otto Moerbeek
2008-07-22Use cgbase() instead of doing arithmetic on fs_fpg, for the former doesMiod Vallat
proper casts to ensure the result is not truncated. From FreeBSD via NetBSD. ok thib@
2008-07-09Remove an XXX comment about using the same pool for mfs and ffs, sinceThordur I. Bjornsson
mfs is using the ffs code and its the same object it would make no sense having two seperate pools... ok art@
2008-06-14A bunch of pool_get() + bzero() -> pool_get(..., .. | PR_ZERO)Michael Knudsen
conversions that should shave a few bytes off the kernel. ok henning, krw, jsing, oga, miod, and thib (``even though i usually prefer FOO|BAR''; thanks for looking.
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-06-09Update access(2) to have modern semantics with respect to X_OK andTodd C. Miller
the superuser. access(2) will now only indicate success for X_OK on non-directories if there is at least one execute bit set on the file. OK deraadt@ thib@ otto@
2008-05-08retire vn_default_error() and replace all instancesThordur I. Bjornsson
with eopnotsupp() instead; ok blambert@
2008-05-03Introduce vop_generic_bmap(); use it where applicable.Thordur I. Bjornsson
one thing of note, fifofs changes in that its bmap now sets the runp too 0, but that was an oversight in the old code. ok art@
2008-04-24remove useless defines for the vnode operations, and insteadThordur I. Bjornsson
init the op array functions with whatever the define was set too. ok dlg@,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-17Notify us of NOTE_LINK on mkdir(2) as well.Federico G. Schwindt
ok thib and miod.
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-12-16fix remaining cases of potential concurrent mfs_buflist access;Otto Moerbeek
ok deraadt@ millert@
2007-12-06solve the biggest problem with concurrent buflist access; makes mfs onOtto Moerbeek
SMP machines reliable. few corner cases remain, which will be dealt with later; ok deraadt@ millert@
2007-12-04fix out of partition/memory bounds access when accessing blocks at the tailOtto Moerbeek
end; avoids bad address errors; original diff by me with cleanup by millert@; ok millert@
2007-11-28g/c mfs_mountroot() and mfs_initminiroot(). We don't support root onTodd C. Miller
mfs. OK deraadt@
2007-11-27typos; ok jmc@Martynas Venckus
sys/dev/pci/pciide.c from naddy@
2007-11-24Try a forced unmount if mount_mfs is killed with SIGKILL.Marco Pfatschbacher
OK tedu@
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-10-09MALLOC+memset(,0,) -> malloc+M_ZERO. Don't forget FREE->free this time.Kenneth R Westerback
2007-10-08Initialize dh_blkfree with zero's.Kenneth R Westerback
ok beck@
2007-10-06Simpliest memset(,0,) -> M_ZERO changes. One (caddr *) cast removal,Kenneth R Westerback
otherwise just adding M_ZERO to malloc() and removing the immediately adjacent memset(,0,).
2007-10-05MALLOC/FREE -> malloc/free + M_ZERO.Thordur I. Bjornsson
As a side effect, this probably fixes PR5596, if the allocation of dh_hash succeeds and the dh_blkfree fails, we jump into the fail case, but we haven't initialized dh_hash properly, that is filling the array with memory from the dirhash pool, but the != NULL check holds, since the memory hasn't been zeroed and so we start pool_put()'ing, causing the crash in PR5596. PR5596 debugging by pedro. ok art@, krw@
2007-10-01Last of the really easy bzero() -> M_ZERO. Use 'p = malloc(sizeof(*p) ...'Kenneth R Westerback
where obvious.
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-08-03Increase dq_cnt in struct dquot from 16 to 32bits. OK deraadt@Todd C. Miller
2007-07-23Since __sparc__ gets defined on sparc64 too, add a !defined (__sparc64__)Mark Kettenis
to the condition that protects CPU_ISSUN4OR4C. While we currently define that macro on sparc64 too, we won't in the near future. ok miod@