- 16 Nov, 2002 15 commits
-
-
Andrew Morton authored
Stephen Tweedie reports a 2.4.7 problem in which kswapd is chewing lots of CPU trying to reclaim inodes which are pinned by buffer_heads at i_dirty_buffers. This can only happen when there's memory pressure on ZONE_HIGHMEM - the 2.4 kernel runs shrink_icache_memory in that case as well. But there's no reclaim pressure on ZONE_NORMAL so the VM is never running try_to_free_buffers() against the ZONE_NORMAL buffers which are pinning the inodes. The 2.5 kernel also runs the slab shrinkers in response to ZONE_HIGHMEM pressure. This may be wrong - still thinking about that. This patch arranges for prune_icache to try to remove the inode's buffers when the inode is to be reclaimed. It also changes inode_has_buffers() and the other inode-buffer-list functions to look at inode->i_data, not inode->i_mapping. The latter was wrong.
-
Andrew Morton authored
slab does various consistency checks during `cat /proc/slabinfo' processing. If it finds one it stupidly goes BUG just before displaying the info which is required to diagnose the bug. Change it to not go BUG, but to emit some useful printks and continue. The patch also removes an uninteresting printk from the boot process.
-
Andrew Morton authored
Patch from Rohit Seth, changelog from Bill Irwin: (1) fixes failure to clear key->busy (yes, it's always under a lock) (2) fixes key->count being unconditionally set to 1 in alloc_key() (3) reduces search to key->size >> HPAGE_SHIFT from key->size (4) actually uses vma->vm_private_data to release the key as intended plus the cleanup: (5) removes the int *new argument to alloc_key()
-
Andrew Morton authored
A rollup of Bill's 11-patch series which replaces hugetlb's custom inode with a bare radix tree. Reviewed and acked by Rohit. - revert doublefreeing patch - Put set_new_inode() and the inode allocation loop into an alloc_key(), and introduce a new opaque type "struct hugetlb_key". - Wrap the release path in alloc_shared_hugetlb_pages() with a release_key() function that handles the release. - Wrap hugetlb_prefault() with prefault_key() in order to isolate the dependency on inodes for prefaulting the hugetlb vma. - Replaces the usage of inode->i_writecount as a flag marking keys busy with a boolean flag field in struct htlbpagekey, and removes the last dependency of alloc_shared_hugetlb_pages() on struct inode. - Remove the last direct usage of struct inode within the hugetlb functions. - Removes many direct usages of struct inode within the key manipulation API in exchange for passing references to the key structure itself. - Expand out prefault_key() into its hugetlb_prefault() component, but substitute stubs to abstract out inode access. - Move uid/gid/mode/size fields used in struct inode and the checks on them into key management code and structures. - Substitute direct usage of radix trees for inodes, and removes the custom-allocated inodes. - Wrap up the release path by adding proper refcounting of keys.
-
Andrew Morton authored
- add init_timer in bttv driver - remove duplicated init_timer() in ncpfs. - remove noisy printk's from 3c59x.c - sparc64 compile fix with CONFIG_HUGETLBPAGE=y - htlbpage_max is now an int
-
Andrew Morton authored
Patch from Hugh Dickins <hugh@veritas.com> tmpfs failed fsx+swapout tests after many hours, a page found zeroed. Not a truncate problem, but mirror image of earlier truncate problems: swap goes through mpage_writepages, which must therefore allow for a sudden swizzle back to file identity. Second time this caught us, so I've audited the tree for other places which might be surprised by such swizzling. The only others I found were (perhaps) in the parisc and sparc64 flush_dcache_page called from do_generic_mapping_read on a looped tmpfs file which is also mmapped; but that's a very marginal case, I wanted to understand it better before making any edit, and now realize that hch's sendfile in loop eliminates it (now go through do_shmem_file_read instead: similar but crucially this locks the page when raising its count, which is enough to keep vmscan from interfering).
-
Andrew Morton authored
Patch from Hugh Dickins <hugh@veritas.com> swap_readpage and swap_writepage forgot to unlock_page if get_swap_bio failed.
-
Andrew Morton authored
Patch from Hugh Dickins <hugh@veritas.com> On some architectures (cachetlb.txt gives HyperSparc as an example) it is essential to flush_cache_page while pte is still valid: the rmap VM diverged from the base 2.4 VM before that fix was made, so this error has crept back into 2.5. Patch below applies to 2.5.47 or 2.5.47-mm1 - needs more work over shared pagetables, but they've silently fallen out of 2.5.47-mm1: oversight? I'll send Alan the equivalent for 2.4-ac shortly. (I wonder, what happens if userspace now modifies the page after the flush_cache_page, before the pte is invalidated?)
-
Andrew Morton authored
Patch from Andreas Gruenbacher <agruen@suse.de> Add a gfp_mask parameter to the free() callback so that the callback can safely do I/O, etc. The free callback can now also fail. This will be needed by reiserfs. The order of entries on the cache entry lru is reversed so that list_for_each_safe() can be used. Several helper functions that don't make the code any better are removed. Finally, a couple of cosmetic things.
-
Andrew Morton authored
From Badari. bio_add_page returns zero on failure - we need to propagate that to the dio_bio_add_page() caller.
-
Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Matthew Wilcox authored
This patch removes all the wait_queue handling code from sched.h and puts it in wait.h with the rest of the wait_queue handling code. Note that sched.h must continue to include wait.h for the wait_queue_head_t embedded in struct task. However there may be files which only need wait.h now.
-
Matthew Wilcox authored
It really makes no sense to have request_irq and free_irq in sched.h Let's move them to interrupt.h instead. Note that I also remove sched.h from interrupt.h since it's not needed.
-
Matthew Wilcox authored
A minor removal of 6 function definitions from sched.h. They clearly fit better in file.h. All users of these functions already include file.h. And none of them included sched.h directly...
-
Matthew Wilcox authored
This patch from William Lee Irwin III privatizes __d_path() to dcache.c, uninlines d_path(), moves its declaration to dcache.h, moves it to dcache.c, and exports d_path() instead of __d_path().
-
- 15 Nov, 2002 14 commits
-
-
Alexander Viro authored
Grrr... Two bugs in a patch that had moved md setup to late boot: a) we need md_run_setup() run before parsing root name. b) it's create_dev("/dev/md0",...), not create_dev("md0",...) ;-/
-
Alexander Viro authored
Still not safe (we use __MOD_INC_USE_COUNT in paride.c; old code has MOD_INC_USE_COUNT in protocol drivers), but that takes crap in one place. ->owner added paride.c grabs/releases it if if present ->proto_init() became empty for almost everything ->proto_release() <<--->> ->proto_init() returns int now (the only case where we do have a non-empty ->proto_init() needed that all along). paride.c taught to deal with that.
-
Alexander Viro authored
dasd_proc.c : should be using ->owner instead of MOD_..._USE_COUNT in ->open()/->release(). s390/char/tape.c, s390/char/tapechar.c, usb/image/scanner.c, intermezzo/psdev.c: ditto intermezzo/super.c: they forgot to remove MOD_INC_USE_COUNT from the ..._fill_super() binfmt_som.c: ->load_binary() and ->load_library() don't need MOD_INC_USE_COUNT, since ->module is correctly set.
-
bk://linux-input.bkbits.net/linux-inputLinus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Vojtech Pavlik authored
-
Alexander Viro authored
devfs_register_tape() returns the number it had assigned to tape. new helper: devfs_unregister_tape(number) - removes symlink created by devfs_register_tape() devfs_register_tape() doesn't use devfs_auto_unregister() anymore. devfs_register_tape() gets devfs entry of directory, instead of that of a random file in that directory. users updated
-
Alexander Viro authored
-
Alexander Viro authored
-
Alexander Viro authored
-
Alexander Viro authored
dm-ioctl.c does, er, interesting things to figure out the name of devfs node it had just created. Cleaned up.
-
Alexander Viro authored
dv1394.c piles amazing amounts of crap around its devfs entries. Probably a result of times before devfs_find_and_unregister()... In any case, code switched to use of devfs_find_and_unregister(), crapectomy performed...
-
Davide Libenzi authored
- Improved file cleanup code
-
Davide Libenzi authored
- A more uniform poll queueing interface with tips from Manfred - The f_op->poll() is done outside the irqlock to maintain compatibility with existing drivers that assume to be called with irq enabled - Moved event mask setting inside ep_modify() with tips from John - Fixed locking to fit the new "poll() outside the lock" approach - Bufferd userspace event delivery to reduce irq_lock/irq_unlock switching rate and to reduce the number of __copy_to_user() - Comments added
-
Jens Axboe authored
There's a long standing bug in blk_recount_segments(). Clustering means physical segment colascing, not hardware segment colascing. This basically means that we are mapping more segments than here than the bio + requests contains, and this causes a bug in the SCSI layer for host adapters that have CLUSTERING enabled. This patch makes sure that we are clustering physical segments correctly, and correctly accounting hardware segments. Please apply.
-
- 14 Nov, 2002 11 commits
-
-
http://linux-isdn.bkbits.net/linux-2.5.isdnLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
http://linux-isdn.bkbits.net/linux-2.5.makeLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
http://linux-acpi.bkbits.net/linux-acpiLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
bk://linuxusb.bkbits.net/linus-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Linus Torvalds authored
-
Linus Torvalds authored
instead of home-brew PCI allocations.
-
Linus Torvalds authored
instead of home-brew PCI allocations.
-
Linus Torvalds authored
DMA blit and getparam support.
-
Linus Torvalds authored
irq handling.
-
Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Linus Torvalds authored
R200 cube map registers)
-