Alexander Viro [Wed, 6 Feb 2002 14:34:55 +0000 (06:34 -0800)]
[PATCH] (9/9) more ->get_sb() stuff
More ->get_sb() patches: nfs. It still acts as nodev - what we want to
(and can) do now is to give it enough smarts to recognize that same tree
might be already mounted.
Andi Kleen [Wed, 6 Feb 2002 14:13:48 +0000 (06:13 -0800)]
[PATCH] Fix page cache limit wrapping in filesystems
Several file systems in tree that nominally support files >2GB set their
s_maxbytes value to ~0ULL. This has the nasty side effect on 32bit machines
that when a file write reaches the page cache limit (e.g. 2^43) it'll silently
wrap and destroy data at the beginning of the file.
This patch changes the file systems in question to fill in a proper limit.
I also have an alternate patch that adds a check for this generically
in super.c, but preliminary comments from Al suggested that he prefered
to do it in the file systems, so it is done this way way.
Andi Kleen [Wed, 6 Feb 2002 14:13:41 +0000 (06:13 -0800)]
[PATCH] Automatic file-max sizing
The default for NR_FILES of 8192 is far too low for many workloads. This
patch does dynamic sizing for it instead. It assumes file+inode+dentry
are roughly 1K and will use upto 10% of the memory for it.
Andi Kleen [Wed, 6 Feb 2002 14:13:35 +0000 (06:13 -0800)]
[PATCH] Bootmem speedup
This patch speeds the bootmem freeing up a bit. Not particularly important,
but helps on some slow simulators where the loop can chew up significant
CPU time.
Andi Kleen [Wed, 6 Feb 2002 14:13:29 +0000 (06:13 -0800)]
[PATCH] Slab name cleanup - last try
Hallo Linus,
This is the slab name cleanup you originally requested when the reiserfs
slab name too long boot bug was introduced. It replaces the static
name limit for slab cache names with the requirement for the caller
to supply a stable name. This version addresses all concerns that were given
over earlier versions of the patch.
As I do not feel very strongly about the slab cache name limit and you
also do not seem to be interested in it and the original bug of reiserfs
not booting anymore has been long fixed in your tree with the patch
you originally rejected from me I will not resend this patch after this
try.
Alexander Viro [Wed, 6 Feb 2002 13:58:02 +0000 (05:58 -0800)]
[PATCH] (4/8) ->get_sb() switchover
convert procfs to ->get_sb(). Similar to ext2, except that we use
get_sb_single() instead of get_sb_bdev(). Notice the we _don't_ keep
FS_SINGLE in flags - as the matter of fact, with ->get_sb() FS_SINGLE is
useless.
Alexander Viro [Wed, 6 Feb 2002 13:58:00 +0000 (05:58 -0800)]
[PATCH] (3/8) ->get_sb() switchover
ext2 switched to ->get_sb(). For that we had
a) turned ext2_read_super() into ext2_fill_super() (instead of
"return NULL if failed and sb if succeeded" it's "return error value or
0").
b) added ext2_get_sb(type, flags, dev, data) - all it does is
return get_sb_bdev(type, flags, dev, data, ext2_fill_super);
c) replaced DECLARE_...() with explicit initializer.
That's it.
Alexander Viro [Wed, 6 Feb 2002 13:57:56 +0000 (05:57 -0800)]
[PATCH] (1/8) ->get_sb() switchover
OK, here comes the long-promised switchover to ->get_sb().
New method added - ->get_sb(type, flags, dev, data). At this point we
still keep ->read_super(), but it will go away in the end of series.
->get_sb() is a generalization of get_sb_{bdev,nodev,single}() - as the
matter of fact, these will become common helpers used by filesystems in
their ->get_sb().
patch from dimitry for the usb ibmcam driver that does:
- Updates the documentation
- Adds Veo Stingray support
- Fixes hotplug table dependency upon now-defunct symbol
- deletes drivers/usb/ibmcam.h
patch from Wolfgang Mües <wmues@nexgo.de> for the usb auerswald.c driver:
- Code-Review from Oliver Neukum: remove SMP races.
- Added some wake_up calls after auerbuf_releasebuf to wake up tasks waiting
for cp buffers.
- Change the module count handling to automatic (owner: THIS_MODULE).
Hans Reiser [Wed, 6 Feb 2002 02:57:18 +0000 (18:57 -0800)]
[PATCH] reiserfs fix for inodes with wrong item versions (2.5)
This is hopefully last bugfix for a bug introduced by struct inode splitting.
Because of setting i_flags to some value and then cleaning the i_flags
contents later, on-disk items received wrong item version ob v3.6 filesystems
Robert Love [Wed, 6 Feb 2002 02:46:45 +0000 (18:46 -0800)]
[PATCH] 2.5.4-pre1: further llseek cleanup (3/3)
The previous patch did not provide protection for device lseek methods
(drivers/* stuff). This patch pushes the BKL into each of the remaining
lseek methods -- without them we have a race.
I'd much prefer to have a a better lock to push down than the BKL, but
that will have to wait.
Before you balk at the size, remember patch #2 in this series which
removed much code ;-)
Thanks to Al for assistance, especially a listing of affected files.
Robert Love [Wed, 6 Feb 2002 02:46:42 +0000 (18:46 -0800)]
[PATCH] 2.5.4-pre1: further llseek cleanup (2/3)
This is the second patch of three implementing further llseek cleanups,
against 2.5.4-pre1. It does not depend on the other patches.
This patch cleans up various code and quite nicely removes much more
code than it adds. Specifically:
- remove static lseek method which merely reimplements
the standard no_llseek in the following seven files:
hci_vhci.c, ite8172.c, nec_vrc5477.c, auerswald.c,
pipe.c, netlink_dev.c, and socket.c
- remove fs/ufs/file.c::ufs_file_lseek -- Al says it is
reimplementing generic_file_llseek, so let's use that
instead (the comment about 32-bit sizes shouldn't be
an issue, the generic method checks size)
- include smp_lock.h in 3 files missed from previous
'remove bkl' patch
Robert Love [Wed, 6 Feb 2002 02:46:40 +0000 (18:46 -0800)]
[PATCH] 2.5.4-pre1: further llseek cleanup (1/3)
This is the first of three patches implementing further llseek cleanup,
against 2.5.4-pre1.
The 'push locking into llseek methods' patch was integrated into 2.5.3.
The networking filesystems, however, do not protect i_size and can not
rely on the inode semaphore used in generic_file_llseek.
This patch implements a remote_llseek method, which is basically the
pre-2.5.3 version of generic_file_llseek. Locking is done via the BKL.
When we have a saner locking system in place, we can push it into this
function in lieu.
Ncpfs, nfs, and smbfs have been converted to use this new llseek.
Note this is updated over the previous posted patch.
Alexander Viro [Wed, 6 Feb 2002 02:46:29 +0000 (18:46 -0800)]
[PATCH] (1/5) beginning of getattr series.
added new helpers - vfs_stat(), vfs_lstat() and vfs_fstat().
fs/stat.c switched to use them.
Following patches will
stat(2) variants in arch/* that used to copy inode fields manually
switched to vfs_*stat() and partially cleaned up
irix_...() switched from sys_new*stat() to vfs_*stat() and cleaned
up. Missing LFS check added.
similar for solaris ones
ditto for x86 compatibility ones on ia64.
We are almost ready to switch to ->getattr() - let filesystem decide what
values should go into ->st_... (e.g. for CODA life would become much
easier if it could just use ->i_size of caching file, for supermount
we want ->i_ino inherited from underlying fs, etc.)
Another thing that needs to be done is fixing the rest of LFS/uid size
fsckups in architecture-specific variants of stat() - I've fixed several,
but quite a few are still there.
Dave McCracken [Wed, 6 Feb 2002 02:39:27 +0000 (18:39 -0800)]
[PATCH] Third version of signal changes for thread groups
During the course of developing our pthread library (the NGPT pthread
library) it became clear we needed some kernel support for handling
signals. This patch helps the library by redirecting all signals sent
to tasks in a thread group to the thread group leader. It also defines
the tkill() system call so the library can signal a specific task if
necessary.
Given that as far as I know NGPT is the only user of thread groups, and
that this change would benefit any other user of thread groups, I'm
submitting this for inclusion in the 2.5 kernel.
Note that this patch also adds support for sys_gettid() for the
architectures that don't have it. While this could have been split into a
spearate patch, it would create conflicts since this patch also adds
sys_tkill(), so I felt it was cleaner to leave them together.
Dave McCracken
======================================================================
Dave McCracken IBM Linux Base Kernel Team 1-512-838-3059
dmccr@us.ibm.com T/L 678-3059
Vojtech Pavlik [Tue, 5 Feb 2002 10:03:32 +0000 (02:03 -0800)]
The patch moves:
* joystick drivers from drivers/char/joystick to drivers/input/joystick
* gameport drivers from drivers/char/joystick to drivers/input/gameport
* serio drivers from drivers/char/joystick to drivers/input/serio
I don't think the joystick drivers should stay in char, because they're
NOT character device drivers (check for register_chrdev, none to be found).
It also fixes build problems with sound driver gameport support.
the appended patch works around a bug in the PLX9050 chip. This chip is
used in various PCI ISDN adapters (it's an PCI interface chip) and has
an erratum when the BAR 0/1 has bit 7 set (the size of the region is
0x80, so aligning it to 0x80 is legal and really happens for people).
This workaround has been tested by a user who hit this problem with a
Gazel card. Basically the same fix has been done for Elsa cards, but it's
untested.
Petr Vandrovec [Tue, 5 Feb 2002 09:24:28 +0000 (01:24 -0800)]
[PATCH] crc32 and lib.a (was Re: [PATCH] nbd in 2.5.3 does
I've found that multiple level initcalls went into kernel
behind my back, so you can throw away my yesterday patch
which converted lib.a => lib.o, and apply this one.
[Patch tested with both lib.a and lib.o - it boots correctly
in both cases]
Petr Vandrovec [Tue, 5 Feb 2002 09:24:24 +0000 (01:24 -0800)]
[PATCH] Re: [PATCH] nbd in 2.5.3 does not work, and can cause severe damage when read-write
Linus, this reverts limit for request size from 10KB to unlimited.
Although no released nbd version supports it, it is certainly better to
add support to servers than cripple clients if incompatibility does
not matter.
Trond Myklebust [Tue, 5 Feb 2002 09:24:21 +0000 (01:24 -0800)]
[PATCH] Drop reliance on file->f_dentry in NFS reads/writes
Following a request by David Chow on linux fsdevel, this patch causes
NFS read and write requests to take the inode from page->mapping->host
rather than relying on file->f_dentry->d_inode. Apparently this will
simplify some work he is doing on another filesystem.
In any case, it cleans up the current mix of sometimes doing one
thing, sometimes the other (historical cruft), and puts NFS client
behaviour on par with what is done in other filesystems...
Trond Myklebust [Tue, 5 Feb 2002 09:24:18 +0000 (01:24 -0800)]
[PATCH] Fix spurious ETXTBSY errors due to late release of struct file
The following patch should fix a problem of ETXTBSY sometimes
occurring if one tries to run a file straight after compilation.
The problem is that both NFS read and write requests can currently
hold a count on the struct file. This is done partly so as to be able
to pass along the RPC credential (which is cached in the struct file),
and partly so that asynchronous writes can report any errors via the
file->f_error mechanism.
The problem is that both the read and write requests may persist even
after file close() occurs. For O_RDONLY files, this is not a problem,
but for O_WRONLY, and O_RDWR files, the fact that the struct file is
not released until the last call to nfs_release_request() means that
inode->i_writecount does not necessarily get cleared upon file
close().
The following patch fixes both these issues.
- NFS read requests no longer hold the struct file. They take a
count on the the RPC credential itself.
- NFS write requests still hold the struct file, since they want to
report errors to sys_close() using the file->f_error mechanism.
However they are made to release the page, credential, and file
structures as soon as the write is completed instead of following
the current practice of waiting for the last nfs_page request
release.
This is a resend of the NFS lookup code rewrite, but with the open(".")
VFS fix removed. (I'll resend the 'uses d_revalidate()' version
separately after a suitable delay to allow for comments.)
Issues fixed by this patch:
- Use the directory mtime in order to give us a hint when we should
check for namespace changes.
- Add support for the 'nocto' flag, in order to turn off the strict
attribute cache revalidation on file open().
- Simplify inode lookup. Don't check the 'fsid' field (which appears
to be buggy in too many servers in order to be reliable). Instead
we only rely on the inode number (a.k.a. 'fileid') and the
(supposedly unique) filehandle.
Here's a patch against 2.5.3 for the USB ohci-hcd driver that does the
following:
- doesn't assume CONFIG_DEBUG_SLAB
- unlink from interrupt completions now work
- doesn't force debugging on
- updated copyright / license statements
- slightly smaller object size
- fewer inlined magic numbers
- removes unused fields from data structures
- header file reorg, doc fixup
This patch was done by David Brownell.
Here's a patch against 2.5.3 for the USB vicam driver that removes the
use of interruptible_sleep_on() in the driver. This patch was done by
Oliver Neukum.
Here's a patch against 2.5.3 for the USB core that fixes a possible
initialization bug for some platforms when allocating a new usb, and
changes the warning level on a message (it isn't an error.) This patch
was done by Oliver Neukum and David Brownell.
Here's a patch against 2.5.3 for the USB printer driver that does the
following:
- removes the races inherent in sleep_on
- uses 2.5 style of module usage counting
- kills a lockup on failure of usb_submit_urb
This patch was done by Oliver Neukum.
Here's a patch against 2.5.3 for the USB pegasus driver that does the
following:
- fixes __FUNCTION__ warnings on gcc-3.0.3 and up
- added 3 more devices
- fixed memory leak
This patch was done by Petko Manolov and Oliver Neukum.
Here's a patch against 2.5.3 for the USB kaweth driver that does the
following:
- removes SMP deadlock
- removes nfs deadlock
- fixes a memory leak when the firmware is not loaded.
- few other minor cleanups.
This patch was done by Oliver Neukum.
Hans Reiser [Tue, 5 Feb 2002 09:10:50 +0000 (01:10 -0800)]
[PATCH] reiserfs patchset, patch 4 of 9 04-nfs_stale_inode_access.diff
04-nfs_stale_inode_access.diff
This is to fix a case where stale NFS handles are correctly detected as
stale, but inodes assotiated with them are still valid and present in cache,
hence there is no way to deal with files, these handles are attached to.
Bug was found and explained by
Anne Milicia <milicia@missioncriticallinux.com>
Hans Reiser [Tue, 5 Feb 2002 09:10:40 +0000 (01:10 -0800)]
[PATCH] reiserfs patchset, patch 1 of 9 01-pick_correct_key_version.diff
01-pick_correct_key_version.diff
This is to fix certain cases where items may get its keys to be interpreted
wrong, or to be inserted into the tree in wrong order. This bug was only
observed live on 2.5.3, though it is present in 2.4, too.
Patrick Mochel [Tue, 5 Feb 2002 08:36:53 +0000 (00:36 -0800)]
[PATCH] driver model updates (5/5)
Remove struct iobus.
There is a lot of duplication between struct device and struct iobus, both
in their members and the code in their interfaces. Waxing struct iobus
removes this duplication and makes things a bit simpler.
Patrick Mochel [Tue, 5 Feb 2002 08:36:53 +0000 (00:36 -0800)]
[PATCH] driver model updates (4/5)
Patch 4: Add some default files for PCI devices.
This adds two files for PCI devices: 'irq' and 'resources'. They display
just those things and currently do nothing on write. These are the
examples for other subsystems to use for creating files ('Hey, look how
simple it is!')
Patrick Mochel [Tue, 5 Feb 2002 08:36:52 +0000 (00:36 -0800)]
[PATCH] driver model updates (3/5)
Patch 3: Make default callbacks simpler.
I want to move as much to a 1 file/1 value model as possible. I haven't
come up with a clean way to enforce it except via social pressure.
This patch is a step in that direction. It:
- Reduces the output of 'power' to just the decimal state of the device
- Adds a 'name' file which exports just the device name
- Reduces the 'status' file to just export the bus ID. (This will change,
since the bus ID is obvious based on what directory you're in, but it's
another patch at another time)
Petr Vandrovec [Tue, 5 Feb 2002 08:36:49 +0000 (00:36 -0800)]
[PATCH] nbd in 2.5.3 does not work, and can cause severe damage when read-write
Hi Linus,
I've got strange idea and tried to build diskless machine around
2.5.3... Besides problem with segfaulting crc32 (it is initialized after
net/ipv4/ipconfig.c due to lib/lib.a being a library... I had to hardcode
lib/crc32.o before --start-group in main Makefile, but it is another
story) there is bad problem with NBD caused by BIO changes:
(1) request flags were immediately put into on-wire request format.
In the past, we had 0=READ, !0=WRITE. Now only REQ_RW bit determines
direction. As nbd-server from nbd distribution package treats any
non-zero value as write, it performs writes instead of read. Fortunately
it will die due to other consistency checks on incoming request, but...
(2) nbd servers handle only up to 10240 byte requests. So setting max_sectors
to 20 is needed, as otherwise nbd server commits suicide. Maximum request size
should be handshaked during nbd initialization, but currently just use
hardwired 20 sectors, so it will behave like it did in the past.