26 Oct, 2010

23 commits

  • It's pointless - we *do* have busy inodes (root directory,
    for one), so that call will fail and attempt to change
    XIP flag will be ignored.

    Signed-off-by: Al Viro

    Al Viro
     
  • If we have the appropriate page already, call __block_write_begin()
    directly instead of releasing and regrabbing it inside of
    block_write_begin().

    Signed-off-by: Namhyung Kim
    Signed-off-by: Al Viro

    Namhyung Kim
     
  • Since inode->i_mode shares its bits for S_IFMT, S_ISDIR should be
    used to distinguish whether it is a dir or not.

    Signed-off-by: Namhyung Kim
    Signed-off-by: Al Viro

    Namhyung Kim
     
  • The aio batching code is using igrab to get an extra reference on the
    inode so it can safely batch. igrab will go ahead and take the global
    inode spinlock, which can be a bottleneck on large machines doing lots
    of AIO.

    In this case, igrab isn't required because we already have a reference
    on the file handle. It is safe to just bump the i_count directly
    on the inode.

    Benchmarking shows this patch brings IOP/s on tons of flash up by about
    2.5X.

    Signed-off-by: Chris Mason

    Chris Mason
     
  • Updated Documentation/filesystems/Locking to match the code.

    Signed-off-by: Christoph Hellwig

    Christoph Hellwig
     
  • bh->b_private is initialized within init_buffer(), thus the
    assignment should be redundant. Remove it.

    Signed-off-by: Namhyung Kim
    Signed-off-by: Al Viro

    Namhyung Kim
     
  • Move the EXPORTFS kconfig symbol out of the NETWORK_FILESYSTEMS block
    since it provides a library function that can be (and is) used by other
    (non-network) filesystems.

    This also eliminates a kconfig dependency warning:

    warning: (XFS_FS && BLOCK || NFSD && NETWORK_FILESYSTEMS && INET && FILE_LOCKING && BKL) selects EXPORTFS which has unmet direct dependencies (NETWORK_FILESYSTEMS)

    Signed-off-by: Randy Dunlap
    Cc: Dave Chinner
    Cc: Christoph Hellwig
    Cc: Alex Elder
    Cc: xfs-masters@oss.sgi.com
    Signed-off-by: Al Viro

    Randy Dunlap
     
  • Use sync_dirty_buffer instead of the incorrect opencoding it.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Now, rw_verify_area() checsk f_pos is negative or not. And if negative,
    returns -EINVAL.

    But, some special files as /dev/(k)mem and /proc//mem etc.. has
    negative offsets. And we can't do any access via read/write to the
    file(device).

    So introduce FMODE_UNSIGNED_OFFSET to allow negative file offsets.

    Signed-off-by: Wu Fengguang
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Al Viro
    Cc: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Al Viro

    KAMEZAWA Hiroyuki
     
  • 365b1818 ("add f_flags to struct statfs(64)") resized f_spare within
    struct statfs which caused a UML crash. There is no need to copy f_spare.

    Signed-off-by: Richard Weinberger
    Reported-by: Toralf Förster
    Tested-by: Toralf Förster
    Cc: Christoph Hellwig
    Cc: Al Viro
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Al Viro

    Richard Weinberger
     
  • Documentation: Fix trivial typo in filesystems/sharedsubtree.txt

    This typo is easy to ignore unless you have spent a great deal of time
    thinking about how to eliminate duplicate dentries in unions.

    Signed-off-by: Valerie Aurora
    Signed-off-by: Al Viro

    Valerie Aurora
     
  • The intent was to verify that bh = affs_bread_ino(...) returned a valid
    pointer. We checked "ext_bh" earlier in the function and it's valid
    here.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Al Viro

    Dan Carpenter
     
  • Andrew,

    Could you please review this patch, you probably are the right guy to
    take it, because it crosses fs and net trees.

    Note : /proc/sys/fs/file-nr is a read-only file, so this patch doesnt
    depend on previous patch (sysctl: fix min/max handling in
    __do_proc_doulongvec_minmax())

    Thanks !

    [PATCH V4] fs: allow for more than 2^31 files

    Robin Holt tried to boot a 16TB system and found af_unix was overflowing
    a 32bit value :

    We were seeing a failure which prevented boot. The kernel was incapable
    of creating either a named pipe or unix domain socket. This comes down
    to a common kernel function called unix_create1() which does:

    atomic_inc(&unix_nr_socks);
    if (atomic_read(&unix_nr_socks) > 2 * get_max_files())
    goto out;

    The function get_max_files() is a simple return of files_stat.max_files.
    files_stat.max_files is a signed integer and is computed in
    fs/file_table.c's files_init().

    n = (mempages * (PAGE_SIZE / 1024)) / 10;
    files_stat.max_files = n;

    In our case, mempages (total_ram_pages) is approx 3,758,096,384
    (0xe0000000). That leaves max_files at approximately 1,503,238,553.
    This causes 2 * get_max_files() to integer overflow.

    Fix is to let /proc/sys/fs/file-nr & /proc/sys/fs/file-max use long
    integers, and change af_unix to use an atomic_long_t instead of
    atomic_t.

    get_max_files() is changed to return an unsigned long.
    get_nr_files() is changed to return a long.

    unix_nr_socks is changed from atomic_t to atomic_long_t, while not
    strictly needed to address Robin problem.

    Before patch (on a 64bit kernel) :
    # echo 2147483648 >/proc/sys/fs/file-max
    # cat /proc/sys/fs/file-max
    -18446744071562067968

    After patch:
    # echo 2147483648 >/proc/sys/fs/file-max
    # cat /proc/sys/fs/file-max
    2147483648
    # cat /proc/sys/fs/file-nr
    704 0 2147483648

    Reported-by: Robin Holt
    Signed-off-by: Eric Dumazet
    Acked-by: David Miller
    Reviewed-by: Robin Holt
    Tested-by: Robin Holt
    Signed-off-by: Al Viro

    Eric Dumazet
     
  • Currently isofs_get_blocks() was limited to handle only 4TB files on 32-bit
    architectures because of unnecessary use of iblock variable which was signed
    long. Just remove the variable. The error messages that were using this
    variable should have rather used b_off anyway because that is the block we
    are currently mapping.

    Signed-off-by: Jan Kara
    Signed-off-by: Al Viro

    Jan Kara
     
  • __block_write_begin and block_prepare_write are identical except for slightly
    different calling conventions. Convert all callers to the __block_write_begin
    calling conventions and drop block_prepare_write.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Hugetlbfs used to need it, but after the destroy_inode and evict_inode
    changes it's not required anymore.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Add a new helper to write out the inode using the writeback code,
    that is including the correct dirty bit and list manipulation. A few
    of filesystems already opencode this, and a lot of others should be
    using it instead of using write_inode_now which also writes out the
    data.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • The caller that didn't need it is gone.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • …t/khilman/linux-davinci

    * 'davinci-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci: (50 commits)
    davinci: fix remaining board support after io_pgoffst removal
    davinci: mityomapl138: make file local data static
    arm/davinci: remove duplicated include
    davinci: Initial support for Omapl138-Hawkboard
    davinci: MityDSP-L138/MityARM-1808 read MAC address from I2C Prom
    davinci: add tnetv107x touchscreen platform device
    input: add driver for tnetv107x touchscreen controller
    davinci: add keypad config for tnetv107x evm board
    davinci: add tnetv107x keypad platform device
    input: add driver for tnetv107x on-chip keypad controller
    net: davinci_emac: cleanup unused cpdma code
    net: davinci_emac: switch to new cpdma layer
    net: davinci_emac: separate out cpdma code
    net: davinci_emac: cleanup unused mdio emac code
    omap: cleanup unused davinci mdio arch code
    davinci: cleanup mdio arch code and switch to phy_id
    net: davinci_emac: switch to new mdio
    omap: add mdio platform devices
    davinci: add mdio platform devices
    net: davinci_emac: separate out davinci mdio
    ...

    Fix up trivial conflict in drivers/input/keyboard/Kconfig (two entries
    added next to each other - one from the davinci merge, one from the
    input merge)

    Linus Torvalds
     
  • * 'for-linus' of git://git.open-osd.org/linux-open-osd:
    exofs: Remove inode->i_count manipulation in exofs_new_inode
    fs/exofs: typo fix of faild to failed
    exofs: Set i_mapping->backing_dev_info anyway
    exofs: Cleaup read path in regard with read_for_write

    Linus Torvalds
     
  • Commit b40827fa7268 ("x86-32, mm: Add an initial page table for core
    bootstrapping") added an include directive which is needless and is
    taken care of by a previous one. Remove it.

    Caught-by: Jaswinder Singh Rajput
    Signed-off-by: Borislav Petkov
    Signed-off-by: Linus Torvalds

    Borislav Petkov
     
  • exofs_new_inode() was incrementing the inode->i_count and
    decrementing it in create_done(), in a bad attempt to make sure
    the inode will still be there when the asynchronous create_done()
    finally arrives. This was very stupid because iput() was not called,
    and if it was actually needed, it would leak the inode.

    However all this is not needed, because at exofs_evict_inode()
    we already wait for create_done() by waiting for the
    object_created event. Therefore remove the superfluous ref counting
    and just Thicken the comment at exofs_evict_inode() a bit.

    While at it change places that open coded wait_obj_created()
    to call the already available wrapper.

    CC: Dave Chinner
    CC: Christoph Hellwig
    CC: Nick Piggin
    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     
  • Signed-off-by: Joe Perches
    Signed-off-by: Boaz Harrosh

    Joe Perches
     

25 Oct, 2010

17 commits

  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (48 commits)
    [S390] topology: export cpu topology via proc/sysinfo
    [S390] topology: move topology sysinfo code
    [S390] topology: clean up facility detection
    [S390] cleanup facility list handling
    [S390] enable ARCH_DMA_ADDR_T_64BIT with 64BIT
    [S390] dasd: ignore unsolicited interrupts for DIAG
    [S390] kvm: Enable z196 instruction facilities
    [S390] dasd: fix unsolicited interrupt recognition
    [S390] dasd: fix use after free in dbf
    [S390] kvm: Fix badness at include/asm/mmu_context.h:83
    [S390] cio: fix I/O cancel function
    [S390] topology: change default
    [S390] smp: use correct cpu address in print_cpu_info()
    [S390] remove ieee_instruction_pointer from thread_struct
    [S390] cleanup system call parameter setup
    [S390] correct alignment of cpuid structure
    [S390] cleanup lowcore access from external interrupts
    [S390] cleanup lowcore access from program checks
    [S390] pgtable: move pte_mkhuge() from hugetlb.h to pgtable.h
    [S390] fix SIGBUS handling
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (365 commits)
    ALSA: hda - Disable sticky PCM stream assignment for AD codecs
    ALSA: usb - Creative USB X-Fi volume knob support
    ALSA: ca0106: Use card specific dac id for mute controls.
    ALSA: ca0106: Allow different sound cards to use different SPI channel mappings.
    ALSA: ca0106: Create a nice spot for mapping channels to dacs.
    ALSA: ca0106: Move enabling of front dac out of hardcoded setup sequence.
    ALSA: ca0106: Pull out dac powering routine into separate function.
    ALSA: ca0106 - add Sound Blaster 5.1vx info.
    ASoC: tlv320dac33: Use usleep_range for delays
    ALSA: usb-audio: add Novation Launchpad support
    ALSA: hda - Add workarounds for CT-IBG controllers
    ALSA: hda - Fix wrong TLV mute bit for STAC/IDT codecs
    ASoC: tpa6130a2: Error handling for broken chip
    ASoC: max98088: Staticise m98088_eq_band
    ASoC: soc-core: Fix codec->name memory leak
    ALSA: hda - Apply ideapad quirk to Acer laptops with Cxt5066
    ALSA: hda - Add some workarounds for Creative IBG
    ALSA: hda - Fix wrong SPDIF NID assignment for CA0110
    ALSA: hda - Fix codec rename rules for ALC662-compatible codecs
    ALSA: hda - Add alc_init_jacks() call to other codecs
    ...

    Linus Torvalds
     
  • * 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb:
    uwb: Orphan the UWB and WUSB subsystems
    uwb: Remove the WLP subsystem and drivers

    Linus Torvalds
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86: (44 commits)
    eeepc-wmi: Add cpufv sysfs interface
    eeepc-wmi: add additional hotkeys
    panasonic-laptop: Simplify calls to acpi_pcc_retrieve_biosdata
    panasonic-laptop: Handle errors properly if they happen
    intel_pmic_gpio: fix off-by-one value range checking
    IBM Real-Time "SMI Free" mode driver -v7
    Add OLPC XO-1 rfkill driver
    Move hdaps driver to platform/x86
    ideapad-laptop: Fix Makefile
    intel_pmic_gpio: swap the bits and mask args for intel_scu_ipc_update_register
    ideapad: Add param: no_bt_rfkill
    ideapad: Change the driver name to ideapad-laptop
    ideapad: rewrite the sw rfkill set
    ideapad: rewrite the hw rfkill notify
    ideapad: use EC command to control camera
    ideapad: use return value of _CFG to tell if device exist or not
    ideapad: make sure we bind on the correct device
    ideapad: check VPC bit before sync rfkill hw status
    ideapad: add ACPI helpers
    dell-laptop: Add debugfs support
    ...

    Linus Torvalds
     
  • * 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6:
    mtd/m25p80: add support to parse the partitions by OF node
    of/irq: of_irq.c needs to include linux/irq.h
    of/mips: Cleanup some include directives/files.
    of/mips: Add device tree support to MIPS
    of/flattree: Eliminate need to provide early_init_dt_scan_chosen_arch
    of/device: Rework to use common platform_device_alloc() for allocating devices
    of/xsysace: Fix OF probing on little-endian systems
    of: use __be32 types for big-endian device tree data
    of/irq: remove references to NO_IRQ in drivers/of/platform.c
    of/promtree: add package-to-path support to pdt
    of/promtree: add of_pdt namespace to pdt code
    of/promtree: no longer call prom_ functions directly; use an ops structure
    of/promtree: make drivers/of/pdt.c no longer sparc-only
    sparc: break out some PROM device-tree building code out into drivers/of
    of/sparc: convert various prom_* functions to use phandle
    sparc: stop exporting openprom.h header
    powerpc, of_serial: Endianness issues setting up the serial ports
    of: MTD: Fix OF probing on little-endian systems
    of: GPIO: Fix OF probing on little-endian systems

    Linus Torvalds
     
  • Commit b0ae19811375 ("security: remove unused parameter from
    security_task_setscheduler()") broke the build of
    arch/mips/kernel/mips-mt-fpaff.c. The function arguments were
    unnecessary, not the semicolon ...

    Signed-off-by: Ralf Baechle
    Acked-by: KOSAKI Motohiro
    Acked-by: James Morris
    Signed-off-by: Linus Torvalds

    Ralf Baechle
     
  • …/ieee1394/linux1394-2.6

    * 'ieee1394-removal' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
    ieee1394: remove the old IEEE 1394 driver stack
    ieee1394: move init_ohci1394_dma to drivers/firewire/

    Fix trivial change/delete conflict: drivers/ieee1394/eth1394.c is
    getting removed, but was modified by the networking merge.

    Linus Torvalds
     
  • Replace the BKL with a mutex to protect the venus_comm structure which
    binds the mountpoint with the character device and holds the upcall
    queues.

    Signed-off-by: Yoshihisa Abe
    Signed-off-by: Jan Harkes
    Signed-off-by: Linus Torvalds

    Yoshihisa Abe
     
  • Now that shared inode state is locked using the cii->c_lock, the BKL is
    only used to protect the upcall queues used to communicate with the
    userspace cache manager. The remaining state is all local and we can
    push the lock further down into coda_upcall().

    Signed-off-by: Yoshihisa Abe
    Signed-off-by: Jan Harkes
    Signed-off-by: Linus Torvalds

    Yoshihisa Abe
     
  • We mostly need it to protect cached user permissions. The c_flags field
    is advisory, reading the wrong value is harmless and in the worst case
    we hit a slow path where we have to make an extra upcall to the
    userspace cache manager when revalidating a dentry or inode.

    Signed-off-by: Yoshihisa Abe
    Signed-off-by: Jan Harkes
    Signed-off-by: Linus Torvalds

    Yoshihisa Abe
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (75 commits)
    Input: wacom - specify Cinitq supported tools
    Input: ab8500-ponkey - fix IRQ freeing in error path
    Input: adp5588-keys - use more obvious i2c_device_id name string
    Input: ad7877 - switch to using threaded IRQ
    Input: ad7877 - use attribute group to control visibility of attributes
    Input: serio - add support for PS2Mult multiplexer protocol
    Input: wacom - properly enable runtime PM
    Input: ad7877 - filter events where pressure is beyond the maximum
    Input: ad7877 - implement EV_KEY:BTN_TOUCH reporting
    Input: ad7877 - implement specified chip select behavior
    Input: hp680_ts_input - use cancel_delayed_work_sync()
    Input: mousedev - correct lockdep annotation
    Input: ads7846 - switch to using threaded IRQ
    Input: serio - support multiple child devices per single parent
    Input: synaptics - simplify pass-through port handling
    Input: add ROHM BU21013 touch panel controller support
    Input: omap4-keypad - wake-up on events & long presses
    Input: omap4-keypad - fix interrupt line configuration
    Input: omap4-keypad - SYSCONFIG register configuration
    Input: omap4-keypad - use platform device helpers
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (110 commits)
    sh: i2c-sh7760: Replase from ctrl_* to __raw_*
    sh: clkfwk: Shuffle around to match the intc split up.
    sh: clkfwk: modify for_each_frequency end condition
    sh: fix clk_get() error handling
    sh: clkfwk: Fix fault in frequency iterator.
    sh: clkfwk: Add a helper for rate rounding by divisor ranges.
    sh: clkfwk: Abstract rate rounding helper.
    sh: clkfwk: support clock remapping.
    sh: pci: Convert to upper/lower_32_bits() helpers.
    sh: mach-sdk7786: Add support for the FPGA SRAM.
    sh: Provide a generic SRAM pool for tiny memories.
    sh: pci: Support secondary FPGA-driven PCIe clocks on SDK7786.
    sh: pci: Support slot 4 routing on SDK7786.
    sh: Fix up PMB locking.
    sh: mach-sdk7786: Add support for fpga gpios.
    sh: use pr_fmt for clock framework, too.
    sh: remove name and id from struct clk
    sh: free-without-alloc fix for sh_mobile_lcdcfb
    sh: perf: Set up perf_max_events.
    sh: perf: Support SH-X3 hardware counters.
    ...

    Fix up trivial conflicts (perf_max_events got removed) in arch/sh/kernel/perf_event.c

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    Revert "block: fix accounting bug on cross partition merges"

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (21 commits)
    m68knommu: convert to using tracehook_report_syscall_*
    m68knommu: some boards use fixed phy for FEC ethernet
    m68knommu: support the external GPIO based interrupts of the 5272
    m68knommu: mask of vector bits in exception word properly
    m68knommu: change to new flag variables
    m68knommu: Fix MCFUART_TXFIFOSIZE for m548x.
    m68knommu: add basic mmu-less m548x support
    m68knommu: .gitignore vmlinux.lds
    m68knommu: stop using __do_IRQ
    m68knommu: rename PT_OFF_VECTOR to PT_OFF_FORMATVEC.
    m68knommu: add support for Coldfire 547x/548x interrupt controller
    m68k{nommu}: Remove unused DEFINE's from asm-offsets.c
    m68knommu: whitespace cleanup in 68328/entry.S
    m68knommu: Document supported chips in intc-2.c and intc-simr.c.
    m68knommu: fix strace support for 68328/68360
    m68knommu: fix default starting date
    arch/m68knommu: Removing dead 68328_SERIAL_UART2 config option
    arch/m68knommu: Removing dead RAM_{16,32}_MB config option
    arch/m68knommu: Removing dead M68KFPU_EMU config option
    arch/m68knommu: Removing dead RELOCATE config option
    ...

    Linus Torvalds
     
  • Export the cpu configuration topology via sysinfo. Two new lines are
    introduced:

    CPU Topology HW: 0 0 0 4 6 4
    CPU Topology SW: 0 0 0 0 4 24

    The HW line describes the cpu topology nesting levels when the maximum
    nesting level is used to get the corresponding SYSIB.
    The SW line describes what Linux is actually using. In this case it
    supports only two levels (CONFIG_SCHED_BOOK off) and therefore the
    hardware folded the two lower levels in the SYSIB response block.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Move the topology sysinfo SYSIB definitions to the proper place in
    asm/sysinfo.h where they should be.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Move cpu topology facility detection to early setup code where it
    should be.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens