03 Sep, 2008
26 commits
-
Dio write returns EIO when try_to_release_page fails because bh is
still referenced.The patch
commit 3f31fddfa26b7594b44ff2b34f9a04ba409e0f91
Author: Mingming Cao
Date: Fri Jul 25 01:46:22 2008 -0700jbd: fix race between free buffer and commit transaction
was merged into 2.6.27-rc1, but I noticed that this patch is not enough
to fix the race.I did fsstress test heavily to 2.6.27-rc1, and found that dio write still
sometimes got EIO through this test.The patch above fixed race between freeing buffer(dio) and committing
transaction(jbd) but I discovered that there is another race, freeing
buffer(dio) and ext3/4_ordered_writepage.: background_writeout()
->write_cache_pages()
->ext3_ordered_writepage()
walk_page_buffers() -> take a bh ref
block_write_full_page() -> unlock_page
: try_to_release_page fails)
walk_page_buffers() ->release a bh refext3_ordered_writepage holds bh ref and does unlock_page remaining
taking a bh ref, so this causes the race and failure of
try_to_release_page.To fix this race, I used the approach of falling back to buffered
writes if try_to_release_page() fails on a page.[akpm@linux-foundation.org: cleanups]
Signed-off-by: Hisashi Hifumi
Cc: Chris Mason
Cc: Jan Kara
Cc: Mingming Cao
Cc: Zach Brown
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
I have gotten to the root cause of the hugetlb badness I reported back on
August 15th. My system has the following memory topology (note the
overlapping node):Node 0 Memory: 0x8000000-0x44000000
Node 1 Memory: 0x0-0x8000000 0x44000000-0x80000000setup_zone_migrate_reserve() scans the address range 0x0-0x8000000 looking
for a pageblock to move onto the MIGRATE_RESERVE list. Finding no
candidates, it happily continues the scan into 0x8000000-0x44000000. When
a pageblock is found, the pages are moved to the MIGRATE_RESERVE list on
the wrong zone. Oops.setup_zone_migrate_reserve() should skip pageblocks in overlapping nodes.
Signed-off-by: Adam Litke
Acked-by: Mel Gorman
Cc: Dave Hansen
Cc: Nishanth Aravamudan
Cc: Andy Whitcroft
Cc: [2.6.25.x, 2.6.26.x]
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Update the location of the NTFS homepage in several files.
Signed-off-by: Adrian Bunk
Cc: Jeff Garzik
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
ide/Kconfig: mark ide-scsi as deprecated
ide-disk: remove stale init_idedisk_capacity() documentation
palm_bk3710: improve IDE registration
ide: fix hwif_to_node()
IDE: palm_bk3710: fix compile warning for unused variable
IDE: compile fix for sff_dma_ops -
Mark ide-scsi as deprecated and remove stale/bogus documentation.
Signed-off-by: Bartlomiej Zolnierkiewicz
-
Acked-by: Sergei Shtylyov
Signed-off-by: Bartlomiej Zolnierkiewicz -
* fix device tree ... don't forget to set the parent device
* let init/exit code be removed where practical
Signed-off-by: David Brownell
[bart: splitted it from bigger DaVinci patch, s/hw.parent/hw.dev/]
Signed-off-by: Bartlomiej Zolnierkiewicz -
hwif_to_node() incorrectly assumes that hwif->dev always belongs to
a PCI device. This results in ide-cs oopsing in init_irq() after
commit c56c5648a3bd15ff14c50f284b261140cd5b5472 accidentally fixed
device tree registration for ide-cs. Fix it by using dev_to_node().Thanks to Martin Michlmayr and Larry Finger for help with debugging
the issue.Reported-by: Martin Michlmayr
Tested-by: Martin Michlmayr
Cc: Larry Finger
Cc: Dominik Brodowski
Signed-off-by: Bartlomiej Zolnierkiewicz -
Signed-off-by: Kevin Hilman
Signed-off-by: Bartlomiej Zolnierkiewicz -
The sff_dma_ops struct should be wrapped by BLK_DEV_IDEDMA_SFF instead
of BLK_DEV_IDEDMA_PCI.Signed-off-by: Kevin Hilman
Cc: Sergei Shtylyov
Signed-off-by: Bartlomiej Zolnierkiewicz -
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: hda - Add mic-boost controls to ALC662/663 auto configuration
ALSA: hda - Fix ALC663 auto-probe
ALSA: ASoC: fix pxa2xx-i2s clk_get call
ALSA: hda: Distortion fix for dell_m6_core_init -
* 'audit.b57' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
[PATCH] audit: Moved variable declaration to beginning of function -
* 'for-linus' of git://neil.brown.name/md:
Fix problem with waiting while holding rcu read lock in md/bitmap.c
Remove invalidate_partition call from do_md_stop. -
With the new firmware infrastructure in 2.6.27, some files are generated and shouldn't be
diffed; add these 2 to the "dontdiff" fileSigned-off-by: Arjan van de Ven
Signed-off-by: Linus Torvalds -
This fixes a typo in commit 2a2a64714d9c40f7705c4de1e79a5b855c7211a9 "Disable MWAIT via DMI on broken Compal board".
It allows the nomwait dmi check to actually detect the Acer 5220.
Signed-off-by: Dennis Jansen
Tested-by: Dennis Jansen
Acked-by: Zhao Yakui
Signed-off-by: Linus Torvalds -
* git://git.infradead.org/users/dwmw2/random-2.6:
[MTD] mtdchar.c: Fix regression in MEMGETREGIONINFO ioctl()
dabusb_fpga_download(): fix a memory leak
Remove '#include ' from mm/page_isolation.c
Fix modules_install on RO nfs-exported trees. -
* 'for-2.6.27' of git://linux-nfs.org/~bfields/linux:
nfsd: fix buffer overrun decoding NFSv4 acl
sunrpc: fix possible overrun on read of /proc/sys/sunrpc/transports
nfsd: fix compound state allocation error handling
svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet -
Fix operator precedence bug in atari_keyb_init, which caused a failure on CT60
Signed-off-by: Michael Schmitz
Signed-off-by: Geert Uytterhoeven
Signed-off-by: Linus Torvalds -
A parisc allmodconfig build produces this:
arch/parisc/hpux/fs.c:107: error: 'buffer' undeclared (first use in this function)
Introduced by commit da574983de9f9283ba35662c8723627096e160de ("[PATCH]
fix hpux_getdents()").Helge Dille also reported this in bugzilla 11461:
http://bugzilla.kernel.org/show_bug.cgi?id=11461
and he posted an identical patch.
Signed-off-by: Stephen Rothwell
Signed-off-by: Helge Deller
Signed-off-by: Linus Torvalds -
The recent commit 16d9679f33caf7e683471647d1472bfe133d858 changed
check_hung_task() to filter out the TASK_KILLABLE tasks. We can
move this check to the caller which has to test t->state anyway.Signed-off-by: Oleg Nesterov
Acked-by: Andi Kleen
Signed-off-by: Linus Torvalds -
Fix kernel-doc warning for new function:
Warning(linux-2.6.27-rc5-git2//kernel/resource.c:448): No description found for parameter 'root'
Signed-off-by: Randy Dunlap
Signed-off-by: Linus Torvalds -
* 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/radeon: downgrade debug message from info to debug. -
* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
[CIFS] Turn off Unicode during session establishment for plaintext authentication
[CIFS] update cifs change log
cifs: fix O_APPEND on directio mounts
[CIFS] Fix plaintext authentication -
* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
block: restore original behavior of /proc/partition when there's no partition
remove blk_register_filter and blk_unregister_filter in gendisk -
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc64: setup_valid_addr_bitmap_from_pavail() should be __init
sparc: Fix resource flags for PCI children in OF device tree.
sparc32: Implement smp_call_function_single(). -
Breaking lines due to some imaginary problem with a long line length is
often stupid and wrong, but never more so when it splits a string that
is printed out into multiple lines. This really ended up making it much
harder to find where some error strings were printed out, because a
simple 'grep' didn't work.I'm sure there is tons more of this particular idiocy hiding in other
places, but this particular case hit me once more last week. So fix it.Signed-off-by: Linus Torvalds
02 Sep, 2008
10 commits
-
Signed-off-by: Takashi Iwai
-
Fix the wrong DAC assignment for NID 0x17 mono-pin on ALC663.
Signed-off-by: Takashi Iwai
-
The MEMGETREGIONINFO ioctl() in mtdchar.c was clobbering user memory by
overwriting more than intended, due the size of struct mtd_erase_region_info
changing in commit 0ecbc81adfcb9f15f86b05ff576b342ce81bbef8 ('Support
for auto locking flash on power up').Fix avoids this by copying struct members one by one with put_user(), as there
is no longer a convenient struct to use the size of as the length argument to
copy_to_user().Signed-off-by: Zev Weiss
Signed-off-by: David Woodhouse -
This patch fixes a memory leak in an error path.
Reported-by: Adrian Bunk
Signed-off-by: Adrian Bunk
Signed-off-by: David Woodhouse -
Signed-off-by: David Woodhouse
-
Fixes http://bugzilla.kernel.org/show_bug.cgi?id=11355 by avoiding a
needless rebuild of the firmware/ihex2fw tool.Signed-off-by: David Woodhouse
-
got rid of compilation warning:
ISO C90 forbids mixed declarations and codeSigned-off-by: Cordelia Sam
Signed-off-by: Al Viro -
The array we kmalloc() here is not large enough.
Thanks to Johann Dahm and David Richter for bug report and testing.
Signed-off-by: J. Bruce Fields
Cc: David Richter
Tested-by: Johann Dahm -
Vegard Nossum reported
----------------------
> I noticed that something weird is going on with /proc/sys/sunrpc/transports.
> This file is generated in net/sunrpc/sysctl.c, function proc_do_xprt(). When
> I "cat" this file, I get the expected output:
> $ cat /proc/sys/sunrpc/transports
> tcp 1048576
> udp 32768> But I think that it does not check the length of the buffer supplied by
> userspace to read(). With my original program, I found that the stack was
> being overwritten by the characters above, even when the length given to
> read() was just 1.David Wagner added (among other things) that copy_to_user could be
probably used here.Ingo Oeser suggested to use simple_read_from_buffer() here.
The conclusion is that proc_do_xprt doesn't check for userside buffer
size indeed so fix this by using Ingo's suggestion.Reported-by: Vegard Nossum
Signed-off-by: Cyrill Gorcunov
CC: Ingo Oeser
Cc: Neil Brown
Cc: Chuck Lever
Cc: Greg Banks
Cc: Tom Tucker
Signed-off-by: J. Bruce Fields -
Move the cstate_alloc call so that if it fails, the response is setup to
encode the NFS error. The out label now means that the
nfsd4_compound_state has not been allocated.Signed-off-by: Andy Adamson
Signed-off-by: J. Bruce Fields
01 Sep, 2008
4 commits
-
/proc/partitions didn't use to write out the header if there was no
partition. However, recent commit 66c64afe changed the behavior.
This is nothing major but there's no reason to change user visible
behavior without a good rationale. Restore the original behavior.Note that 2.6.28 has clean up changes scheduled which will replace
this rather hacky implementation.Signed-off-by: Tejun Heo
Cc: Greg KH
Cc: Kay Sievers
Signed-off-by: Jens Axboe -
pxa2xx-i2s: probe actual device and use it for clk_get call
thus fixing error during startup hookSigned-off-by: Dmitry Baryshkov
Acked-by: Mark Brown
Signed-off-by: Takashi Iwai -
Added the EQ distortion fix to the dell_m6_core_init.
Signed-off-by: Matthew Ranostay
Signed-off-by: Takashi Iwai -
A recent patch to protect the rdev list with rcu locking leaves us
with a problem because we can sleep on memalloc while holding the
rcu lock.The rcu lock is only needed while walking the linked list as
uninteresting devices (failed or spares) can be removed at any time.So only take the rcu lock while actually walking the linked list.
Take a refcount on the rdev during the time when we drop the lock
and do the memalloc to start IO.
When we return to the locked code, all the interesting devices
on the list will not have moved, so we can simply use
list_for_each_continue_rcu to pick up where we left off.Signed-off-by: NeilBrown