Kernel.org
Mirrors
Summary of changes from v2.5.11 to v2.5.12
============================================
<hchsb.bsdonline.org> (02/04/03 1.369.97.2)
Make sysvfs use sb->u.generic_sbp.
<hchsb.bsdonline.org> (02/04/03 1.369.97.4)
Sanitize definition of sysvfs dinode.
<hchsb.bsdonline.org> (02/04/19 1.531.7.2)
sysvfs: V7 uses 512 byte blocks, not 1Kb.
<vojtechtwilight.ucw.cz> (02/04/28 1.531.27.2)
Add a missing "UDMA100" entry in udma name table.
<vojtechtp1.ruhr-uni-bochum.de> (02/04/29 1.547.1.1)
drivers/block/paride: Export symbols explicitly
Before this changed we relied on the fact that due to missing
EXPORT_SYMBOL() all symbols would be exported.
<kaitp1.ruhr-uni-bochum.de> (02/04/29 1.547.1.3)
drivers/char/ip2main: Export symbols explicitly
<kaievision-ventures.com> (02/04/29 1.547.3.1)
[PATCH] 2.5.10 IDE 45
- Fix bogus set_multimode() change. I tough I had reverted it before diff-ing.
This was causing hangs of /dev/hdparm -m8 /dev/hda and similar commands.
<virotp1.ruhr-uni-bochum.de> (02/04/30 1.547.4.1)
ALSA Makefile cleanup: use $(mod-subdirs)
Some places were doing:
subdir-$(CONFIG_FOO) += foo
ifeq ($(CONFIG_FOO),y)
subdir-m += foo
fi
That can be expressed more easily as
mod-subdirs := foo
subdir-$(CONFIG_FOO) += foo
<kaitp1.ruhr-uni-bochum.de> (02/04/30 1.547.4.3)
ALSA Makefile cleanup: Consistent O_TARGET naming
ALSA was using _<subdir>.o as O_TARGET in most places already, so let's
do it everywhere.
<kaitp1.ruhr-uni-bochum.de> (02/04/30 1.531.29.2)
ISDN cleanup: drivers/isdn/hardware/avm s/__u{32,16,8}/u{32,16,8}/
<kaikleikamp.austin.ibm.com> (02/04/30 1.547.5.1)
JFS: log->bdev must be initialized for inline log
log->bdev was not being initialized. It had not been used until
Al Viro's recent change from using bio->b_dev to bio->b_bdev.
<akpmzip.com.au> (02/04/30 1.547.3.4)
[PATCH] ext2 directory handling
Convert ext2 directory handling to not rely on the contents of pages
outside i_size.
This is because block_write_full_page (which is used for all writeback)
zaps the page outside i_size.
<akpmzip.com.au> (02/04/30 1.547.3.6)
[PATCH] readahead fix
Changes the way in which the readahead code locates the readahead
setting for the underlying device.
- struct block_device and struct address_space gain a *pointer* to the
current readahead tunable.
- The tunable lives in the request queue and is altered with the
traditional ioctl.
- The value gets *copied* into the struct file at open() time. So a
fcntl() mode to modify it per-fd is simple.
- Filesystems which are not request_queue-backed get the address of the
global `default_ra_pages'. If we want, this can become a tunable.
- Filesystems are at liberty to alter address_space.ra_pages to point
at some other fs-private default at new_inode/read_inode/alloc_inode
time.
- The ra_pages pointer can become a structure pointer if, at some time
in the future, high-level code needs more detailed information about
device characteristics.
In fact, it'll need to become a struct pointer for use by
writeback: my current writeback code has the problem that multiple
pdflush threads can get stuck on the same request queue. That's a
waste of resources. I currently have a silly flag in the superblock
to try to avoid this.
The proper way to get this exclusion is for the high-level
writeback code to be able to do a test-and-set against a
per-request_queue flag. That flag can live in a structure alongside
ra_pages, conveniently accessible at the pagemap level.
One thing still to-be-done is going into all callers of blk_init_queue
and blk_queue_make_request and making sure that they're setting up a
sensible default. ATA wants 248 sectors, and floppy drives don't want
128kbytes, I suspect. Later.
<akpmzip.com.au> (02/04/30 1.547.3.8)
[PATCH] remove buffer unused_list
Removes the buffer_head unused list. Use a mempool instead.
The reduced lock contention provided about a 10% boost on ANton's
12-way.
<akpmzip.com.au> (02/04/30 1.547.3.10)
[PATCH] cleanup page flags
page->flags cleanup.
Moves the definitions of the page->flags bits and all the PageFoo
macros into linux/page-flags.h. That file is currently included from
mm.h, but the stage is set to remove that and include page-flags.h
direct in all .c files which require that. (120 of them).
The patch also makes all the page flag macros and functions consistent:
For PG_foo, the following functions are defined:
SetPageFoo
ClearPageFoo
TestSetPageFoo
TestClearPageFoo
PageFoo
and that's it.
- Page_Uptodate is renamed to PageUptodate
- LockPage is removed. All users updated to use SetPageLocked
- UnlockPage is removed. All callers updated to use unlock_page().
it's a real function - there's no need to hide that fact.
- PageTestandClearReferenced renamed to TestClearPageReferenced
- PageSetSlab renamed to SetPageSlab
- __SetPageReserved is removed. It's an infinitesimally small
microoptimisation, and is inconsistent.
- TryLockPage is renamed to TestSetPageLocked
- PageSwapCache() is renamed to page_swap_cache(), so it doesn't
pretend to be a page->flags bit test.
<akpmzip.com.au> (02/04/30 1.547.3.12)
[PATCH] cleanup write_one_page
Remove writeout_one_page(), waitfor_one_page() and the now-unused
generic_buffer_fdatasync().
Add new
write_one_page(struct page *page, int wait)
which is exported to modules. Update callers to use that. It's only
used for IS_SYNC operations.
<akpmzip.com.au> (02/04/30 1.547.3.14)
[PATCH] remove i_dirty_data_buffers
Removes inode.i_dirty_data_buffers. It's no longer used - all dirty
buffers have their pages marked dirty and filemap_fdatasync() /
filemap_fdatawait() catches it all.
Updates all callers.
This required a change in JFS - it has "metapages" which
are a container around a page which holds metadata. They
were holding these pages locked and were relying on fsync_inode_data_buffers
for writing them out. So fdatasync() deadlocked.
I've changed JFS to not lock those pages. Change was acked
by Dave Kleikamp <shaggyzip.com.au> (02/04/30 1.547.3.15)
[PATCH] remove PG_skip
Remove PG_skip. Nothing is using it (the change was acked by rmk a
while back)
<akpmzip.com.au> (02/04/30 1.547.3.17)
[PATCH] cleanup of bh->flags
Moves all buffer_head-related stuff out of linux/fs.h and into
linux/buffer_head.h. buffer_head.h is currently included at the very
end of fs.h. So it is possible to include buffer_head directly from
all .c files and remove this nested include.
Also rationalises all the set_buffer_foo() and mark_buffer_bar()
functions. We have:
set_buffer_foo(bh)
clear_buffer_foo(bh)
buffer_foo(bh)
and, in some cases, where needed:
test_set_buffer_foo(bh)
test_clear_buffer_foo(bh)
And that's it.
BUFFER_FNS() and TAS_BUFFER_FNS() macros generate all the above real
inline functions. Normally not a big fan of cpp abuse, but in this
case it fits. These function-generating macros are available to
filesystems to expand their own b_state functions. JBD uses this in
one case.
<akpmzip.com.au> (02/04/30 1.547.3.19)
[PATCH] page writeback locking update
- Fixes a performance problem - callers of
prepare_write/commit_write, etc are locking pages, which synchronises
them behind writeback, which also locks these pages. Significant
slowdowns for some workloads.
- So pages are no longer locked while under writeout. Introduce a
new PG_writeback and associated infrastructure to support this design
change.
- Pages which are under read I/O still use PageLocked. Pages which
are under write I/O have PageWriteback() true.
I considered creating Page_IO instead of PageWriteback, and marking
both readin and writeout pages as PageIO(). So pages are unlocked
during both read and write. There just doesn't seem a need to do
this - nobody ever needs unblocking access to a page which is under
read I/O.
- Pages under swapout (brw_page) are PageLocked, not PageWriteback.
So their treatment is unchangeded.
It's not obvious that pages which are under swapout actually need
the more asynchronous behaviour of PageWriteback.
I was setting the swapout pages PageWriteback and unlocking them
prior to submitting the buffers in brw_page(). This led to deadlocks
on the exit_mmap->zap_page_range->free_swap_and_cache path. These
functions call block_flushpage under spinlock. If the page is
unlocked but has locked buffers, block_flushpage->discard_buffer()
sleeps. Under spinlock. So that will need fixing if for some reason
we want swapout to use PageWriteback.
Kernel has called block_flushpage() under spinlock for a long time.
It is assuming that a locked page will never have locked buffers.
This appears to be true, but it's ugly.
- Adds new function wait_on_page_writeback(). Renames wait_on_page()
to wait_on_page_locked() to remind people that they need to call the
appropriate one.
- Renames filemap_fdatasync() to filemap_fdatawrite(). It's more
accurate - "sync" implies, if anything, writeout and wait. (fsync,
msync) Or writeout. it's not clear.
- Subtly changes the filemap_fdatawrite() internals - this function
used to do a lock_page() - it waited for any other user of the page
to let go before submitting new I/O against a page. It has been
changed to simply skip over any pages which are currently under
writeback.
This is the right thing to do for memory-cleansing reasons.
But it's the wrong thing to do for data consistency operations (eg,
fsync()). For those operations we must ensure that all data which
was dirty *at the time of the system call* are tight on disk before
the call returns.
So all places which care about this have been converted to do:
filemap_fdatawait(mapping);
filemap_fdatawrite(mapping);
filemap_fdatawait(mapping);
- Fixes a truncate_inode_pages problem - truncate currently will
block when it hits a locked page, so it ends up getting into lockstep
behind writeback and all of the file is pointlessly written back.
One fix for this is for truncate to simply walk the page list in the
opposite direction from writeback.
I chose to use a separate cleansing pass. It is more
CPU-intensive, but it is surer and clearer. This is because there is
no reason why the per-address_space ->vm_writeback and
->writeback_mapping functions *have* to perform writeout in
->dirty_pages order. They may choose to do something totally
different.
(set_page_dirty() is an a_op now, so address_spaces could almost
privatise the whole dirty-page handling thing. Except
truncate_inode_pages and invalidate_inode_pages assume that the pages
are on the address_space lists. hmm. So making truncate_inode_pages
and invalidate_inode_pages a_ops would make some sense).
<akpmevision-ventures.com> (02/04/30 1.547.3.21)
[PATCH] 2.5.11 IDE 46
- Remove the specific CONFIG_IDEDMA_PCI_WIP in favor of using the generic
CONFIG_EXPERIMENTAL tag. (Pointed out by Vojtech Pavlik).
- Change the signature of the IRQ handler to take the request directly as a
parameter. This doesn't blow the code up but makes it much more obvious and
finally it's reducing the number of side effects of the hwgroup->rq field.
- A second sharp look after the above change allowed us to remove the wrq field
from the hwgroup struct. It's just not used at all.
- Change the signature of the end_request member of struct ata_operations to
take the request as a second argument. Similar for __ide_end_request()
and ide_end_request().
- Remove BUG_ON() items just before ide_set_handler(). The check in
ide_set_handler is clever enough now.
- Remove the rq subfield from ide-scsi packet structure. We have now the
request context always in place. Same for floppy.
- Let the timer expiry function take the request as a direct argument.
Yes I know those changes are extensive. But they are a necessary step
in between for the following purposes:
- Consolidate the whole ATA/ATAPI stuff on passing a single unified request
handling object. Because after eliminating those side effects it's far easier
to see what's passed where.
- Minimizing the amount of side effects in the overall code. That's a good
thing anyway and it *doesn't* cost us neither performance nor space, since
the stack depths are small anyway here.
- Minimizing the usage of hwgroup - which should go away if possible.
<daleckievision-ventures.com> (02/04/30 1.547.3.23)
[PATCH] 2.5.11 IDE 48
Tue Apr 30 13:23:13 CEST 2002 ide-clean-48
This fixes the "performance" degradation partially, becouse we don't
miss that many jiffies in choose_urgent_device() anymore. However
choose_urgent_device has to be fixed for the off by one error to don't
loop for a whole 1/100 second before submitting the next request.
- Include small declaration bits for Jens. (WIN_NOP fix in esp.)
- Fix ide-pmac to conform to the recent API changes.
- Prepare and improve the handling of the request queue. It sucks now as many
request as possible. This is improving the performance.
<torvaldsus.ibm.com> (02/04/30 1.547.3.25)
[PATCH] shift BKL out of vfs_readdir
This patch takes the BKL out of vfs_readdir() and moves it into the
individual filesystems, all 35 of them. I have the feeling that this
wasn't done before because there are a lot of these to change and it was
a pain to find them all. I definitely got all of those that were
defined in the in the structure declaration like this "readdir:
fs_readdir;" vxfs_readdir was assigned strangely, but I found it anyway.
I also left devfs out of this one. Richard seems confident that devfs
has no need for the BKL.
<torvalds@penguin.transmeta.com> (02/04/30 1.547.3.26)
Move BKL into readdir for ntfs-tng
<torvalds@penguin.transmeta.com> (02/04/30 1.547.3.27)
update x86 defconfig
<torvalds@penguin.transmeta.com> (02/04/30 1.547.3.28)
Fix broken sound print macros
<perex@suse.cz> (02/04/30 1.547.3.29)
[PATCH] Re: ALSA patch..
I overlooked these single line changes. Here are next corrections
against ChangeSet 1.547:
<bgerst@didntduck.org> (02/04/30 1.550)
[PATCH] Removing SYMBOL_NAME part 6
Last remaining instances removed.
<paulkf@microgate.com> (02/04/30 1.551)
[PATCH] 2.5.11 synclink.h
This patch to synclink.h against 2.5.11 is required
for the synclink_cs.c driver to compile.
<rml@tech9.net> (02/04/30 1.552)
[PATCH] sched cleanup, comments, separate max prios
Attached patch is a resync of previous patches sent by Ingo and I.
Specifically:
- create new MAX_USER_RT_PRIO value
- separate uses of MAX_RT_PRIO vs MAX_USER_RT_PRIO
- replace use of magic numbers by above
- additional comments
<fdavis@si.rr.com> (02/04/30 1.554)
[PATCH] 2.5.11 : drivers/net/ppp_generic.c
Linus,
During a 'make bzImage', I received a warning on ppp_generic.c that ret
wasn't initialized (also for 2.5.10). I have attached a patch that sets
ret = count, thus removing the warning. Please review for inclusion.
Regards,
Frank
<david@gibson.dropbear.id.au> (02/04/30 1.555)
[PATCH] orinoco driver update
The following patch against 2.5.11 updates the orinoco driver. As well
as miscellaneous updates to the driver core it adds a new module
supporting Prism 2.5 based PCI wireless cards, and adds a MAINTAINERS
entry for the driver.
<maxk@qualcomm.com> (02/04/30 1.562)
[PATCH] 2.5.x TUN/TAP driver readv/writev support
This adds proper support for readv/writev in the TUN/TAP driver.
<torvalds@penguin.transmeta.com> (02/04/30 1.563)
Fix PIIX bugs from merge