perseant
83adb24145
Allow negative values other than UNASSIGNED to be returned from ufs_bmap;
...
fixes a bug introduced in the 64-bit daddr_t conversion, that manifests
itself in LFS with kernels compiled with the FFS_EI option.
2003-02-09 03:26:59 +00:00
pk
338f31f581
Make the buffer cache code MP-safe.
2003-02-05 21:38:38 +00:00
perseant
14c17e57b4
Don't call a dirop within a dirop: if lfs_rename is actually deleting
...
a link, call lfs_remove directly before starting dirop rather than
having ufs_rename do it.
2003-02-03 00:32:35 +00:00
tron
f1eeaa9020
Only use MALLOC_DECLARE() in kernel namespace.
2003-02-01 18:34:14 +00:00
thorpej
b193480908
Add extensible malloc types, adapted from FreeBSD. This turns
...
malloc types into a structure, a pointer to which is passed around,
instead of an int constant. Allow the limit to be adjusted when the
malloc type is defined, or with a function call, as suggested by
Jonathan Stone.
2003-02-01 06:23:35 +00:00
yamt
84d61a1dc4
there's no need to treat VOP_WHITEOUT as dirop
...
because it modifies only one inode.
2003-01-30 14:18:32 +00:00
yamt
53d6eb47ee
don't use daddr_t for segment summary since it's an on-disk structure.
2003-01-29 13:14:33 +00:00
simonb
0adecbd12b
Remove variable that is only assigned to but not referenced.
2003-01-29 03:06:40 +00:00
yamt
e41d3a6f1c
make these compilable with lfs debug options.
...
(follow daddr_t change)
XXX maybe segment number should be 64bit.
2003-01-27 23:17:56 +00:00
kleink
865868a8b1
Further printf format fixes in the wake of daddr_t.
...
Note that PRI?64 and long long int arguments aren't made for each other,
nor are %lld and int64_t arguments.
2003-01-27 21:45:52 +00:00
tsutsui
daf84696c6
More printf format cleanup to reduce casts.
2003-01-26 06:42:31 +00:00
kleink
4e0e5333ae
Fix further printf format warnings for DEBUG, in the wake of daddr_t
...
having changed.
2003-01-25 23:00:09 +00:00
tron
5067836b9e
Use PRId64 instead of hard coding "%lld" to fix build problems under
...
LP64 ports.
2003-01-25 18:12:31 +00:00
fvdl
a138610cac
The oldblks and newblks arrays are used to store direct copies of
...
on-disk block pointers, so they should be int32_t. Error found
by Izumi Tsutsui.
2003-01-25 16:40:28 +00:00
tron
63dda858c6
Fix printf() format strings problems caused by "daddr_t" change.
2003-01-25 12:50:38 +00:00
fvdl
a3ff3a3038
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.
2003-01-24 21:55:02 +00:00
thorpej
b78f59b443
Merge the nathanw_sa branch.
2003-01-18 08:51:40 +00:00
yamt
03e1a46833
- zerofill struct lfs when allocating it.
...
- use M_ZERO instead of memset after malloc.
2003-01-12 13:04:52 +00:00
yamt
5f254d46cc
backout wrong assertions that i added.
2003-01-08 17:16:52 +00:00
yamt
99d625b53c
for lfs_remove/lfs_rmdir, keep removed vnodes marked VDIROP.
...
(backout parts of rev.1.40)
otherwise, directory structures can be corrupted because checkpoints can
occur via eg. lfs_vflush before parent directory is written.
2003-01-08 17:14:58 +00:00
yamt
69f1c0cb29
in set_dirop/endop, use normal vref/vrele instead of lfs versions
...
so that we don't miss lfs_inactivate.
2003-01-08 15:43:29 +00:00
yamt
ee36fccabb
add assertions.
2003-01-08 15:40:54 +00:00
yamt
49d2b56b43
use lfs_unmark_vnode instead of duplicated code fragments.
2003-01-08 15:40:04 +00:00
wiz
1035faff1d
writable, not writeable.
2003-01-06 20:30:28 +00:00
chs
822a8f2c0f
several bugs:
...
- move calls to softdep_setup_pagecache() (which can sleep to allocate
memory) outside the softdep lock.
- replace the softdep_flush_indir() hack (which tries to find another
vnode to fsync when we are holding lots of buffer-cache buffers locked
for long periods of time) with softdep_trackbufs() (which just kicks
the syncer and sleeps under the same circumstances). the former method
had a lock-ordering problem which would occasionally deadlock.
- relax the assertion in softdep_sync_metadata() which says that we should
never see D_ALLOCDIRECT deps for VREG vnodes. it's ok to see those
attached to indirect blocks.
also, there's no need to splbio() while allocating the buffer headers
to which pagecache dependencies are attached, so remove that.
fixes all the problems in PR 19288.
2003-01-01 23:08:56 +00:00
yamt
a5bf83bbfc
don't set vnode type to VNON in error case of ufs_makeinode.
...
(backout rev.1.74)
it seems that there's no need to do it (anymore?) and LFS has trouble with it.
(VNON vnodes marked VDIROP will never reclaimed)
ok'ed by Frank van der Linden.
2002-12-31 15:00:18 +00:00
yamt
140a8e56ca
write ifile only when it has dirty buffers.
2002-12-31 14:54:32 +00:00
yamt
cb9613feef
comment and assertions
2002-12-30 05:34:17 +00:00
yamt
6fc496c67a
move check of lfs_unlockvp from lfs_reserveavail to lfs_reserve
...
because lfs_reservebuf needs same check as well.
2002-12-30 05:31:53 +00:00
yamt
a05fbf74c0
fix vref/vunref mismatch.
2002-12-29 14:08:12 +00:00
yamt
88ae33f9e0
backout assertions in lfs_inactive.
...
they can be false when unmounting forcibly.
2002-12-29 07:05:55 +00:00
christos
ae2bf40b7e
fix compile problem.
2002-12-28 20:08:36 +00:00
yamt
d840722863
avoid warnings without DIAGNOSTIC.
...
pointed by Andreas Wrede.
2002-12-28 17:22:47 +00:00
yamt
a428d8a5af
dirop inode can't be passed to lfs_inactivate.
2002-12-28 15:12:26 +00:00
yamt
59be5399b7
- in lfs_reserve, vref vnodes that we're locking so that cleaner doesn't
...
try to reclaim them.
(workaround for deadlock noted in the comment in lfs_reserveavail)
- in lfs_rename, mark vnodes which are being moved as well as directry vnodes.
2002-12-28 14:39:08 +00:00
hannken
c122326822
Clear IN_SPACECOUNTED on (re-)used inodes.
...
This cures the "unmount pending error:" on softdep umounts.
Approved by: Frank van der Linden <fvdl@netbsd.org>
2002-12-27 16:07:13 +00:00
yamt
4b9c604ba7
- in lfs_reserve, reserve locked buffer count as well.
...
- don't wait for locking buf in lfs_bwrite_ext to avoid deadlocks.
- skip lfs_reserve when we're doing dirop.
reserve more (for lfs_truncate) in set_dirop instead.
this mostly solves PR 18972. (and hopefully PR 19196)
2002-12-26 13:37:18 +00:00
yamt
e9bd1836a5
don't try to write all blocks passed to lfs_markv at once
...
since it likely causes buf starvation.
2002-12-26 13:04:39 +00:00
yamt
362c57a2d2
add a XXX comment. (description of possible deadlock)
2002-12-22 17:31:52 +00:00
yamt
4370be165c
add a XXX comment
2002-12-21 05:35:54 +00:00
yamt
0d95cc5d66
correct/add assertion.
2002-12-18 14:05:50 +00:00
yamt
beff0dd387
#if 0 out vnode unlock/lock in lfs_reserve for now and add a comment about it.
...
deadlock is better than corruption (or panic), IMO.
2002-12-17 15:23:37 +00:00
yamt
a999523301
no need for cleaner to hold vnode locks.
...
cleaner and normal vnode operations are synchronized enough by
seglock/fraglock and buf's B_BUSY-ness.
2002-12-17 14:37:49 +00:00
yamt
b2d5b49e2b
use ufs_daddr_t instead of int where appropriate.
2002-12-17 14:28:54 +00:00
yamt
a79cb6db43
- in lfs_bwrite_ext, if we're cleaner,
...
mark inode IN_CLEANING rather then IN_MODIFIED.
otherwise cleaned (indirect) blocks belongs to the inode isn't written
until next sync.
- add assertions.
2002-12-14 13:41:25 +00:00
yamt
e5ea55e4ea
in lfs_writefile, check v_type==VNON earlier.
...
to avoid null dereference with DEBUG_LFS_VERBOSE.
2002-12-14 11:54:47 +00:00
yamt
8fe8a4ced8
save a segment write when doing checkpoint.
2002-12-13 14:40:02 +00:00
yamt
275b3a47a2
correct DIAGNOSTIC code for duplicated inodes in a segment and su_nbytes.
2002-12-12 12:28:13 +00:00
yamt
9097ffce96
take care of B_CLRBUF in lfs_balloc.
...
otherwise you'll see uninitialized blocks.
2002-12-11 13:34:14 +00:00
matt
60db16d1ff
Add multiple inclusion protection for headers. Fix mismatched
...
variable declarations (missing const's) as needed.
2002-12-01 00:12:06 +00:00