aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-07-31pnfsblock: bl_find_get_extentFred Isaman2-0/+50
Implement bl_find_get_extent(), one of the core extent manipulation routines. [pnfsblock: Lookup list entry of layouts and tags in reverse order] Signed-off-by: Zhang Jingwang <[email protected]> Signed-off-by: Fred Isaman <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> pnfsblock: fix print format warnings for sector_t and size_t gcc spews warnings about these on x86_64, e.g.: fs/nfs/blocklayout/blocklayout.c:74: warning: format ‘%Lu’ expects type ‘long long unsigned int’, but argument 2 has type ‘sector_t’ fs/nfs/blocklayout/blocklayout.c:388: warning: format ‘%d’ expects type ‘int’, but argument 5 has type ‘size_t’ Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfsblock: xdr decode pnfs_block_layout4Fred Isaman1-2/+206
XDR decodes the block layout payload sent in LAYOUTGET result, storing the result in an extent list. [pnfsblock: get rid of deprecated xdr macros] Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Fred Isaman <[email protected]> [pnfsblock: fix bug getting pnfs_layout_type in translate_devid().] Signed-off-by: Tao Guo <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfsblock: call and parse getdevicelistFred Isaman5-8/+158
Call GETDEVICELIST during mount, then call and parse GETDEVICEINFO for each device returned. [pnfsblock: get rid of deprecated xdr macros] Signed-off-by: Jim Rees <[email protected]> [pnfsblock: fix pnfs_deviceid references] Signed-off-by: Fred Isaman <[email protected]> [pnfsblock: fix print format warnings for sector_t and size_t] [pnfs-block: #include <linux/vmalloc.h>] [pnfsblock: no PNFS_NFS_SERVER] Signed-off-by: Benny Halevy <[email protected]> [pnfsblock: fix bug determining size of striped volume] [pnfsblock: fix oops when using multiple devices] Signed-off-by: Fred Isaman <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> [pnfsblock: get rid of vmap and deviceid->area structure] Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfsblock: merge extentsFred Isaman2-0/+119
Replace a stub, so that extents underlying the layouts are properly added, merged, or ignored as necessary. Signed-off-by: Fred Isaman <[email protected]> [pnfsblock: delete the new node before put it] Signed-off-by: Mingyang Guo <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfsblock: lseg alloc and freeFred Isaman3-6/+39
Signed-off-by: Fred Isaman <[email protected]> [pnfsblock: fix bug getting pnfs_layout_type in translate_devid().] Signed-off-by: Tao Guo <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Zhang Jingwang <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfsblock: remove device operationsJim Rees3-1/+115
Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Fred Isaman <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> [upcall bugfixes] Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfsblock: add device operationsJim Rees6-2/+277
Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Fred Isaman <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> [upcall bugfixes] Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfsblock: basic extent codeFred Isaman4-5/+107
Adds structures and basic create/delete code for extents. Signed-off-by: Fred Isaman <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Zhang Jingwang <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfsblock: use pageio_ops apiBenny Halevy1-0/+14
[pnfsblock: use pnfs_generic_pg_init_read/write] Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfsblock: add blocklayout Kconfig option, Makefile, and stubsFred Isaman5-1/+278
Define a configuration variable to enable/disable compilation of the block driver code. Add the minimal structure for a pnfs block layout driver, and empty list-heads that will hold the extent data [pnfsblock: make NFS_V4_1 select PNFS_BLOCK] Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Fred Isaman <[email protected]> Signed-off-by: Benny Halevy <[email protected]> [pnfs-block: fix CONFIG_PNFS_BLOCK dependencies] Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> [pnfsblock: SQUASHME: adjust to API change] Signed-off-by: Fred Isaman <[email protected]> [pnfs: move pnfs_layout_type inline in nfs_inode] Signed-off-by: Benny Halevy <[email protected]> [blocklayout: encode_layoutcommit implementation] Signed-off-by: Boaz Harrosh <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> [pnfsblock: layout alloc and free] Signed-off-by: Fred Isaman <[email protected]> [pnfs: move pnfs_layout_type inline in nfs_inode] Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> [pnfsblock: define module alias] Signed-off-by: Peng Tao <[email protected]> [rm inode and pnfs_layout_hdr args from cleanup_layoutcommit()] Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfs: cleanup_layoutcommitAndy Adamson5-0/+14
This gives layout driver a chance to cleanup structures they put in at encode_layoutcommit. Signed-off-by: Andy Adamson <[email protected]> [fixup layout header pointer for layoutcommit] Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> [rm inode and pnfs_layout_hdr args from cleanup_layoutcommit()] Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfs: ask for layout_blksize and save it in nfs_serverFred Isaman6-22/+91
Block layout needs it to determine IO size. Signed-off-by: Fred Isaman <[email protected]> Signed-off-by: Tao Guo <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfs: add set-clear layoutdriver interfaceBenny Halevy3-7/+24
To allow layout driver to issue getdevicelist at mount time, and clean up at umount time. [fixup non NFS_V4_1 set_pnfs_layoutdriver definition] [pnfs: pass mntfh down the init_pnfs path] Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfs: GETDEVICELISTAndy Adamson5-0/+203
The block driver uses GETDEVICELIST Signed-off-by: Andy Adamson <[email protected]> [pass struct nfs_server * to getdevicelist] [get machince creds for getdevicelist] [fix getdevicelist decode sizing] Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Benny Halevy <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfs: use lwb as layoutcommit lengthPeng Tao1-1/+1
Using NFS4_MAX_UINT64 will break current protocol. [Needed in v3.0] CC: Stable Tree <[email protected]> Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfs: let layoutcommit handle a list of lsegPeng Tao4-18/+26
There can be multiple lseg per file, so layoutcommit should be able to handle it. [Needed in v3.0] CC: Stable Tree <[email protected]> Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Boaz Harrosh <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfs: save layoutcommit cred at layout header initPeng Tao2-11/+12
No need to save it for every lseg. No need to save it at every pnfs_set_layoutcommit. [Needed in v3.0] CC: Stable Tree <[email protected]> Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Boaz Harrosh <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31pnfs: save layoutcommit lwb at layout headerPeng Tao3-6/+8
No need to save it for every lseg. [Needed in v3.0] CC: Stable Tree <[email protected]> Signed-off-by: Peng Tao <[email protected]> Signed-off-by: Jim Rees <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-31slab: use NUMA_NO_NODEAndrew Morton1-1/+1
Use the nice enumerated constant. Cc: KOSAKI Motohiro <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Pekka Enberg <[email protected]>
2011-07-31don't busy retry the inode on failed grab_super_passive()Wu Fengguang1-1/+6
This fixes a soft lockup on conditions a) the flusher is working on a work by __bdi_start_writeback(), while b) someone else calls writeback_inodes_sb*() or sync_inodes_sb(), which grab sb->s_umount and enqueue a new work for the flusher to execute The s_umount grabbed by (b) will fail the grab_super_passive() in (a). Then if the inode is requeued, wb_writeback() will busy retry on it. As a result, wb_writeback() loops for ever without releasing wb->list_lock, which further blocks other tasks. Fix the busy loop by redirtying the inode. This may undesirably delay the writeback of the inode, however most likely it will be picked up soon by the queued work by writeback_inodes_sb*(), sync_inodes_sb() or even writeback_inodes_wb(). bug url: http://www.spinics.net/lists/linux-fsdevel/msg47292.html Reported-by: Christoph Hellwig <[email protected]> Tested-by: Christoph Hellwig <[email protected]> Signed-off-by: Wu Fengguang <[email protected]>
2011-07-30Merge branch 'for-linus' of ↵Linus Torvalds1-1/+2
git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: sungem: fix compile failure caused by trivial #include consolidation
2011-07-30m68k/math-emu: Remove unnecessary codeGreg Dietsche1-3/+0
Remove unnecessary code that matches this coccinelle pattern if (...) return ret; return ret; Signed-off-by: Greg Dietsche <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30m68k/math-emu: Remove commented out old codeGeert Uytterhoeven1-530/+0
It's been unused for ages, and contains bugs (e.g. incorrect shifts in lsl64()). Reported-by: Jonathan Elchison <[email protected]> Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30m68k: Kill warning in setup_arch() when compiling for Sun3Geert Uytterhoeven1-0/+2
arch/m68k/kernel/setup_mm.c: In function ‘setup_arch’: arch/m68k/kernel/setup_mm.c:219: warning: unused variable ‘i’ Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30m68k/atari: Prefix GPIO_{IN,OUT} with CODEC_Geert Uytterhoeven1-2/+2
These defines are way to generic, and cause conflicts: drivers/net/wireless/rtlwifi/rtl8192c/../rtl8192ce/reg.h:369:1: warning: "GPIO_IN" redefined drivers/net/wireless/rtlwifi/rtl8192c/../rtl8192ce/reg.h:370:1: warning: "GPIO_OUT" redefined drivers/net/wireless/rtlwifi/rtl8192se/reg.h:252:1: warning: "GPIO_IN" redefined drivers/net/wireless/rtlwifi/rtl8192se/reg.h:253:1: warning: "GPIO_OUT" redefined Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30sparc: iounmap() and *_free_coherent() - Use lookup_resource()Geert Uytterhoeven1-25/+7
Replace a custom implementation (which doesn't lock the resource tree) by a call to lookup_resource() Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: David S. Miller <[email protected]>
2011-07-30m68k/atari: Reserve some ST-RAM early on for device buffer useMichael Schmitz4-298/+70
Based on an original patch from Michael Schmitz: Because mem_init() is now called before device init, devices that rely on ST-RAM may find all ST-RAM already allocated to other users by the time device init happens. In particular, a large initrd RAM disk may use up enough of ST-RAM to cause atari_stram_alloc() to resort to __get_dma_pages() allocation. In the current state of Atari memory management, all of RAM is marked DMA capable, so __get_dma_pages() may well return RAM that is not in actual fact DMA capable. Using this for frame buffer or SCSI DMA buffer causes subtle failure. The ST-RAM allocator has been changed to allocate memory from a pool of reserved ST-RAM of configurable size, set aside on ST-RAM init (i.e. before mem_init()). As long as this pool is not exhausted, allocation of real ST-RAM can be guaranteed. Other changes: - Replace the custom allocator in the ST-RAM pool by the existing allocator in the resource subsystem, - Remove mem_init_done and its hook, as memory init is now done before device init, - Remove /proc/stram, as ST-RAM usage now shows up under /proc/iomem, e.g. 005f2000-006f1fff : ST-RAM Pool 005f2000-0063dfff : atafb 0063e000-00641fff : ataflop 00642000-00642fff : SCSI Signed-off-by: Michael Schmitz <[email protected]> [Andreas Schwab <[email protected]>: Use memparse()] [Geert: Use the resource subsystem instead of a custom allocator] Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30m68k/amiga: Chip RAM - Use lookup_resource()Geert Uytterhoeven1-11/+11
Replace a custom implementation (which doesn't lock the resource tree) by a call to lookup_resource() Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30resources: Add lookup_resource()Geert Uytterhoeven2-0/+22
Add a function to find an existing resource by a resource start address. This allows to implement simple allocators (with a malloc/free-alike API) on top of the resource system. Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30sparc: _sparc_find_resource() should check for exact matchesGeert Uytterhoeven1-2/+2
The address that's passed to _sparc_find_resource() should always be the start address of a resource: - iounmap() passes a page-aligned virtual address, while the original address was created by adding the in-page offset to the resource's start address, - sbus_free_coherent() and pci32_free_coherent() should be passed an address obtained from sbus_alloc_coherent() resp. pci32_alloc_coherent(), which is always a resource's start address. Hence replace the range check by a check for an exact match. Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: David S. Miller <[email protected]>
2011-07-30m68k/amiga: Chip RAM - Offset resource end by CHIP_PHYSADDRGeert Uytterhoeven1-1/+1
Technically, the end of Chip RAM should be offset by CHIP_PHYSADDR (which is zero). Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30m68k/amiga: Chip RAM - Use resource_size() to fix off-by-one errorGeert Uytterhoeven1-1/+1
Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30m68k/amiga: Chip RAM - Change chipavail to an atomic_tGeert Uytterhoeven1-6/+9
While the core resource handling code is safe, our global counter must still be protected against concurrent modifications. Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30m68k/amiga: Chip RAM - Always allocate from the start of memoryGeert Uytterhoeven1-20/+15
As of commit 5df1abdbd37af2ae317a1c5b5944173284dc55d6 ('m68k/amiga: Fix "debug=mem"'), "debug=mem" no longer uses amiga_chip_alloc_res(), so we can remove the hack to prefer memory at the safe end. This allows to simplify the code and make amiga_chip_alloc() just call amiga_chip_alloc_res() internally. Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30m68k/amiga: Chip RAM - Convert from printk() to pr_*()Geert Uytterhoeven1-20/+8
and fix a few formattings: - resource sizes are now resource_size_t, use %pR to make it future proof, - use %lu for unsigned long. Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30m68k/amiga: Chip RAM - Use tabs for indentationGeert Uytterhoeven1-57/+61
Signed-off-by: Geert Uytterhoeven <[email protected]>
2011-07-30Merge branch 'hwmon-for-linus' of ↵Linus Torvalds34-284/+3229
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging: (24 commits) hwmon: (lm90) Refactor reading of config2 register hwmon: (lm90) Make SA56004 detection more robust hwmon: (lm90) Simplify handling of extended local temp register hwmon: (pmbus) Add client driver for LM25066, LM5064, and LM5066 hwmon: (max34440) Add support for peak attributes hwmon: (max8688) Add support for peak attributes hwmon: (max16064) Add support for peak attributes hwmon: (adm1275) Add support for peak attributes hwmon: (pmbus) Add support for peak attributes hwmon: Add new attributes to sysfs ABI hwmon: (pmbus) Strengthen check for status register existence hwmon: (pmbus) Add support for virtual pages hwmon: (pmbus) Support reading and writing of word registers in device specific code hwmon: (pmbus) Increase attribute name size hwmon: (pmbus) Add ADP4000, NCP4200 and NCP4208 to list of supported devices hwmon: (pmbus) Add support for VID output voltage mode hwmon: (pmbus) Move PMBus drivers to drivers/hwmon/pmbus hwmon: (coretemp) Add core/pkg threshold support to Coretemp hwmon: (lm95241) Add support for LM95231 hwmon: LM95245 driver ...
2011-07-30shm: optimize locking and ipc_namespace gettingVasiliy Kulikov1-33/+28
shm_lock() does a lookup of shm segment in shm_ids(ns).ipcs_idr, which is redundant as we already know shmid_kernel address. An actual lock is also not required for reads until we really want to destroy the segment. exit_shm() and shm_destroy_orphaned() may avoid the loop by checking whether there is at least one segment in current ipc_namespace. The check of nsproxy and ipc_ns against NULL is redundant as exit_shm() is called from do_exit() before the call to exit_notify(), so the dereferencing current->nsproxy->ipc_ns is guaranteed to be safe. Reported-by: Oleg Nesterov <[email protected]> Signed-off-by: Vasiliy Kulikov <[email protected]> Acked-by: Serge Hallyn <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-07-30shm: handle separate PID namespaces caseVasiliy Kulikov2-7/+23
shm_try_destroy_orphaned() and shm_try_destroy_current() didn't handle the case of separate PID namespaces, but a single IPC namespace. If there are tasks with the same PID values using the same shmem object, the wrong destroy decision could be reached. On shm segment creation store the pointer to the creator task in shmid_kernel->shm_creator field and zero it on task exit. Then use the ->shm_creator insread of shm_cprid in both functions. As shmid_kernel object is already locked at this stage, no additional locking is needed. Signed-off-by: Vasiliy Kulikov <[email protected]> Acked-by: Serge Hallyn <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-07-30Additional readdir cookie loop informationBryan Schumaker1-1/+2
Print out the name of the file that triggers the cookie loop message to make it slightly easier to track down the cause. Signed-off-by: Bryan Schumaker <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2011-07-30Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6Linus Torvalds93-4489/+11879
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (71 commits) [SCSI] fcoe: cleanup cpu selection for incoming requests [SCSI] fcoe: add fip retry to avoid missing critical keep alive [SCSI] libfc: fix warn on in lport retry [SCSI] libfc: Remove the reference to FCP packet from scsi_cmnd in case of error [SCSI] libfc: cleanup sending SRR request [SCSI] libfc: two minor changes in comments [SCSI] libfc, fcoe: ignore rx frame with wrong xid info [SCSI] libfc: release exchg cache [SCSI] libfc: use FC_MAX_ERROR_CNT [SCSI] fcoe: remove unused ptype field in fcoe_rcv_info [SCSI] bnx2fc: Update copyright and bump version to 1.0.4 [SCSI] bnx2fc: Tx BDs cache in write tasks [SCSI] bnx2fc: Do not arm CQ when there are no CQEs [SCSI] bnx2fc: hold tgt lock when calling cmd_release [SCSI] bnx2fc: Enable support for sequence level error recovery [SCSI] bnx2fc: HSI changes for tape [SCSI] bnx2fc: Handle REC_TOV error code from firmware [SCSI] bnx2fc: REC/SRR link service request and response handling [SCSI] bnx2fc: Support 'sequence cleanup' task [SCSI] dh_rdac: Associate HBA and storage in rdac_controller to support partitions in storage ...
2011-07-30NFS: Fix spurious readdir cookie loop messagesTrond Myklebust2-24/+35
If the directory contents change, then we have to accept that the file->f_pos value may shrink if we do a 'search-by-cookie'. In that case, we should turn off the loop detection and let the NFS client try to recover. The patch also fixes a second loop detection bug by ensuring that after turning on the ctx->duped flag, we read at least one new cookie into ctx->dir_cookie before attempting to match with ctx->dup_cookie. Reported-by: Petr Vandrovec <[email protected]> Cc: [email protected] [2.6.39+] Signed-off-by: Trond Myklebust <[email protected]>
2011-07-30Merge branch 'slub/lockless' of ↵Linus Torvalds5-304/+616
git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 * 'slub/lockless' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6: (21 commits) slub: When allocating a new slab also prep the first object slub: disable interrupts in cmpxchg_double_slab when falling back to pagelock Avoid duplicate _count variables in page_struct Revert "SLUB: Fix build breakage in linux/mm_types.h" SLUB: Fix build breakage in linux/mm_types.h slub: slabinfo update for cmpxchg handling slub: Not necessary to check for empty slab on load_freelist slub: fast release on full slab slub: Add statistics for the case that the current slab does not match the node slub: Get rid of the another_slab label slub: Avoid disabling interrupts in free slowpath slub: Disable interrupts in free_debug processing slub: Invert locking and avoid slab lock slub: Rework allocator fastpaths slub: Pass kmem_cache struct to lock and freeze slab slub: explicit list_lock taking slub: Add cmpxchg_double_slab() mm: Rearrange struct page slub: Move page->frozen handling near where the page->freelist handling occurs slub: Do not use frozen page flag but a bit in the page counters ...
2011-07-30ext4: add missing kfree() on error return path in add_new_gdb()Dan Carpenter1-0/+1
We added some more error handling in b40971426a "ext4: add error checking to calls to ext4_handle_dirty_metadata()". But we need to call kfree() as well to avoid a memory leak. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: "Theodore Ts'o" <[email protected]>
2011-07-30ext4: change umode_t in tracepoint headers to be an explicit __u16Theodore Ts'o1-8/+8
As requested by Al Viro, since umode_t may be changing to a u32 for some architectures. Signed-off-by: "Theodore Ts'o" <[email protected]> Cc: Al Viro <[email protected]>
2011-07-30ext4: fix races in ext4_sync_parent()Theodore Ts'o1-5/+21
Fix problems if fsync() races against a rename of a parent directory as pointed out by Al Viro in his own inimitable way: >While we are at it, could somebody please explain what the hell is ext4 >doing in >static int ext4_sync_parent(struct inode *inode) >{ > struct writeback_control wbc; > struct dentry *dentry = NULL; > int ret = 0; > > while (inode && ext4_test_inode_state(inode, EXT4_STATE_NEWENTRY)) { > ext4_clear_inode_state(inode, EXT4_STATE_NEWENTRY); > dentry = list_entry(inode->i_dentry.next, > struct dentry, d_alias); > if (!dentry || !dentry->d_parent || !dentry->d_parent->d_inode) > break; > inode = dentry->d_parent->d_inode; > ret = sync_mapping_buffers(inode->i_mapping); > ... >Note that dentry obviously can't be NULL there. dentry->d_parent is never >NULL. And dentry->d_parent would better not be negative, for crying out >loud! What's worse, there's no guarantees that dentry->d_parent will >remain our parent over that sync_mapping_buffers() *and* that inode won't >just be freed under us (after rename() and memory pressure leading to >eviction of what used to be our dentry->d_parent)...... Reported-by: Al Viro <[email protected]> Signed-off-by: "Theodore Ts'o" <[email protected]>
2011-07-30Merge branch 'kconfig' of ↵Linus Torvalds23-260/+356
git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: (25 commits) kconfig: Introduce IS_ENABLED(), IS_BUILTIN() and IS_MODULE() xconfig: Abort close if configuration cannot be saved kconfig: fix missing "0x" prefix from S_HEX symbol in autoconf.h kconfig/nconf: remove useless conditionnal kconfig/nconf: prevent segfault on empty menu kconfig/nconf: use the generic menu_get_ext_help() nconfig: Avoid Wunused-but-set warning kconfig/conf: mark xfgets() private kconfig: remove pending prototypes for kconfig_load() kconfig/conf: add command line options' description kconfig/conf: reduce the scope of `defconfig_file' kconfig: use calloc() for expr allocation kconfig: introduce specialized printer kconfig: do not overwrite symbol direct dependency in assignment kconfig/gconf: silent missing prototype warnings kconfig/gconf: kill deadcode kconfig: nuke LKC_DIRECT_LINK cruft kconfig: nuke reference to SWIG kconfig: add missing <stdlib.h> inclusion kconfig: add missing <ctype.h> inclusion ... Fix up conflicts in scripts/kconfig/Makefile
2011-07-30Merge branch 'v4l_for_linus' of ↵Linus Torvalds565-14903/+52933
git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (430 commits) [media] ir-mce_kbd-decoder: include module.h for its facilities [media] ov5642: include module.h for its facilities [media] em28xx: Fix DVB-C maxsize for em2884 [media] tda18271c2dd: Fix saw filter configuration for DVB-C @6MHz [media] v4l: mt9v032: Fix Bayer pattern [media] V4L: mt9m111: rewrite set_pixfmt [media] V4L: mt9m111: fix missing return value check mt9m111_reg_clear [media] V4L: initial driver for ov5642 CMOS sensor [media] V4L: sh_mobile_ceu_camera: fix Oops when USERPTR mapping fails [media] V4L: soc-camera: remove soc-camera bus and devices on it [media] V4L: soc-camera: un-export the soc-camera bus [media] V4L: sh_mobile_csi2: switch away from using the soc-camera bus notifier [media] V4L: add media bus configuration subdev operations [media] V4L: soc-camera: group struct field initialisations together [media] V4L: soc-camera: remove now unused soc-camera specific PM hooks [media] V4L: pxa-camera: switch to using standard PM hooks [media] NetUP Dual DVB-T/C CI RF: force card hardware revision by module param [media] Don't OOPS if videobuf_dvb_get_frontend return NULL [media] NetUP Dual DVB-T/C CI RF: load firmware according card revision [media] omap3isp: Support configurable HS/VS polarities ... Fix up conflicts: - arch/arm/mach-omap2/board-rx51-peripherals.c: cleanup regulator supply definitions in mach-omap2 vs OMAP3: RX-51: define vdds_csib regulator supply - drivers/staging/tm6000/tm6000-alsa.c (trivial)
2011-07-29Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfsLinus Torvalds1-1/+4
* 'for-linus' of git://oss.sgi.com/xfs/xfs: xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set
2011-07-29Merge branch 'next' of ↵Linus Torvalds2-22/+26
git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6 * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6: ecryptfs: Make inode bdi consistent with superblock bdi eCryptfs: Unlock keys needed by ecryptfsd