- 21 May, 2004 17 commits
-
-
Andrew Morton authored
From: Neil Brown <neilb@cse.unsw.edu.au> If a single readdir entry needs to be split over two pages in the reply, we first encode it into a new page, and then copy the bits into place. When we do this relocation, we have to modify the "offset" pointer to be either in the first or the second page, as appropriate. If the pointer should be at the start of the second page, it is currently put past the end of the first page. Note that as the offset and whole response is known to be 4byte-aligned, the offset pointer will never be split over two pages.
-
Andrew Morton authored
From: David Mosberger <davidm@napali.hpl.hp.com> These aren't syscalls, so rename them. And make them static.
-
Andrew Morton authored
We keep on getting BUG()s from isofs_read_super() because it passes an insane blocksize to bread(). See http://bugme.osdl.org/show_bug.cgi?id=2735 for example. I don't know what's up with isofs, but going BUG in there seems a bit rude. Change it to drop a bunch of diagnostics and a backtrace then return a null bh*. Most callers of getblk() don't expect it to fail, so they'll oops anyway. But isofs does actually check for a NULL return. This way, the machine stays up and we get better debug diagnostics.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> kallsyms contains only function names, but some debuggers (eg. xmon on PPC/PPC64) use it to lookup symbols: it'd be much nicer if it included data symbols too.
-
Andrew Morton authored
Give appropriate and separate backing_dev_info's to both the ramdisk blockdev inode and to the files which live atop the ramdisk. Everything works now.
-
Andrew Morton authored
Implement an empty ->writepages() so that attempts to write back ramdisk pages have less work to do.
-
Andrew Morton authored
When a filesystem does getblk() to get a buffer_head against the ramdisk the VFS will allocate a new not-uptodate pagecache page and will attach buffers to it. The filesystem will then bring certain buffer_heads uptodate. But not the whole page. Later, various ramdisk a_ops see the not-uptodate page and wipe the whole thing out, including the parts to which the filesystem wrote! Fix that up by only zapping those parts of the page which are covered by non-uptodate buffers.
-
Andrew Morton authored
We don't actualy need to kmap the blockdev inode's pages at all, because they're ~__GFP_HIGHMEM. But it's future-safe, and cheap.
-
Andrew Morton authored
There's a race: one CPU writes a 1k block into a ramdisk page which isn't in the blockdev pagecache yet. It memsets the locked page to zeroes. While this is happening, another CPU comes in and tries to write a different 1k block to the "disk". But it doesn't lock the page so it races with the memset and can have its data scribbled over. Fix this up by locking the page even if it already existed in pagecache. Locking a pagecache page in a make_request_fn sounds deadlocky but it is not, because: a) ramdisk_writepage() does nothing but a set_bit(), and cannot recur onto the same page. b) Any higher-level code which holds a page lock is supposed to be allocating its memory with GFP_NOFS, and in 2.6 kernels that's equivalent to GFP_NOIO. (The distinction between GFP_NOIO and GFP_NOFS basically disappeared with the buffer_head LRU, although it was reused for writes to swap).
-
Andrew Morton authored
Allocating pagecache pages within the disk request_fn is deadlocky and prone to page allocation failures, causing write I/O errors. Attempt to improve things by fiddling with gfp masks.
-
Andrew Morton authored
- Remove the ramdisk special-case in fs-writeback.c - it will soon be unneeded. - Fix rd_ioctl() to return -ENOTTY on invalid ioctl types, not -EINVAL. - Make ramdisk Kconfig friendlier.
-
Andrew Morton authored
From: Paul Mackerras <paulus@samba.org> We declare enter_rtas with a struct rtas_args * argument, though it is supposed to be a physical address, and then every time we call it we cast the unsigned long result from __pa() to a void *. This patch changes the declaration of enter_rtas to make it take an unsigned long argument, and removes the cast from all the callers. The actual enter_rtas() routine is in assembler and doesn't need to be changed.
-
Andrew Morton authored
From: David Gibson <david@gibson.dropbear.id.au> The ppc64 head.S contains an enable_32b_mode function which is used nowhere. This patch removes it.
-
Andrew Morton authored
From: Paul Mackerras <paulus@samba.org> This patch fixes a whole pile of problems in the xmon kernel debugger for ppc64. This basically makes xmon SMP-safe. Now, when we enter xmon it sends an IPI to the other CPUs to get them into xmon too. It also changes the way we do single-stepping and breakpoints so that we don't have to remove a breakpoint to proceed from it (instead we either emulate the instruction where the breakpoint was, or execute it out of place). With this patch, if we get an exception inside xmon, it will just return to the xmon command loop instead of hanging the system as at present. The patch is quite large because it updates the disassembler to the latest version from binutils (trimmed a bit), which is why I didn't cc lkml.
-
Andrew Morton authored
From: Paul Mackerras <paulus@samba.org> When I added the out-of-line spinlocks on PPC64, I inadvertently introduced a bug in the inline version of _raw_spin_trylock, where it returns the opposite of what it should return. The patch below fixes it.
-
Andrew Morton authored
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> This fixes busted asm constraints for readq & writeq implementation on ppc64 that resulted in garbage beeing generated for writeq (plus an obvious mistake in the prototype).
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> From: Rusty Russell <rusty@rustcorp.com.au> When hotplug cpu isn't enabled, cpu_is_offline is always false. I had a stuck cpu at boot that resulted in a lockup because we tried to start a migration thread on it. Instead of cpu_is_offline we can use !cpu_online which should cover both the hotplug cpu enabled and disabled cases.
-
- 20 May, 2004 23 commits
-
-
Andrew Morton authored
From: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> From: Rene Herman <rene.herman@keyaccess.nl> Prevent the disks from spinning down across a reboot.
-
http://nfsclient.bkbits.net/linux-2.5Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Trond Myklebust authored
Remove a local 1k array.
-
Trond Myklebust authored
nfs/read.c: dynamically allocate the big structs
-
Trond Myklebust authored
Patch from akpm
-
Trond Myklebust authored
gss context is (duh!) in seconds, not jiffies! Patch by Bruce Fields
-
Trond Myklebust authored
unwrap procedures; otherwise they're going to be ridiculously long after we add privacy support. Patch by Bruce Fields
-
Trond Myklebust authored
are defined. Patch by Bruce Fields
-
Trond Myklebust authored
Clean up the interface to the GSSAPI code. Patch by Bruce Fields
-
Trond Myklebust authored
generally useful. This will help prepare for the spkm3 and lipkey mechanisms. Patch by Bruce Fields
-
Trond Myklebust authored
makes existing ones consistent with other trace messages in the RPC client. Patch by Chuck Lever
-
Trond Myklebust authored
when mounting an NFS filesystem.
-
Trond Myklebust authored
RPC: Make "major" timeouts be of fixed length "timeo<<retrans" rather than counting the number of retransmissions. The clock starts at the first attempt to send each request. RPC: Ensure that we "slow start" the RTT estimation after a major timeout has occurred.
-
Trond Myklebust authored
-
Trond Myklebust authored
no longer calls the generic VFS read and write routines. This allows all application read requests to pass through to the server, instead of just the ones that appear to be inside the file. this eliminates the requirement to use a GETATTR operation before each read or write to determine where the EOF is. This is a significant performance and scalability win. It also removes all requirements for holding the inode semaphore during NFS direct reads and writes, as the read and write logic no longer needs atomic access to the size of the file. this also helps client CPU scalability by reducing the serialization of writes against a single file. Patch by Chuck Lever
-
Trond Myklebust authored
where NFS_I(inode)->data_updates can get out of sync with reality, which will lead to a BUG() in nfs_clear_inode later on. Patch by Olaf Kirch.
-
Trond Myklebust authored
seconds in order to avoid flooding of servers.
-
http://jfs.bkbits.net/linux-2.5Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Dave Kleikamp authored
into austin.ibm.com:/shaggy/bk/jfs-2.5
-
Dave Kleikamp authored
In several functions, d_instantiate is called before the transaction is committed. Under the rare condition that txCommit fails, the new inode is released, but the dentry continues to point to it. This can lead to a seg fault. The fix is to call d_instantiate after txCommit has run successfully.
-
bk://linux-acpi.bkbits.net/linux-acpi-release-2.6.7Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Dave Kleikamp authored
The jfs_log structure was never being freed at unmount time.
-
Trond Myklebust authored
The NFS readlink() methods all take a buffer length argument. Use that instead of assuming PAGE_SIZE... We need to return ENAMETOOLONG rather than EIO.
-