fvdl
e3dbad5a3c
Revert this back to 2 revisions ago, these checks are done higher up now.
2000-03-15 16:31:52 +00:00
fvdl
563d336e44
Don't immediately return in ffs_fsync if there appears to be no data
...
to flush if it's a vnode on a softdep filesystem. softdep_sync_metadata
may still need to do some work.
2000-03-14 13:06:29 +00:00
perseant
61fa9e1409
Move vinvalbuf's check for dirty blocks into ffs_fsync, to ensure that
...
mode and ownership bits are flushed to disk before the vnode is
reclaimed.
The check, introduced in the softdep merge, assumes that if no blocks
are dirty, no file data *or metadata* needs to be flushed to disk. This
is true of ffs, but is not true of lfs, and may not be true of other
filesystems.
Tested by myself and Bill Squier <groo@cs.stevens-tech.edu>.
2000-03-11 05:00:18 +00:00
fvdl
89670eb646
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.
2000-02-25 19:58:25 +00:00
fvdl
fe39281ea4
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.
2000-02-14 22:00:21 +00:00
bouyer
3c680c00ab
Handle pre-FS_42POSTBLFMT. I now can mount an Ultrix file system on my
...
sparc without panic.
2000-01-18 18:41:29 +00:00
drochner
800b976584
Call ffs_oldfscompat() before all the consistency checks, to avoid the
...
use of uninitialized data in the checks if the filesystem is an old one.
1999-12-10 14:36:04 +00:00
fvdl
0b1963121a
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
1999-11-15 18:49:07 +00:00
enami
fee96e1746
Check if the type of device node isn't VBAD before touching v_specinfo. If
...
the device vnode is revoked, the field is NULL and touching it causes null
pointer derefercence.
1999-10-20 14:32:09 +00:00
wrstuden
e682a080e9
In spec_close(), if we're not doing a non-blocking close and VXLOCK is
...
not set, unlock the vnode before calling the device's close routine and
relock it after it returns. tty close routines will sleep waiting for
buffers to drain, which won't happen often times as the other side needs
to grab the vnode lock first.
Make all unmount routines lock the device vnode before calling VOP_CLOSE().
1999-10-16 23:53:26 +00:00
thorpej
29df848753
Need <string.h> for memcpy(3) prototype if building from userland.
1999-09-14 04:50:54 +00:00
wrstuden
3bf14d81e9
Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl
...
call with F_FSCTL set and F_SETFL calls generate calls to a new
fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0
for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems
use genfs_fcntl().
Reviewed by: thorpej
Tested by: wrstuden
1999-08-03 20:19:16 +00:00
drochner
12a6593f79
clean up inclusion of "opt_ffs.h" and use of "FFS_EI" a bit
1999-08-03 19:22:43 +00:00
wrstuden
976aedb7ac
Adjust mountroot routines to vrele rootvp in case of mount error. Closes
...
PR 7977 by Neil Carson, <neil@brini.com>.
1999-07-17 01:08:28 +00:00
wrstuden
379a26972f
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.
1999-07-08 01:05:58 +00:00
mrg
d2397ac5f7
completely remove Mach VM support. all that is left is the all the
...
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
mycroft
b174019ccc
Pass null pointers to VOP_UPDATE rather than having all the callers fetch the
...
current time themselves.
1999-03-05 21:09:48 +00:00
mycroft
86ed73efb4
Permit the access and modify time pointers passed to VOP_UPDATE to be null,
...
meaning the current time.
1999-03-05 20:47:06 +00:00
bouyer
00d7241e81
Don't check fs_bsize before the superblock has been swapped if needed.
...
Check value of sbsize before allocating memory with this value.
1999-03-05 12:02:18 +00:00
wrstuden
862a56e88b
Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now
...
only handles the file handle to vnode conversion, and a new call,
vfs_checkexp(), performs the export verification.
1999-02-26 23:44:43 +00:00
bouyer
22d556f6cf
Make sure a buffer optained from bread() is always bresle()'d in case of
...
error. Closes PR kern/1448 from Wolfgang Solfrank.
1999-02-10 13:14:08 +00:00
bouyer
cdbe530495
No need to #include malloc.h here.
1998-12-04 11:02:30 +00:00
bouyer
3efc699962
Sanity check a few values in the superblock, to avoid mallocing huge
...
memory area if we try to mount a corrupted filesystem. Fixes kern/3933.
1998-12-04 11:00:40 +00:00
thorpej
1fcae7f1be
defopt FFS_EI
1998-11-12 19:51:10 +00:00
mycroft
1a5b9c6c30
Do not corrupt file flags when file system is full!
1998-10-27 21:32:58 +00:00
thorpej
f7948d05a1
Use DINODE_SIZE rather than pointer arithmetic.
1998-10-23 00:31:28 +00:00
christos
e62c8fd824
Missed a conditional for FFS_EI; appears when we compile without -Ox
1998-10-04 18:07:57 +00:00
thorpej
60cfe320cc
Use the pool allocator and the "nointr" pool page allocator for FFS inodes.
...
XXX MFS also comes in here for inodes, and used a different malloc type,
but the structure is the same, so we just use the FFS inode pool.
1998-09-01 03:11:08 +00:00
thorpej
39f683419f
Back out part of last change (uninitialized work-around).
1998-08-18 18:15:41 +00:00
thorpej
6fc90a1a4d
Add some braces to make egcs happy (ambiguous else warning). Also,
...
deal with bogus uninitialized warning (__noreturn__ related)
1998-08-18 06:47:53 +00:00
perry
27ca6798df
bzero->memset, bcopy->memcpy, bcmp->memcmp
1998-08-09 20:15:38 +00:00
drochner
2dcc522f1d
The fragtbl[], inside[] and around[] variables are needed by "fsck",
...
so we can't put them inside "#ifdef _KERNEL".
Put declarations inside .c files where needed to preserve namespace.
1998-07-28 17:30:01 +00:00
mycroft
829367f279
Omit some externs if not _KERNEL.
1998-07-28 04:17:51 +00:00
jonathan
d275e56dee
* defopt COMPAT_{09,10,11,12,13} and COMPAT_NOMID.
...
TODO: revisit interaction between native compat and emul compat usage.
1998-07-05 08:49:30 +00:00
sommerfe
7ba7fbbb23
Always include fifos; "not an option any more".
1998-06-24 20:58:44 +00:00
sommerfe
becaafeea0
defopt for options FIFO
1998-06-22 22:00:59 +00:00
kleink
2d869bbacf
KNF, mostly of FFS_EI changes.
1998-06-13 16:26:22 +00:00
cgd
651b44e211
Rework the way kernel include files are installed. In the new method,
...
as with user-land programs, include files are installed by each directory
in the tree that has includes to install. (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.) The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change. Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
kleink
74ce7ac984
KNF: only include one of <sys/{param,types}.h>, not both.
1998-06-10 15:57:39 +00:00
scottr
7171cca4b8
Protect various config(8)-generated files from inclusion while
...
building LKMs. Fixes PR 5557.
1998-06-09 07:46:31 +00:00
ragge
1a66918fc0
Wrong include file order; caused compile error on vax.
1998-06-08 17:59:08 +00:00
scottr
d48f258f90
Use the newly-defined opt_quota.h.
1998-06-08 04:27:50 +00:00
kleink
382743ada3
Convert fsync vnode operator implementations and usage from the old `waitfor'
...
argument and MNT_WAIT/MNT_NOWAIT to `flags' and FSYNC_WAIT.
1998-06-05 19:53:00 +00:00
ross
ac5774c288
Fix a 64-bit pointer/int warning.
1998-03-19 03:42:35 +00:00
bouyer
091dafd39f
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.
1998-03-18 15:57:26 +00:00
fvdl
e5bc90f40c
Merge with Lite2 + local changes
1998-03-01 02:20:01 +00:00
thorpej
b5bf2ed6d0
Place a pointer to an array of our vnodeopv_desc *'s in our vfsops
...
structure, for use by vfs_attach().
1998-02-18 07:05:47 +00:00
mrg
d90485202c
- add defopt's for UVM, UVMHIST and PMAP_NEW.
...
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
mrg
1a8c7604f4
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. :-)
1998-02-05 07:59:28 +00:00
mjacob
949982f2a4
In calculating the f_bavail field, don't take 32 bit quantities and
...
multiply them by 90 (to be divided by 100) and expect them to be sane
for very large values (I was getting a negative 'avail' count).
1997-10-16 18:29:11 +00:00
fvdl
e351013e56
Fix messed up RCS Id.
1997-07-22 14:36:31 +00:00
fvdl
5d96e77ef6
Get locking around inode hashing right.
1997-07-07 23:37:36 +00:00
fvdl
acffafa288
Oops, I messed up the lock. Reverting it until I have time to fix it,
...
to avoid people getting trouble after the supscan hits.
1997-07-07 11:47:06 +00:00
fvdl
b362aa16be
Put lock around inode hashing, because getnewvnode or MALLOC might block,
...
creating race conditions.
1997-07-06 12:43:43 +00:00
drochner
8c0a9bab00
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.
1997-07-04 20:22:09 +00:00
mrg
295af85e9e
remove swap configuration.
1997-06-12 17:12:17 +00:00
bouyer
76c414a957
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.
1997-06-11 10:09:37 +00:00
mycroft
66c4e32b11
Just increment the generation count. Using the time is bogus and defeats
...
fsirand(8).
1997-03-10 06:18:28 +00:00
thorpej
727078d31e
- Add ffs_mountroot to ffs_vfsops.
...
- Only attempt to mount a root FFS on a DV_DISK class device.
1997-01-31 03:05:31 +00:00
tls
0024ac02cf
Correct old inode flag names in comment, and reformat for 80 character screen
1997-01-27 10:30:14 +00:00
cgd
90688fce27
Change the second and third args to struct vfsops' (*vfs_mount)() to
...
'const char *', and 'void *', respectively. The second arg is taken directly
from user arguments, and is const there, so must be const in the prototypes
and functions. The third arg is also taken directly from user arguments.
It doesn't have to be changed, but since it's cleaner to keep the type
the same as the user arg's type, and I'm already making the 'const char *'
change...
1996-12-22 10:10:12 +00:00
thorpej
34e2fb3bb6
Performance enhancement from Kirk McKusick <mckusick@McKusick.COM>:
...
When freeing an indirect block, there is no need to write it (synchronously,
no less!) before tossing it.
1996-11-06 03:02:59 +00:00
christos
90c7de0919
revert previous kprintf changes
1996-10-12 21:58:44 +00:00
christos
de1b2b437e
printf -> kprintf, sprintf -> ksprintf
1996-10-10 17:16:17 +00:00
christos
9cdf304505
Make this compile cleanly from userland (fsck_ffs).
1996-09-20 22:14:59 +00:00
mycroft
2bc736661a
Implement poll(2).
1996-09-07 12:40:22 +00:00
mycroft
c52352c819
Add a set of generic file system operations that most file systems use.
...
Also, fix some time stamp bogosities.
1996-09-01 23:47:48 +00:00
mycroft
261382c331
Change VOP_UPDATE() semantics:
...
* Make 2nd and 3rd args timespecs, not timevals.
* Consistently pass a Boolean as the 4th arg (except in LFS).
Also, fix ffs_update() and lfs_update() to actually change the nsec fields.
1996-05-11 18:26:27 +00:00
christos
48fda0b4ca
Fix printf format strings
1996-03-17 02:16:18 +00:00
christos
ec3d880232
ffs prototypes
1996-02-09 22:22:18 +00:00
cgd
b567511c78
Fix from Lite-2: when reloading the file system, save fs_maxcluster and
...
the old summary structure pointers, and recalculate cluster per cyl. grp.
information.
1995-12-19 23:27:53 +00:00
mycroft
7edc899fdd
ffs -> ufs
1995-11-11 22:00:15 +00:00
cgd
60db543a18
don't just throw away updates to the cylinder group bitmaps, actually
...
write them to disk! From Keith Smith at Harvard, via Kirk McKusick.
fixes the occasional `blkfree: freeing free block' that has been seen
when cluster reallocation code is enabled.
1995-07-19 15:47:36 +00:00
cgd
8f62c773e8
don't assume the f_fsnamelen is nul-truncated or longer than MFSNAMELEN
1995-06-18 14:45:14 +00:00
cgd
94b7cf1b85
compensate for timeval/timespec/stat structure changes.
1995-06-15 23:22:41 +00:00
mycroft
fc46bf42f7
Make use of the `fs_clean' field. If it was set when the file system was
...
mounted or upgraded to r-w, then clear it and set it again later when the
file system is unmounted or downgraded.
1995-04-12 21:21:00 +00:00
jtc
db0046c14d
KERNEL -> _KERNEL
1995-03-28 19:59:56 +00:00
cgd
dd6089fc52
explicitly cast &time to (struct timeval *) when passing it to VOP_UPDATE.
...
new prototypes and picky compilers make a volatile mess.
1995-03-24 15:33:23 +00:00
mycroft
2f805fa51b
copy*str() should use size_t.
1995-03-09 12:05:21 +00:00
cgd
ad86c7f247
size for copyinstr should be u_long
1995-03-08 01:51:49 +00:00
mycroft
41f181e0d8
Clean up the code to frob mnt_stat a bit.
1995-01-18 09:44:34 +00:00
mycroft
9843f45605
Turn mountlist into a CIRCLEQ, and handle setting and checking of MNT_ROOTFS
...
differently.
1995-01-18 06:19:49 +00:00
mycroft
6a5daf3070
Ignore rotational optimization if nrpos == 1, as suggested by Stefan Esser.
1994-12-16 05:55:15 +00:00
mycroft
b4aa6d3a28
Call foo_statfs() from a common place when mounting.
1994-12-15 19:46:08 +00:00
mycroft
a63cb01c7d
Sync with CSRG.
1994-12-14 13:03:35 +00:00
mycroft
527b796ff5
Turn lease_check() into a vnode op, per CSRG.
1994-12-13 20:14:30 +00:00
mycroft
5857125e47
Sync with CSRG.
1994-12-13 19:10:43 +00:00
mycroft
4c7eedf0b8
This is not my day.
1994-10-28 20:20:18 +00:00
mycroft
c0fd0f67f1
Fix typo.
1994-10-28 20:16:10 +00:00
mycroft
0badb64371
For now, limit the maxfilesize to 2^31*bsize-1 in core. This is temporary.
1994-10-28 20:15:09 +00:00
mycroft
f62b376067
Fix a couple of types in the compatibility code.
1994-10-28 19:59:21 +00:00
mycroft
f5720d1edd
Don't allow truncating past maxfilesize.
1994-10-28 19:31:07 +00:00
cgd
f0c1138373
update for new syscall args description mechanism, and deal safely
...
with wider types.
1994-10-20 04:20:55 +00:00
mycroft
b303126d1e
Do the doasyncfree conditionalization better.
1994-07-04 21:06:07 +00:00
cgd
fccfa11af5
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
1994-06-29 06:39:25 +00:00
mycroft
d22df96ea2
Reload mnt_maxsymlinklen, for `fsck -c2'.
1994-06-28 21:50:24 +00:00
mycroft
d46a373019
Deallocate the vnode data using the correct type for MFS nodes.
1994-06-22 05:45:19 +00:00
mycroft
0be7885407
Add a couple of missing casts.
1994-06-22 03:01:40 +00:00
mycroft
914f6b157b
Fastlink compat.
1994-06-15 15:35:06 +00:00
mycroft
6d939e6bec
Format police.
1994-06-13 20:49:56 +00:00
pk
3eb1a95749
Check requested file size; negative values cause havoc.
1994-06-13 20:38:42 +00:00
mycroft
264b874c14
Update to 4.4-Lite fs code, with local changes.
1994-06-08 11:41:58 +00:00