aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-01-25[GFS2] Reorder writeback for glock syncSteven Whitehouse
Previously we were doing (write data, wait for data, write metadata, wait for metadata). After this patch we so (write metadata, write data, wait for data, wait for metadata) which should be more efficient. Also I noticed that the drop_bh and xmote_bh functions were almost identical. In fact the only difference was a single test, and that test is such that in the drop_bh case, it would always evaluate to the correct result. As such we can use the xmote_bh functions in all the places where we were using the drop_bh function and remove the drop_bh functions. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Add sync_page to metadata address space operationsSteven Whitehouse
This set of address space operations was missing a sync_page operation. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Remove "reclaim limit"Steven Whitehouse
This call to reclaim glocks is not needed, and in particular we don't want it in the fast path for locking glocks. The limit was entirely arbitrary anyway and we can't expect users to adjust things like this, the remaining code will do the right thing on its own. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Remove unused variablesSteven Whitehouse
These haven't been used for some time, remove them. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Use correct include file in ops_address.cSteven Whitehouse
Something changed in the upstream kernel, and it needs this one-liner to allow ops_address.c to build. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Don't hold page lock when starting transactionSteven Whitehouse
This is an addendum to the new AOPs work which moves the point at which we take the page lock so that we don't get it until the last possible moment. This resolves a conflict between starting transactions and the page lock. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Add writepages for GFS2 jdataSteven Whitehouse
This patch resolves a lock ordering issue where we had been getting a transaction lock in the wrong order with respect to the page lock. By using writepages rather than just writepage, it is then possible to start a transaction before locking the page, and thus matching the locking order elsewhere in the code. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Split gfs2_writepage into three casesSteven Whitehouse
This patch splits gfs2_writepage into separate functions for each of the three cases: writeback, ordered and journalled. As a result it becomes a lot easier to see what each one is doing. The common code is moved into gfs2_writepage_common. This fixes a performance bug where we were doing more work than strictly required in the ordered write case. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Introduce gfs2_set_aops()Steven Whitehouse
Just like ext3 we now have three sets of address space operations to cover the cases of writeback, ordered and journalled data writes. This means that the individual operations can now become less complicated as we are able to remove some of the tests for file data mode from the code. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Add gfs2_is_writeback()Steven Whitehouse
This adds a function "gfs2_is_writeback()" along the lines of the existing "gfs2_is_jdata()" in order to clean up the code and make the various tests for the inode mode more obvious. It also fixes the PageChecked() logic where we were resetting the flag too early in the case of an error path. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Remove unused field in struct gfs2_inodeSteven Whitehouse
Removes a field that is not used. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Remove useless i_cache from inodesSteven Whitehouse
The i_cache was designed to keep references to the indirect blocks used during block mapping so that they didn't have to be looked up continually. The idea failed because there are too many places where the i_cache needs to be freed, and this has in the past been the cause of many bugs. In addition there was no performance benefit being gained since the disk blocks in question were cached anyway. So this patch removes it in order to simplify the code to prepare for other changes which would otherwise have had to add further support for this feature. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Use ->page_mkwrite() for mmap()Steven Whitehouse
This cleans up the mmap() code path for GFS2 by implementing the page_mkwrite function for GFS2. We are thus able to use the generic filemap_fault function for our ->fault() implementation. This now means that shared writable mappings will be much more efficiently shared across the cluster if there is a reasonable proportion of read activity (the greater proportion, the better). As a side effect, it also reduces the size of the code, removes special cases from readpage and readpages, and makes the code path easier to follow. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-25[GFS2] Clean up internal read functionSteven Whitehouse
As requested by Christoph, this patch cleans up GFS2's internal read function so that it no longer uses the do_generic_mapping_read function. This function is obsolete and GFS2 is the last user of it. As a side effect the internal read code gets smaller and easier to read and gfs2_readpage is split into two. One function has the locking and the other function has the rest of the logic. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com> Cc: Christoph Hellwig <hch@infradead.org>
2008-01-25[GFS2] Handle multiple glock demote requestsWendy Cheng
Fix a race condition where multiple glock demote requests are sent to a node back-to-back. This patch does a check inside handle_callback() to see whether a demote request is in progress. If true, it sets a flag to make sure run_queue() will loop again to handle the new request, instead of erronously setting gl_demote_state to a different state. Signed-off-by: S. Wendy Cheng <wcheng@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2008-01-24Linux 2.6.24Linus Torvalds
2008-01-24spi: omap2_mcspi PIO RX fixKalle Valo
Before transmission of the last word in PIO RX_ONLY mode rx+tx mode is enabled: /* prevent last RX_ONLY read from triggering * more word i/o: switch to rx+tx */ if (c == 0 && tx == NULL) mcspi_write_cs_reg(spi, OMAP2_MCSPI_CHCONF0, l); But because c is decremented after the test, c will never be zero and rx+tx will not be enabled. This breaks RX_ONLY mode PIO transfers. Fix it by decrementing c in the beginning of the various I/O loops. Signed-off-by: Kalle Valo <kalle.valo@nokia.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-24Revert "mac80211: warn when receiving frames with unaligned data"Linus Torvalds
This reverts commit 81100eb80add328c4d2a377326f15aa0e7236398 for the release, to avoid the unnecessary warning noise that is only really relevant to wireless driver developers. The warning will probably go right back in after I cut the release, but at least we won't unnecessarily worry users. Acked-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-24Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC64]: Partially revert "Constify function pointer tables."
2008-01-24Merge branch 'release' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: Revert "ACPI: Fan: Drop force_power_state acpi_device option" ACPI: EC: "DEBUG" needs to be defined earlier ACPI: EC: add leading zeros to debug messages ACPI: EC: fix dmesg spam regression ACPI: DMI blacklist to reduce console warnings on OSI(Linux) systems. ACPI: Add ThinkPad R61, ThinkPad T61 to OSI(Linux) white-list ACPI: make _OSI(Linux) console messages smarter ACPI: Delete Intel Customer Reference Board (CRB) from OSI(Linux) DMI list ACPI: on OSI(Linux), print needed DMI rather than requesting dmidecode output ACPI: create acpi_dmi_dump() DMI: create dmi_get_slot() DMI: move dmi_available declaration to linux/dmi.h ACPI: processor: Fix null pointer dereference in throttling
2008-01-24slab: partially revert list3 changesMel Gorman
Partial revert the changes made by 04231b3002ac53f8a64a7bd142fde3fa4b6808c6 to the kmem_list3 management. On a machine with a memoryless node, this BUG_ON was triggering static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid) { struct list_head *entry; struct slab *slabp; struct kmem_list3 *l3; void *obj; int x; l3 = cachep->nodelists[nodeid]; BUG_ON(!l3); Signed-off-by: Mel Gorman <mel@csn.ul.ie> Cc: Pekka Enberg <penberg@cs.helsinki.fi> Acked-by: Christoph Lameter <clameter@sgi.com> Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> Cc: Nishanth Aravamudan <nacc@us.ibm.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-24fix hugepages leak due to pagetable page sharingLarry Woodman
The shared page table code for hugetlb memory on x86 and x86_64 is causing a leak. When a user of hugepages exits using this code the system leaks some of the hugepages. ------------------------------------------------------- Part of /proc/meminfo just before database startup: HugePages_Total: 5500 HugePages_Free: 5500 HugePages_Rsvd: 0 Hugepagesize: 2048 kB Just before shutdown: HugePages_Total: 5500 HugePages_Free: 4475 HugePages_Rsvd: 0 Hugepagesize: 2048 kB After shutdown: HugePages_Total: 5500 HugePages_Free: 4988 HugePages_Rsvd: 0 Hugepagesize: 2048 kB ---------------------------------------------------------- The problem occurs durring a fork, in copy_hugetlb_page_range(). It locates the dst_pte using huge_pte_alloc(). Since huge_pte_alloc() calls huge_pmd_share() it will share the pmd page if can, yet the main loop in copy_hugetlb_page_range() does a get_page() on every hugepage. This is a violation of the shared hugepmd pagetable protocol and creates additional referenced to the hugepages causing a leak when the unmap of the VMA occurs. We can skip the entire replication of the ptes when the hugepage pagetables are shared. The attached patch skips copying the ptes and the get_page() calls if the hugetlbpage pagetable is shared. [akpm@linux-foundation.org: coding-style cleanups] Signed-off-by: Larry Woodman <lwoodman@redhat.com> Signed-off-by: Adam Litke <agl@us.ibm.com> Cc: Badari Pulavarty <pbadari@us.ibm.com> Cc: Ken Chen <kenchen@google.com> Cc: David Gibson <david@gibson.dropbear.id.au> Cc: William Lee Irwin III <wli@holomorphy.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-24sysctl: kill binary sysctl KERN_PPC_L2CREric W. Biederman
: Stefan Roese <sr@denx.de> said: > ppc: 4xx: sysctl table check failed: /kernel/l2cr .1.31 Missing strategy > > I'm seeing this error message when booting an recent arch/ppc kernel on > 4xx platforms (tested on Ocotea and other 4xx platforms). Booting NFS > rootfs still works fine, but this message kind of makes me "nervous". > This is not seen on 4xx arch/powerpc platforms. Here the bootlog: Because the data field was never filled and a binary sysctl handler was never written this sysctl has never been usable through the sys_sysctl interface. So just remove the binary sysctl number. Making the kernel sanity checks happy. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Reported-by: Stefan Roese <sr@denx.de> Cc: Josh Boyer <jwboyer@gmail.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-24lockdep: fix kernel crash on module unloadArjan van de Ven
Michael Wu noticed in his lkml post at http://marc.info/?l=linux-kernel&m=119396182726091&w=2 that certain wireless drivers ended up having their name in module memory, which would then crash the kernel on module unload. The patch he proposed was a bit clumsy in that it increased the size of a lockdep entry significantly; the patch below tries another approach, it checks, on module teardown, if the name of a class is in module space and then zaps the class. This is very similar to what we already do with keys that are in module space. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-23[SPARC64]: Partially revert "Constify function pointer tables."David S. Miller
This partially reverts 872e2be7c4056496c2871bd9b0f2fae6c374fe47 (Constify function pointer tables.) The solaris/socksys.c transformation wasn't valid: arch/sparc64/solaris/socksys.c:192: error: assignment of read-only variable ‘socksys_file_ops’ arch/sparc64/solaris/socksys.c:195: error: assignment of read-only variable ‘socksys_file_ops’ arch/sparc64/solaris/socksys.c:196: error: assignment of read-only variable ‘socksys_file_ops’ Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-23Pull dmi-2.6.24 into release branchLen Brown
2008-01-23Pull bugzilla-9798 into release branchLen Brown
2008-01-23Pull bugzilla-8459 into release branchLen Brown
2008-01-23Pull bugzilla-9747 into release branchLen Brown
2008-01-23Revert "ACPI: Fan: Drop force_power_state acpi_device option"Len Brown
This reverts commit 93ad7c07ad487b036add8760dabcc35666a550ef. http://bugzilla.kernel.org/show_bug.cgi?id=9798 Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23ACPI: EC: "DEBUG" needs to be defined earlierMárton Németh
The "DEBUG" symbol needs to be defined before #including <linux/kernel.h> to get the pr_debug() working. Signed-off-by: Márton Németh <nm127@freemail.hu> Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23ACPI: EC: add leading zeros to debug messagesMárton Németh
Add leading zeros to pr_debug() calls. For example if x=0x0a, the format "0x%2x" will result the string "0x a", the format "0x%2.2x" will result "0x0a". Signed-off-by: Márton Németh <nm127@freemail.hu> Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23ACPI: EC: fix dmesg spam regressionAlexey Starikovskiy
Return OBF_1 optimization workaround http://bugzilla.kernel.org/show_bug.cgi?id=8459 Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC]: Constify function pointer tables. [SPARC64]: Fix section error in sparcspkr [SPARC64]: Fix of section mismatch warnings.
2008-01-23Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: sis190: scheduling while atomic error sis190: mdio operation failure is not correctly detected sis190: remove duplicate INIT_WORK sis190: add cmos ram access code for the SiS19x/968 chipset pair [INET]: Fix truesize setting in ip_append_data [NETNS]: Re-export init_net via EXPORT_SYMBOL. iwlwifi: fix possible read attempt on ucode that is not available [IPV4]: Add missing skb->truesize increment in ip_append_page(). [TULIP] DMFE: Fix SROM parsing regression. [BLUETOOTH]: Move children of connection device to NULL before connection down.
2008-01-23ACPI: DMI blacklist to reduce console warnings on OSI(Linux) systems.Len Brown
This DMI blacklist reduces the console messages on systems which have a BIOS that invokes OSI(Linux). As the DMI blacklist already knows about these systems, the request for DMI info itself is disabled. Further, if OSI(Linux) has already been determined to have no beneift, we disable the console message requesting acpi_osi=Linux test results. Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23ACPI: Add ThinkPad R61, ThinkPad T61 to OSI(Linux) white-listLen Brown
acpi_osi=Linux helps sound on these systems. Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23ACPI: make _OSI(Linux) console messages smarterLen Brown
If BIOS invokes _OSI(Linux), the kernel response depends on what the ACPI DMI list knows about the system, and that is reflectd in dmesg: 1) System unknown to DMI: ACPI: BIOS _OSI(Linux) query ignored ACPI: DMI System Vendor: LENOVO ACPI: DMI Product Name: 7661W1P ACPI: DMI Product Version: ThinkPad T61 ACPI: DMI Board Name: 7661W1P ACPI: DMI BIOS Vendor: LENOVO ACPI: DMI BIOS Date: 10/18/2007 ACPI: Please send DMI info above to linux-acpi@vger.kernel.org ACPI: If "acpi_osi=Linux" works better, please notify linux-acpi@vger.kernel.org 2) System known to DMI, but effect of OSI(Linux) unknown: ACPI: DMI detected: Lenovo ThinkPad T61 ... ACPI: BIOS _OSI(Linux) query ignored via DMI ACPI: If "acpi_osi=Linux" works better, please notify linux-acpi@vger.kernel.org 3) System known to DMI, which disables _OSI(Linux): ACPI: DMI detected: Lenovo ThinkPad T61 ... ACPI: BIOS _OSI(Linux) query ignored via DMI 4) System known to DMI, which enable _OSI(Linux): ACPI: DMI detected: Lenovo ThinkPad T61 ACPI: Added _OSI(Linux) ... ACPI: BIOS _OSI(Linux) query honored via DMI cmdline overrides take precidence over the built-in default and the DMI prescribed default. cmdline "acpi_osi=Linux" results in: ACPI: BIOS _OSI(Linux) query honored via cmdline Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23ACPI: Delete Intel Customer Reference Board (CRB) from OSI(Linux) DMI listLen Brown
Linux does not want BIOS writers to invoke _OSI(Linux) - for in the field it causes more Windows incompatibility problems than it solves. So when it is seen in the BIOS for an Intel Customer Reference Board, Linux should ignore its effect by default, and should complain loudly. Otherwise, the reference BIOS will go unfixed, and the bad BIOS will spread to the field. Users of this board can get the old behavior with "acpi_osi=Linux" As this was the only entry, delete acpi_osl_dmi_table[]. Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23ACPI: on OSI(Linux), print needed DMI rather than requesting dmidecode outputLen Brown
Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23ACPI: create acpi_dmi_dump()Len Brown
A utility routine to print common entries used for ACPI-related DMI blacklist entries. Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23DMI: create dmi_get_slot()Len Brown
This simply allows other sub-systems (such as ACPI) to access and print out slots in static dmi_ident[]. Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23DMI: move dmi_available declaration to linux/dmi.hLen Brown
Signed-off-by: Len Brown <len.brown@intel.com>
2008-01-23Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: [SCSI] initio: fix module hangs on loading
2008-01-23drm/i915: add support for E7221 chipsetCarlos Martín
E7221 chipset is a server version of the i915. Signed-off-by: Dave Airlie <airlied@linux.ie> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-23agp/intel: add support for E7221 chipsetCarlos Martín
The E7221 chipset is a 915 rebadged for the Intel server line. Signed-off-by: Dave Airlie <airlied@linux.ie> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-23xen: disable vcpu_info placement for nowJeremy Fitzhardinge
There have been several reports of Xen guest domains locking up when using vcpu_info structure placement. Disable it for now. Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-23[SCSI] initio: fix module hangs on loadingStuart Swales
I've verified (on my Initio 9100 with a DAT drive) that the 2.6.24-rc8-git6 initio module still hangs on loading. These fixes (other than the printk) are needed to get the module to load ok (and work correctly) with my adapter & tape drive. a) printk cosmetic fix b) cblk->sglen needs setting for later DMA I/O routines to use c) host->bios_addr needs setting for debug output correctness d) semaph & semaph_lock initialisation had got lost since 2.6.22 e) since 2.6.22 the bios data address was truncated to 16 bits (needs 20 when shifted left) Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2008-01-23Update ctime and mtime for memory-mapped filesAnton Salikhmetov
Update ctime and mtime for memory-mapped files at a write access on a present, read-only PTE, as well as at a write on a non-present PTE. Signed-off-by: Anton Salikhmetov <salikhmetov@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-23sis190: scheduling while atomic errorFrancois Romieu
sis190_tx_timeout -> sis190_hw_start -> sis190_soft_reset -> msleep *splat* PCI transactions are correctly flushed here. The msleep() is probably useless. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Cc: K.M. Liu <kmliu@sis.com.tw>