summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2009-09-22ocfs2: Add normal functions for reflink a normal file's extents.Tao Ma
2 major functions are added in this patch. ocfs2_attach_refcount_tree will create a new refcount tree to the old file if it doesn't have one and insert all the extent records to the tree if they are not refcounted. ocfs2_create_reflink_node will: 1. set the refcount tree to the new file. 2. call ocfs2_duplicate_extent_list which will iterate all the extents for the old file, insert it to the new file and increase the corresponding referennce count. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: CoW a reflinked cluster when it is truncated.Tao Ma
When we truncate a file to a specific size which resides in a reflinked cluster, we need to CoW it since ocfs2_zero_range_for_truncate will zero the space after the size(just another type of write). So we add a "max_cpos" in ocfs2_refcount_cow so that it will stop when it hit the max cluster offset. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Integrate CoW in file write.Tao Ma
When we use mmap, we CoW the refcountd clusters in ocfs2_write_begin_nolock. While for normal file io(including directio), we do CoW in ocfs2_prepare_inode_for_write. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: CoW refcount tree improvement.Tao Ma
During CoW, if the old extent record is refcounted, we allocate som new clusters and do CoW. Actually we can have some improvement here. If the old extent has refcount=1, that means now it is only used by this file. So we don't need to allocate new clusters, just remove the refcounted flag and it is OK. We also have to remove it from the refcount tree while not deleting it. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add CoW support.Tao Ma
This patch try CoW support for a refcounted record. the whole process will be: 1. Calculate how many clusters we need to CoW and where we start. Extents that are not completely encompassed by the write will be broken on 1MB boundaries. 2. Do CoW for the clusters with the help of page cache. 3. Change the b-tree structure with the new allocated clusters. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Decrement refcount when truncating refcounted extents.Tao Ma
Add 'Decrement refcount for delete' in to the normal truncate process. So for a refcounted extent record, call refcount rec decrementation instead of cluster free. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add functions for extents refcounted.Tao Ma
Add function ocfs2_mark_extent_refcounted which can mark an extent refcounted. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add support of decrementing refcount for delete.Tao Ma
Given a physical cpos and length, decrement the refcount in the tree. If the refcount for any portion of the extent goes to zero, that portion is queued for freeing. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add support for incrementing refcount in the tree.Tao Ma
Given a physical cpos and length, increment the refcount in the tree. If the extent has not been seen before, a refcount record is created for it. Refcount records may be merged or split by this operation. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: move tree path functions to alloc.h.Tao Ma
Now fs/ocfs2/alloc.c has more than 7000 lines. It contains our basic b-tree operation. Although we have already make our b-tree operation generic, the basic structrue ocfs2_path which is used to iterate one b-tree branch is still static and limited to only used in alloc.c. As refcount tree need them and I don't want to add any more b-tree unrelated code to alloc.c, export them out. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add refcount b-tree as a new extent tree.Tao Ma
Add refcount b-tree as a new extent tree so that it can use the b-tree to store and maniuplate ocfs2_refcount_rec. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Abstract extent split process.Tao Ma
ocfs2_mark_extent_written actually does the following things: 1. check the parameters. 2. initialize the left_path and split_rec. 3. call __ocfs2_mark_extent_written. it will do: 1) check the flags of unwritten 2) do the real split work. The whole process is packed tightly somehow. So this patch will abstract 2 different functions so that future b-tree operation can work with it. 1. __ocfs2_split_extent will accept path and split_rec and do the real split work. 2. ocfs2_change_extent_flag will accept a new flag and initialize path and split_rec. So now ocfs2_mark_extent_written will do: 1. check the parameters. 2. call ocfs2_change_extent_flag. 1) initalize the left_path and split_rec. 2) check whether the new flags conflict with the old one. 3) call __ocfs2_split_extent to do the split. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Wrap ocfs2_extent_contig in ocfs2_extent_tree.Tao Ma
Add a new operation eo_ocfs2_extent_contig int the extent tree's operations vector. So that with the new refcount tree, We want this so that refcount trees can always return CONTIG_NONE and prevent extent merging. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Basic tree root operation.Tao Ma
Add basic refcount tree root operation. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add refcount tree lock mechanism.Tao Ma
Implement locking around struct ocfs2_refcount_tree. This protects all read/write operations on refcount trees. ocfs2_refcount_tree has its own lock and its own caching_info, protecting buffers among multiple nodes. User must call ocfs2_lock_refcount_tree before his operation on the tree and unlock it after that. ocfs2_refcount_trees are referenced by the block number of the refcount tree root block, So we create an rb-tree on the ocfs2_super to look them up. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add caching info for refcount tree.Tao Ma
refcount tree should use its own caching info so that when we downconvert the refcount tree lock, we can drop all the cached buffer head. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add new refcount tree lock resource in dlmglue.Tao Ma
refcount tree lock resource is used to protect refcount tree read/write among multiple nodes. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Abstract caching info checkpoint.Tao Ma
In meta downconvert, we need to checkpoint the metadata in an inode. For refcount tree, we also need it. So abstract the process out. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add ocfs2_read_refcount_block.Tao Ma
Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Add metaecc for ocfs2_refcount_block.Tao Ma
Add metaecc and journal trigger for ocfs2_refcount_block. Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22ocfs2: Define refcount tree structure.Tao Ma
Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22x86: syscall_get_nr returns intRoland McGrath
Make syscall_get_nr() return int, so we always sign-extend the low 32 bits of orig_ax in checks. Signed-off-by: Roland McGrath <roland@redhat.com>
2009-09-22asm-generic: syscall_get_nr returns intRoland McGrath
Only 32 bits of system call number are meaningful, so make the specification for syscall_get_nr() be to return int, not long. Signed-off-by: Roland McGrath <roland@redhat.com>
2009-09-22drm/i915: Handle ERESTARTSYS during page faultChris Wilson
During a page fault and rebinding the buffer there exists a window for a signal to arrive during the i915_wait_request() and trigger a ERESTARTSYS. This used to be handled by returning SIGBUS and thereby killing the application. Try 'cairo-perf-trace & cairo-test-suite' and watch X go boom! The solution as suggested by H. Peter Anvin is to simply return NOPAGE and leave the higher layers to spot we did not fill the page and resubmit the page fault. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org [anholt: Mostly squash it with another commit]
2009-09-22V4L/DVB (13039): dib0700: not building CONFIG_DVB_TUNER_DIB0070 breaks ↵Mauro Carvalho Chehab
compilation As reported by Ingo Molnar: Here's another new build breakage that triggers in -tip testing: drivers/built-in.o:(.data+0xb1f40): undefined reference to `dib0070_ctrl_agc_filter' drivers/built-in.o:(.data+0xb1f80): undefined reference to `dib0070_ctrl_agc_filter' triggers due to: CONFIG_DVB_USB_DIB0700=y CONFIG_DVB_TUNER_DIB0070 is not set While working on a better approach, for now, let's just select tuner dib0070 anytime we compile dib0700. Cc: Patrick Boettcher <pboettcher@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-09-22V4L/DVB (13038): dvbdev: Remove an anoying/uneeded warningMauro Carvalho Chehab
As pointed by Marcin Slusarz <marcin.slusarz@gmail.com>, the warns happens because CONFIG_DVB_MAX_ADAPTERS depends on CONFIG_DVB_CORE, and there are valid configs where DVB_CORE is not selected. This causes such warnings, for every V4L and common drivers that may or may not be compiled with DVB support: drivers/media/dvb/dvb-core/dvbdev.h:36:2: warning: #warning invalid CONFIG_DVB_MAX_ADAPTERS value We can safely remove the warning. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-09-22V4L/DVB (13037): go7007: Revert compatibility code added at the wrong placeMauro Carvalho Chehab
Compatibility code is not allowed upstream. While this could eventually be useful by out-of-tree compilation, directly from http://linuxtv.org/hg/v4l-dvb tree, the compatibility code is at the wrong place. In a matter of fact, it is not needed at all, since compat.h already handles such things. Cc: Pete <pete@sensoray.com> Cc: Douglas Schilling Landgraf <dougsland@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-09-23drm/radeon/r600: set correct pitch for 4 byte copyAndre Maasikas
[agd5f: also fix the non-kms path] Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2009-09-23drm/radeon: consolidate family flags used in pciids.Dave Airlie
having these separate was pointless and introduced a bug when one got updated without the other. Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-09-23drm/i915: Warn before mmaping a purgeable buffer.Chris Wilson
Only allow the user to mmap buffers that have not been marked as purgeable. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23drm/i915: Track purged state.Chris Wilson
In order to correctly prevent the invalid reuse of a purged buffer, we need to track such events and warn the user before something bad happens. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23drm/i915: Remove eviction debug spamChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23drm/i915: Immediately discard any backing storage for uneeded objectsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23drm/i915: Do not mis-classify clean objects as purgeableChris Wilson
Whilst cleaning up the patches for submission, I mis-classified non-dirty objects as purgeable. This was causing the backing pages for those objects to be evicted under memory-pressure, discarding valid and unreplaceable texture data. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23drm/i915: Whitespace correction for madvChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23drm/i915: BUG_ON page refleak during unbindChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23drm/i915: Search harder for a reusable objectChris Wilson
As evict_something() is called by routines that do not repeatedly search again, try harder in the initial search to find an object that matches the request. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23drm/i915: Clean up evict from list.Chris Wilson
First the routine attempted to unlock a mutex it did not own along the error path. Secondly the routine should never be called on any list but the inactive one, since we attempt to unbind those objects, so fix the calling semantics. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23drm/i915: Add tracepointsChris Wilson
By adding tracepoint equivalents for WATCH_BUF/EXEC we are able to monitor the lifetimes of objects, requests and significant events. These events can then be probed using the tracing frameworks, such as systemtap and, in particular, perf. For example to record the stack trace for every GPU stall during a run, use $ perf record -e i915:i915_gem_request_wait_begin -c 1 -g And $ perf report to view the results. [Updated to fix compilation issues caused.] Cc: Arjan van de Ven <arjan@linux.intel.com> Cc: Ben Gamari <bgamari@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-09-23vgaarb: make client interface config invariant.Ingo Molnar
Fixes build when VGA_ARB is off. Reported-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-09-23Merge branch 'master' of ↵Anton Vorontsov
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: drivers/power/wm97xx_battery.c
2009-09-22Merge branch 'master' of git://git.infradead.org/users/dwmw2/solos-2.6David S. Miller
2009-09-22 media: video: Fix build in saa7164Ingo Molnar
-tip testing found that the x86 build (64-bit allyesconfig) fails due to: LD vmlinux.o drivers/built-in.o:(.bss+0x4b648): multiple definition of `debug' arch/x86/built-in.o:(.kprobes.text+0x88): first defined here ld: Warning: size of symbol `debug' changed from 90 in arch/x86/built-in.o to 4 in drivers/built-in.o make: *** [vmlinux.o] Error 1 This is because recent saa7164 changes introduced a global symbol named 'debug'. The x86 platform code already defines a 'debug' symbol. (which is named in a too generic way as well - but it can be used nicely to weed out too generic symbols in drivers ;-) Rename it to saa_debug. [mchehab@redhat.com: use module_param_named to preserve old name] Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-09-22fec: Add FEC support for MX25 processorFabio Estevam
Add FEC support for MX25 processor. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2009-09-22cnic: Shutdown iSCSI ring during uio_close.Michael Chan
The iSCSI ring should be shutdown during uio_close instead of uio_open for proper operations. This fixes the problem of the ring getting stuck intermittently. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2009-09-22at91_can: add driver for Atmel's CAN controller on AT91SAM9263Marc Kleine-Budde
This patch add the driver for the SoC CAN controller in Atmel's AT91SAM9263. Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Wolfgang Grandegger <wg@grandegger.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2009-09-22at91sam9263ek: activate at91 CAN controllerMarc Kleine-Budde
This patch activates the at91 CAN controller for the at91sam9263ek development board. Signed-off-by: Hans J. Koch <hjk@linutronix.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Acked-by: Wolfgang Grandegger <wg@grandegger.com> Acked-by: Andrew Victor <linux@maxim.org.za> Signed-off-by: David S. Miller <davem@davemloft.net>
2009-09-22at91sam9263: add at91_can device to generic device definitionMarc Kleine-Budde
This patch adds the device definition for the at91_can device to the generic device definiton file for the at91sam9263. Signed-off-by: Hans J. Koch <hjk@linutronix.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Acked-by: Wolfgang Grandegger <wg@grandegger.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2009-09-22smsc95xx: fix transmission where ZLP is expectedSteve Glendinning
Usbnet framework assumes USB hardware doesn't handle zero length packets, but SMSC LAN95xx requires these to be sent for correct operation. This patch fixes an easily reproducible tx lockup when sending a frame that results in exactly 512 bytes in a USB transmission (e.g. a UDP frame with 458 data bytes, due to IP headers and our USB headers). It adds an extra flag to usbnet for the hardware driver to indicate that it can handle and requires the zero length packets. This patch should not affect other usbnet users, please also consider for -stable. Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2009-09-22regulator: Add some brief design documentationMark Brown
Provide some brief documentation of some of the design decisions that are made by the regulator API. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>