Neil Brown [Mon, 17 Feb 2003 11:17:51 +0000 (03:17 -0800)]
[PATCH] Provide a 'safe-mode' for soft raid.
When a raid1 or raid5 array is in 'safe-mode', then the array
is marked clean whenever there are no outstanding write requests,
and is marked dirty again before allowing any write request to
proceed.
This means than an unclean shutdown while no write activity is happening
will NOT cause a resync to be required. However it does mean extra
updates to the superblock.
Currently safe-mode is turned on by sending SIGKILL to the raid thread
as would happen at a normal shutdown. This should mean that the
reboot notifier is no longer needed.
After looking more at performance issues I may make safemode be on
all the time. I will almost certainly make it on when RAID5 is degraded
as an unclean shutdown of a degraded RAID5 means data loss.
This code was provided by Angus Sawyer <angus.sawyer@dsl.pipex.com>
Neil Brown [Mon, 17 Feb 2003 11:17:16 +0000 (03:17 -0800)]
[PATCH] Fix bug in md superblock sanity checking.
This call the super_90_load is meant to make sure that the new
superblock is consistant with a pre-exisitnig one (on rdev0)... but
rdev0 was not passed :-(
Neil Brown [Mon, 17 Feb 2003 11:17:07 +0000 (03:17 -0800)]
[PATCH] Convert fs/nfsctl.c to use C99 named initiailzers
From Art Haas <ahaas@airmail.net>:
This converts the file to use C99 named initializers. These change make
the file compile with fewer warnings if '-W' is added to the compile
flags, and may enhance code readability. Let me know if you think this
should be sent to Linus.
Neil Brown [Mon, 17 Feb 2003 11:17:00 +0000 (03:17 -0800)]
[PATCH] Make kNFSd pre/post_[acm]time use struct timespec
From Trond:
When the nanosecond resolution on [acm]time was introduced to 2.5.x,
the knfsd GETATTR responses were converted to make use of the
nanosecond field, but the pre/post WCC attributes were not. This will
lead to a lot of unnecessary cache invalidations on the clients.
The following trivial patch should fix up knfsd so that it stores and
encodes the full 'struct timespec' in both pre and post attribute
fields.
Neil Brown [Mon, 17 Feb 2003 11:16:52 +0000 (03:16 -0800)]
[PATCH] Fix problem where knfsd wouldn't release filesystem on unexport.
Problem was that the cache was being updated inplace, rather
than swapping in a new entry, so old filesystem pointers
were overwritten without being released.
Neil Brown [Mon, 17 Feb 2003 11:16:29 +0000 (03:16 -0800)]
[PATCH] Bounds checking for NFSv3 readdirplus
From Ted Phelps <phelps@dstc.edu.au>
The NFSv3 readdirplus path doesn't check to see if maxcount is less
than the size of a page before it fills it up, possibly overwriting
random bits of memory. At least, it makes my Solaris NFSv3 client
work.
The attached patch, against 2.5.58, adds this check in a way which is
consistent with the way readdir does under both NFSv2 andNFSv3.
Sam Ravnborg [Mon, 17 Feb 2003 06:15:45 +0000 (22:15 -0800)]
[PATCH] char/drivers/random.c - fix warning
When compiling random.c without SYSCTL defined a warning is
issued about free_entropy_store being defined but not used.
Put ifdef's around the functions.
I could have moved the whole function, but it logically belongs
to this part of the file.
Marc Zyngier [Mon, 17 Feb 2003 05:35:00 +0000 (21:35 -0800)]
[PATCH] EISA/sysfs updates
This is an update to the EISA/sysfs code :
- Separate bus root code from generic code.
- Add driver for PCI/EISA bridge.
- Hacked parisc eisa driver so it can act as a root device.
- Add driver for so-called virtual root (for bridge-less systems).
- Allow multiple roots.
- Moved quirk_eisa_bridge from alpha to generic code, since
the EISA code needs it now (on x86, for example...).
- 3c59x :
Prevent driver from returning ENODEV in case it has registered with
the EISA framework, but no device has been found yet (it happends
when the driver is built into the kernel, and the EISA bus root has
not been discovered yet).
It's been discussed on lkml, and all suggestions (mainly from Ivan
Kokshaysky <ink@jurassic.park.msu.ru>) have been taken into account.
Dave Kleikamp [Mon, 17 Feb 2003 06:09:10 +0000 (00:09 -0600)]
JFS: Fix jfs_sync_fs
jfs_sync_fs was implemented using the same code as the unmount code to flush
the journal and wait for the journal to quiesce. Since jfs_sync_fs may be
called while the volume is under heavy use, we can end up waiting
indefinately. Code in jfs_flush_journal meant to detect a hang at unmount
time may be triggered in this case causing a trap. This patch changes
jfs_sync_fs to only wait until the most recent transaction has been
commited to disk, rather than waiting until the commit queue is empty.
Linus Torvalds [Mon, 17 Feb 2003 03:51:37 +0000 (19:51 -0800)]
Fix locking for "send_sig_info()", to avoid possible races with signal
state changes due to execve() and exit(). We need to hold the tasklist
lock to guarantee stability of "task->sighand".
Russell King [Sun, 16 Feb 2003 19:38:14 +0000 (19:38 +0000)]
[ARM] Update signal handling for ARM.
Update the ARM signal handling to use the generic
get_signal_to_deliver() implementation. There is a caveat though -
ARM has no hardware support for single stepping, and thus needs the
kernel to help provide this.
We introduce a new ptrace flag for this, PT_SINGLESTEP, which
indicates to architecture specific code that it should take extra
actions in the signal handler to set and/or clear breakpoints as
appropriate.
Jeff Wiedemeier [Sun, 16 Feb 2003 16:19:31 +0000 (08:19 -0800)]
[PATCH] delay marvel agp printk until after !hose check
Delay the marvel agp hose printk until after the check for whether a
valid AGP hose was found. Otherwise if none was found, hose->index in
the printk arg list dereferences NULL.
Russell King [Sun, 16 Feb 2003 10:49:08 +0000 (10:49 +0000)]
[ARM] Update wdt285 and wdt977 watchdog drivers
General updates to these two watchdog drivers, including:
- converting initialisers to C99 syntax
- correcting module descriptions
- ensuring private symbols are declared static
- ensuring correct options are reported in the watchdog_info structure
- ensuring we use the right clock value for calculating timeouts
- ensuring failure cleanup paths are properly implemented
- don't use MOD_{INC,DEC}_USE_COUNT
Steven Cole [Sun, 16 Feb 2003 06:51:08 +0000 (22:51 -0800)]
[PATCH] yet more pedantry: complement vs compliment.
A compliment is an expression of esteem, respect, affection, or
admiration. As far as I can tell, this word does not yet have a
place in the kernel source.
A complement on the other hand, is what is meant in the following
places.
Andrew Morton [Sat, 15 Feb 2003 08:17:41 +0000 (00:17 -0800)]
[PATCH] elv_former_request reversion
This morning's fix for elv_former_request() is causing oopses all over the
place in the IO scheduler.
Jens, remember that I did try that fix a while ago, and the same happened.
I believe it has exposed a new problem at the __make_request/attempt_front_merge
level: if attempt_front_merge() actually succeeds, the wrong request gets freed
up in elv_merged_request().
It may be best to back this change out until it can be fixed up for real.
François Romieu [Sat, 15 Feb 2003 11:58:16 +0000 (06:58 -0500)]
[netdrvr rrunner] small fixes and cleanups:
- pci_disable_device() added in rr_remove_one() to balance
pci_enable_device() in rr_init_one()
- rr_timer() and rr_close() are leaking pci_map'ed memory: make them
use rr_raz_{rx/tx}
- error exiting path in rr_open() was balancing pci_alloc_consistent()
with kfree().
Roger Luethi [Sat, 15 Feb 2003 11:37:42 +0000 (06:37 -0500)]
[netdrvr via-rhine] reset function rewrite:
The new reset function only waits up to 0.1 ms for the reset to complete,
instead of 10 ms. However, it introduces the use of a forced reset flag if
a chip doesn't seem cooperative. This fixes cases where until now only
reloading the driver or even rebooting the machine would bring the chip
back.
Roger Luethi [Sat, 15 Feb 2003 11:36:48 +0000 (06:36 -0500)]
[netdrvr via-rhine] various duplex-related fixes:
Fix the following bugs:
- after a watchdog timeout (still a common thing with the Rhine), the
driver will fall back to half-duplex, ignoring the auto-negotiation
results, killing performance completely until the driver is reloaded;
fixed by clearing full_duplex in init_registers()
- driver considers only 0x200 for full-duplex option; now 0x220
- duplex code used dev->name before it's initialized; code section moved
The full_duplex and force_media related code is quite a mess, but this
minimal fix will make the most annoying problems go away. Looking at some
other code (e.g. mii.c) it seems to me the interaction between user force,
autoneg results and full_duplex/force_media is amazingly complex, so I'll
leave it at this for now.
Roger Luethi [Sat, 15 Feb 2003 11:35:11 +0000 (06:35 -0500)]
[netdrvr via-rhine] fix broken tx-underrun handling:
The Tx underrun handling in the current driver is broken. The details have
been explained in a posting "VIA Rhine 1.15exp1, patch for
testing/discussion" a couple of months ago.
Roger Luethi [Sat, 15 Feb 2003 11:33:00 +0000 (06:33 -0500)]
[netdrvr via-rhine] trivial bits:
- nuke mii_status_bits
- move clear_tally_counters() up so it can get inlined (pointed out by
Luca Barbieri)
- rename via_restart_tx() -> via_rhine_restart_tx()
Steve French [Sat, 15 Feb 2003 10:11:13 +0000 (04:11 -0600)]
Merge in fixes from version 0.6.5 of the CIFS VFS. Greatly improved performance including improved distributed caching support and support for readpages and larger read sizes. Cache data now flushed properly at file close time. Socket and memory leak fixed. Fix two oops. Fix error logging and made more consistent. Generic sendfile added.
[PATCH] cpufreq: move frequency table helpers to extra module
The CPU frequency table helpers can easily be modularized --
especially as they are not needed on all architectures, or for
all drivers (even on x86 -- see longrun and gx-suspmod)
Anton Blanchard [Sat, 15 Feb 2003 04:42:59 +0000 (20:42 -0800)]
[PATCH] disable printout of interrupts in /proc/stat on ppc64
The interrupt printout in /proc/stat doesnt make sense on many ppc64
boxes because we remap interrupts. Also, with enough active interrupt
sources /proc/stat might get much bigger than a page which results
in memory corruption.
A new device_class "pcmcia_socket_class" is introduced for PCMCIA and
CardBus sockets. All socket drivers I could find are updated so that
they register a driver, and -if necessary- the "platform"/legacy device.
This will allow for a cleanup of pcmcia_{un}register_socket() /
{un}register_ss_entry() as well as reflect the parent for pcmcia_bus
devices.
Russell King allowed me to break sa1100_generic pcmcia support for the
time being - so drop that part of the patch for the moment.