- 10 Oct, 2002 29 commits
-
-
Trond Myklebust authored
This is a nontrivial change to the NFS client. In this patch, we finish modifying the async READ path so that it is version-agnostic. We define a new nfs_rpc_op ->setup_read(), and move the v2- and v3-specific code in nfs_read_rpcsetup() there. We also have to change nfs_readpage() result so that the 'count' of bytes read is a parameter. The extra parameter means that it can no longer be ->tk_exit(). Instead, it is called from a version-specific ->tk_exit() routine which is set in ->read_setup(). The upshot of all this is that the version-specific part of the async READ path has been encapsulated in a new nfs_rpc_op ->read_setup(), and NFSv4 can share the logic for asynchronous READ's with NFSv2 and v3.
-
Trond Myklebust authored
This is a nontrivial change to the NFS client. Synchronous READ operations are currently done via the ->read() nfs_rpc_op. Therefore, the synchronous READ path can easily be adapted for NFSv4. On the other hand, the asynchronous READ path contains several NFSv3-specific features, which make it difficult to adapt for NFSv4. In this patch and the next, we modify the async READ path to be version-agnostic. This patch just changes the 'struct nfs_read_data' so that the v2- and v3-specific parts are moved into a private area, with room for a v4-specific part in parallel. None of the logic is changed.
-
Trond Myklebust authored
If the NFS_ATTR_FATTR_V4 flag is set, use the NFSv3 convention for the 'space_used' part of the fattr.
-
Trond Myklebust authored
This is a nontrivial change to the NFS client. NFSv4 defines a new file attribute, change_attr. This is a per-file opaque quantity returned by the server, whose value is required to change whenever the file is modified. If it exists, we want to use it for all cache consistency checks in nfs_refresh_inode(). Some operations also return a "pre-operation" value of the change_attr; we want to take this into account too. First, define flags NFS_ATTR_FATTR_V4 - indicates that the 'struct nfs_fattr' is an NFSv4 fattr, so the change_attr field is valid NFS_ATTR_PRE_CHANGE - indicates that the server returned a pre-operation change_attr, so the pre_change_attr field is valid Second, change nfs_refresh_inode() so that the caches are invalidated if there is a change_attr mismatch. Exception: If the pre_change_attr tells us that the mismatch was caused by our operation, then do not invalidate the caches. This patch should leave the logic in nfs_refresh_inode() unchanged if neither of the new flags are set.
-
Trond Myklebust authored
In NFSv4, an fsid is a 64-bit major number together with a 64-bit minor number. In previous versions, an fsid is a single number. This patch changes 'struct nfs_fattr' accordingly.
-
Trond Myklebust authored
In NFSv4, there is no hard limit on the length of symlink text. This patch changes the -ENAMETOOLONG test in nfs_symlink() accordingly.
-
Trond Myklebust authored
This patch changes the interface of the ->setattr() nfs_rpc_op so that its first argument is a dentry instead of an inode. [Explanation: The dentry is required because in NFSv4, we may need to OPEN the file before doing the SETATTR. (This is required if the file size is changed as part of the setattr.) Opening the file requires making use of the containing directory's inode.]
-
Trond Myklebust authored
This patch changes the interface of the ->readdir() nfs_rpc_op so that its first argument is a dentry instead of an inode. [Explanation: The dentry is required because in NFSv4, we need to make use of the _parent_ directory's inode. This is because NFSv4 servers no longer return an entry for ".." in the READDIR response, so the client kernel needs to fake this entry, inode number and all.]
-
Trond Myklebust authored
In a number of places in the NFS client, I had to change #ifdef CONFIG_NFS_V3 /* ... */ #endif to #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) /* ... */ #endif
-
Trond Myklebust authored
Instantiate a new file, include/linux/nfs4.h, which contains constants and typedef's for the NFSv4 protocol (by analogy with include/linux/nfs2.h and include/linux/nfs3.h). Also #include this file in a few places where it will be needed later.
-
http://linux-isdn.bkbits.net/linux-2.5.makeLinus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Andries E. Brouwer authored
The patch below removes some dead code and nonsense code. The part that changes behaviour is - if (sbi->s_cruft == 'n' && - (volume_seq_no != 0) && (volume_seq_no != 1)) { - printk(KERN_WARNING "Warning: defective CD-ROM " - "(volume sequence number %d). " - "Enabling \"cruft\" mount option.\n", volume_seq_no); - sbi->s_cruft = 'y'; - } that has already bitten lots of people. Nothing is wrong with a volume sequence number different from 0 or 1. (Cf. Ecma-119.pdf, Sections 4.17, 4.18, 6.6.)
-
Paul Mackerras authored
This patch takes out the unused KERN_PPC_ZEROPAGED sysctl, and restricts the KERN_PPC_POWERSAVE_NAP and KERN_PPC_L2CR sysctls to be present only on those PPC processors where they are useful. This patch only affects PPC.
-
Paul Mackerras authored
This patch adds the PCI device ID for the Motorola MPC107 host bridge. The entry is already in the list at pciids.sf.net but isn't in the kernel pci_ids.h file yet. Please apply this to your tree.
-
Olaf Dietsche authored
This patch allows to change uid, gid and mode of files and directories located in procfs. Without this patch you can change uid, gid and mode as long as the file is open. As soon as you close the file, it reverts back to its default, which is root:root and readonly usually.
-
Sam Ravnborg authored
Reference to .ver file incorrect after recent makefile changes. Grepped the kernel tree, and this is the only Makefile that uses $(MODVERDIR).
-
Jens Axboe authored
CD-ROM puts struct cdrom_changer_info on the stack in a few places, this is a bad idea since it's big (a bit over 1kb). This makes us allocate it instead. Noticed by Anton.
-
Linus Torvalds authored
into the proper subdirectory (kernel) where it is used. Drop unused variables.
-
John Stultz authored
In order to demonstrate how new time-sources are added to my timer-changes patch. Here is my current version of my cyclone-timer patch for 2.5.41. This uses the infrastructure set up in the timer-changes_A4 patch set to add the cyclone counter (found on IBM Summit Based hardware) as a time-source. The current code is not enabled as it also depends on James Cleverdon's 2.5 summit patch, however it illustrates how cleanly new time-sources can be added.
-
John Stultz authored
This is the final part 3 of 3 of my timer-change patch. Part 3 integrates the moved code (from part 2) into the new infrastructure (from part 1).
-
John Stultz authored
This is part 2 of 3 of my timer-change patch. Part 2 is just a bulk move of code out of time.c and into timer_pit.c and timer_tsc.c. No code is changed, only moved. Please note, this code will not compile without the final third part of this patch collection. This was done for readability alone.
-
John Stultz authored
The i386 time.c code is turning into a mess. We've got multiple functions that do the same thing, only with different hardware, all surrounded #ifdefs and even more difficult to follow #ifndefs. George Anzinger is introducing a new ACPIpm time source, I'm going to attempt to add the cyclone counter as a time source, and in the future there will be HPET to deal with. These will not go in cleanly together as things are now. Inspired by suggestions from Alan, this collection of patches tries to clean up time.c by breaking out the PIT and TSC specific parts into their own files. Additionally the patch creates an abstract interface to use these existing time soruces, as well as make it easier to add future time sources. It introduces "struct timer_ops" which gives the time code a clear interface to use these different time sources. It also allows for clearer conditional compilation of these various time sources. This first patch (part 1 of 3) provides the infrastructure needed via the timer_ops structure, as well as the select_timer() function for choosing the best available timer.
-
Andrew Morton authored
Should resolve an ongoing fiasco concerning what we should return to userspace if they do a readv or writev of zero segments. SuS is ambiguous, but implies EINVAL. We're currently returning EINVAL, but 2.4 returns zero. I think zero makes more sense, and it is what 2.4 does.
-
Andrew Morton authored
The changed sched_yield() semantics have made ext3's transaction batching terribly slow. Apparently a schedule() fixes that, although it probably breaks transaction batching. This patch largely fixes my complaints about the new scheduler being extremely sluggish to interactive applications. Evidently those applications were calling fsync() and were spending extremely long periods in sched_yield().
-
Andrew Morton authored
From Hugh Dickins. radix_tree_reserve() exists solely for the tmpfs move_to_swap_cache() and move_from_swap_cache() functions, and yet they don't need it: there is no problem in the one page being simultaneously listed in two radix trees (while both locks are held). Use radix_tree_insert(), and remove radix_tree_reserve(); also removed a few blank lines.
-
Andrew Morton authored
Fix the raw driver by tricking it into performing O_DIRECT IO against the bound blockdev. - rewrite the i_mapping for /dev/raw/raw0 to point at the same thing as bdev->bd_inode->i_mapping. We've performed a bdget() against the blockdev, which should pin it for the correct lifetime. - set the O_DIRECT bit on the caller's file->flags.
-
Andrew Morton authored
The atomicicty fix for move_one_page() was not quite right. We only do the page_table_present() test if CONFIG_HIGHPTE=y. Which is fine, but even with CONFIG_HIGHPTE=n, the pte mapping functions still do an inc_preempt_count() due to their unconditional kmap_atomic(). So we get a might_sleep() warning. The warning is actually bogus, because those pte's are always in direct-mapped memory. So hm. Three fixes suggest themselves: 1: Run the page_table_present() test if CONFIG_HIGHMEM. Rejected: penalises non-pte_highmem setups 2: Make kmap_atomic() not do inc_preempt_count() is the page was direct mapped. Rejected: I don't think we want kmap_atomic side effects to be varying according to the page which was passed. 3: Change the pte mapping functions so they don't run kmap_atomic at all if CONFIG_HIGHPTE=n This is what I did. And guess what? For CONFIG_HIGHMEM=y, CONFIG_HIGHPTE=n this patch shrinks the kernel by 5 kbytes. Because kmap_atomic is inlined. The lesson: we do way too much damn inlining.
-
Andrew Morton authored
I have invented a new software development methodology! You send an email to Hugh saying "I don't have the foggiest idea why this guy's kernel is oopsing" and next morning, you get a patch! I shall patent this. Since 2.5.3, move_vma() has been passing a freed vma into move_page_tables(). Fix it to move back to the previous vma in the list if we're about to delete this one. Thanks to Morten Helgesen for patient reporting, diagnosis and testing.
-
Ingo Molnar authored
This is my latest timer patchset, it makes del_timer_sync() a bit more robust wrt. code that re-adds timers from the timer handler. Other changes in the patch: - clean up cascading a bit. - do not save flags in __run_timer_list - we enter from an irqs-enabled tasklet.
-
- 09 Oct, 2002 11 commits
-
-
Stephen Rothwell authored
This small patch is extracted from George Anzinger's High-res-timer patches.
-
bk://are.twiddle.net/axp-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Richard Henderson authored
-
ssh://are.twiddle.net/BK/axp-2.5Richard Henderson authored
into dot.sfbay.redhat.com:/dot/bang/rth/linux/axp-2.5
-
David Jeffery authored
2 bug fixes for scsi pass through When talking directly to scsi devices, the driver would sometimes get two things wrong. We could set too short of a timeout. Or, we could confuse the adapter by having non-zero values in certain fields which we shouldn't have been using. This patch corrects these problems.
-
David Jeffery authored
2 minor bug fixes. The first section makes sure we limit the size of the sense_buffer copy to the target buffer's size so that we don't overflow the sence_buffer. The other sections remove some pointer arithmatic that is wrong on 64bit machines do to padding. Instead, just call the pci_map functions on the buffer.
-
David Jeffery authored
This is by far the biggest patch. It is a rewrite of the driver's horrid locking. In addition to the host_lock, the driver used to have 4 other locks per adapter! It had a redundant ha_lock and a lock for each of 3 queues. In a few places it also played with atomic bit setting. And almost all of it was useless as the host_lock was already held. This patch cleans up this locking nightmare. The driver now uses the host_lock exclusively. Only a few places needed to add calls to lock the host_lock. Most of this patch is deletion of useless extra locking.
-
David Jeffery authored
This patch adds an Adaptec copyright, makes a few minor comment changes, and removes a few unneeded macros.
-
David Jeffery authored
This patch is some simple code consolidation. A new function ips_abort_init() is created and consolidates some repeated code that is used if there is an error during initialization of the adapter.
-
David Jeffery authored
This removes several unused header includes and allows the driver to compile by no longer trying to include <linux/tqueue.h> . You may have already gotten a patch to remove tqueue.h from someone else. This patch also corrects the spelling of my last name in the MAINTAINERS file. You'd think I'd be used to seeing it spelled wrong by now.
-
Richard Henderson authored
into are.twiddle.net:/home/rth/BK/axp-2.5
-