29 Apr, 2011

1 commit

  • Azurit reports large increases in system time after 2.6.36 when running
    Apache. It was bisected down to a892e2d7dcdfa6c76e6 ("vfs: use kmalloc()
    to allocate fdmem if possible").

    That patch caused the vfs to use kmalloc() for very large allocations and
    this is causing excessive work (and presumably excessive reclaim) within
    the page allocator.

    Fix it by falling back to vmalloc() earlier - when the allocation attempt
    would have been considered "costly" by reclaim.

    Reported-by: azurIt
    Tested-by: azurIt
    Acked-by: Changli Gao
    Cc: Americo Wang
    Cc: Jiri Slaby
    Acked-by: Eric Dumazet
    Cc: Mel Gorman
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

28 Apr, 2011

4 commits

  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6:
    [PARISC] slub: fix panic with DISCONTIGMEM
    [PARISC] set memory ranges in N_NORMAL_MEMORY when onlined

    Linus Torvalds
     
  • * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
    ACPI / PM: Avoid infinite recurrence while registering power resources
    PM / Wakeup: Fix initialization of wakeup-related device sysfs files

    Linus Torvalds
     
  • * 'spell-fix' of git://git.profusion.mobi/users/lucas/linux-2.6:
    Revert wrong fixes for common misspellings

    Linus Torvalds
     
  • * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (42 commits)
    [media] media: vb2: correct queue initialization order
    [media] media: vb2: fix incorrect v4l2_buffer->flags handling
    [media] s5p-fimc: Add support for the buffer timestamps and sequence
    [media] s5p-fimc: Fix bytesperline and plane payload setup
    [media] s5p-fimc: Do not allow changing format after REQBUFS
    [media] s5p-fimc: Fix FIMC3 pixel limits on Exynos4
    [media] tda18271: update tda18271c2_rf_cal as per NXP's rev.04 datasheet
    [media] tda18271: update tda18271_rf_band as per NXP's rev.04 datasheet
    [media] tda18271: fix bad calculation of main post divider byte
    [media] tda18271: prog_cal and prog_tab variables should be s32, not u8
    [media] tda18271: fix calculation bug in tda18271_rf_tracking_filters_init
    [media] omap3isp: queue: Don't corrupt buf->npages when get_user_pages() fails
    [media] v4l: Don't register media entities for subdev device nodes
    [media] omap3isp: Don't increment node entity use count when poweron fails
    [media] omap3isp: lane shifter support
    [media] omap3isp: ccdc: support Y10/12, 8-bit bayer fmts
    [media] media: add missing 8-bit bayer formats and Y12
    [media] v4l: add V4L2_PIX_FMT_Y12 format
    cx23885: Fix stv0367 Kconfig dependency
    [media] omap3isp: Use isp xclk defines
    ...

    Fix up trivial conflict (spelink errurs) in drivers/media/video/omap3isp/isp.c

    Linus Torvalds
     

27 Apr, 2011

6 commits


26 Apr, 2011

27 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
    Btrfs: cleanup error handling in inode.c
    Btrfs: put the right bio if we have an error
    Btrfs: free bitmaps properly when evicting the cache
    Btrfs: Free free_space item properly in btrfs_trim_block_group()
    btrfs: add missing spin_unlock to a rare exit path
    Btrfs: check return value of kmalloc()
    btrfs: fix wrong allocating flag when reading page
    Btrfs: fix missing mutex_unlock in btrfs_del_dir_entries_in_log()

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
    Btrfs: do some plugging in the submit_bio threads

    Linus Torvalds
     
  • F15h CPUs may report a non-DRAM address when reporting an error address
    belonging to a CC6 state save area. Add a workaround to detect this
    condition and compute the actual DRAM address of the error as documented
    in the Revision Guide for AMD Family 15h Models 00h-0Fh Processors.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • F15h and later use a portion of DRAM as a CC6 storage area. BIOS
    programs D18F1x[17C:140,7C:40] DRAM Base/Limit accordingly by
    subtracting the storage area from the DRAM limit setting. However, in
    order for edac to consider that part of DRAM too, we need to include it
    into the per-node range.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • This warning was wrongfully added for a normal condition - intlvsel
    actually selects the destination node when node interleaving is enabled
    and it is not a mismatch. For a detailed example, see section 2.8.10.2
    "Node Interleaving" in F10h BKDG.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • This patch adds the TCO Watchdog DeviceIDs for the Intel Panther Point PCH.

    Signed-off-by: Seth Heasley
    Signed-off-by: Wim Van Sebroeck

    Seth Heasley
     
  • There is at least one BIOS with a DSDT containing a power resource
    object with a _PR0 entry pointing back to that power resource. In
    consequence, while registering that power resource
    acpi_bus_get_power_flags() sees that it depends on itself and tries
    to register it again, which leads to an infinitely deep recurrence.
    This problem was introduced by commit bf325f9538d8c89312be305b9779e
    (ACPI / PM: Register power resource devices as soon as they are
    needed).

    To fix this problem use the observation that power resources cannot
    be power manageable and prevent acpi_bus_get_power_flags() from
    being called for power resource objects.

    References: https://bugzilla.kernel.org/show_bug.cgi?id=31872
    Reported-and-tested-by: Pascal Dormeau
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Len Brown
    Cc: stable@kernel.org

    Rafael J. Wysocki
     
  • It turns out that some PCI devices are only found to be
    wakeup-capable during registration, in which case, when
    device_set_wakeup_capable() is called, device_is_registered() already
    returns 'true' for the given device, but dpm_sysfs_add() hasn't been
    called for it yet. This leads to situations in which the device's
    power.can_wakeup flag is not set as requested because of failing
    wakeup_sysfs_add() and its wakeup-related sysfs files are not
    created, although they should be present. This is a post-2.6.38
    regression introduced by commit cb8f51bdadb7969139c2e39c2defd4cde98c1
    (PM: Do not create wakeup sysfs files for devices that cannot wake
    up).

    To work around this problem initialize the device's power.entry
    field to an empty list head and make device_set_wakeup_capable()
    check if it is still empty before attempting to add the devices
    wakeup-related sysfs files with wakeup_sysfs_add(). Namely, if
    power.entry is still empty at this point, device_pm_add() hasn't been
    called yet for the device and its wakeup-related files will be
    created later, so device_set_wakeup_capable() doesn't have to create
    them.

    Reported-and-tested-by: Tino Keitel
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Greg Kroah-Hartman

    Rafael J. Wysocki
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
    CIFS: Fix memory over bound bug in cifs_parse_mount_options

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:
    eCryptfs: Flush dirty pages in setattr
    eCryptfs: Handle failed metadata read in lookup
    eCryptfs: Add reference counting to lower files
    eCryptfs: dput dentries returned from dget_parent
    eCryptfs: Remove extra d_delete in ecryptfs_rmdir

    Linus Torvalds
     
  • * 'for-torvalds' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson:
    rtc: fix coh901331 startup crash
    mach-ux500: fix i2c0 device setup regression

    Linus Torvalds
     
  • Now that the security modules can decide whether they support the
    dcache RCU walk or not it's possible to make selinux a bit more
    RCU friendly. The SELinux AVC and security server access decision
    code is RCU safe. A specific piece of the LSM audit code may not
    be RCU safe.

    This patch makes the VFS RCU walk retry if it would hit the non RCU
    safe chunk of code. It will normally just work under RCU. This is
    done simply by passing the VFS RCU state as a flag down into the
    avc_audit() code and returning ECHILD there if it would have an issue.

    Based-on-patch-by: Andi Kleen
    Signed-off-by: Eric Paris
    Signed-off-by: Linus Torvalds

    Eric Paris
     
  • Now that the whole dcache_hash_bucket crap is gone, go all the way and
    also remove the weird locking layering violations for locking the hash
    buckets. Add hlist_bl_lock/unlock helpers to move the locking into the
    list abstraction instead of requiring each caller to open code it.
    After all allowing for the bit locks is the whole point of these helpers
    over the plain hlist variant.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • When we are waiting for the bit-lock to be released, and are looping
    over the 'cpu_relax()' should not be doing anything else - otherwise we
    miss the point of trying to do the whole 'cpu_relax()'.

    Do the preemption enable/disable around the loop, rather than inside of
    it.

    Noticed when I was looking at the code generation for the dcache
    __d_drop usage, and the code just looked very odd.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • After 57db4e8d73ef2b5e94a3f412108dff2576670a8a changed eCryptfs to
    write-back caching, eCryptfs page writeback updates the lower inode
    times due to the use of vfs_write() on the lower file.

    To preserve inode metadata changes, such as 'cp -p' does with
    utimensat(), we need to flush all dirty pages early in
    ecryptfs_setattr() so that the user-updated lower inode metadata isn't
    clobbered later in writeback.

    https://bugzilla.kernel.org/show_bug.cgi?id=33372

    Reported-by: Rocko
    Signed-off-by: Tyler Hicks

    Tyler Hicks
     
  • When failing to read the lower file's crypto metadata during a lookup,
    eCryptfs must continue on without throwing an error. For example, there
    may be a plaintext file in the lower mount point that the user wants to
    delete through the eCryptfs mount.

    If an error is encountered while reading the metadata in lookup(), the
    eCryptfs inode's size could be incorrect. We must be sure to reread the
    plaintext inode size from the metadata when performing an open() or
    setattr(). The metadata is already being read in those paths, so this
    adds minimal performance overhead.

    This patch introduces a flag which will track whether or not the
    plaintext inode size has been read so that an incorrect i_size can be
    fixed in the open() or setattr() paths.

    https://bugs.launchpad.net/bugs/509180

    Cc:
    Signed-off-by: Tyler Hicks

    Tyler Hicks
     
  • The error processing of several places is changed like setting the
    error number only at the error.

    Signed-off-by: Tsutomu Itoh
    Signed-off-by: Chris Mason

    Tsutomu Itoh
     
  • In btrfs_submit_direct_hook if the first btrfs_map_block fails we need to put
    the orig_bio, not bio.

    Signed-off-by: Josef Bacik
    Signed-off-by: Chris Mason

    Josef Bacik
     
  • If our space cache is wrong, we do the right thing and free up everything that
    we loaded, however we don't reset the total_bitmaps counter or the thresholds or
    anything. So in btrfs_remove_free_space_cache make sure to call free_bitmap()
    if it's a bitmap, this will keep us from panicing when we check to make sure we
    don't have too many bitmaps. Thanks,

    Signed-off-by: Josef Bacik
    Signed-off-by: Chris Mason

    Josef Bacik
     
  • Since commit dc89e9824464e91fa0b06267864ceabe3186fd8b, we've changed
    to use a specific slab for alocation of free_space items.

    Signed-off-by: Li Zefan
    Signed-off-by: Chris Mason

    Li Zefan
     
  • Signed-off-by: David Sterba
    Signed-off-by: Chris Mason

    David Sterba
     
  • The check on the return value of kmalloc() is added to some places.

    Signed-off-by: Tsutomu Itoh
    Signed-off-by: Chris Mason

    Tsutomu Itoh
     
  • the space cache use extent_readpages() to read free space information,
    so we can not use GFP_KERNEL flag to allocate memory, or it may lead
    to deadlock.

    Signed-off-by: Itaru Kitayama
    Signed-off-by: Miao Xie
    Signed-off-by: Chris Mason

    Itaru Kitayama
     
  • It is necessary to unlock mutex_lock before it return an error when
    btrfs_alloc_path() fails.

    Signed-off-by: Tsutomu Itoh
    Signed-off-by: Chris Mason

    Tsutomu Itoh
     
  • For any given lower inode, eCryptfs keeps only one lower file open and
    multiplexes all eCryptfs file operations through that lower file. The
    lower file was considered "persistent" and stayed open from the first
    lookup through the lifetime of the inode.

    This patch keeps the notion of a single, per-inode lower file, but adds
    reference counting around the lower file so that it is closed when not
    currently in use. If the reference count is at 0 when an operation (such
    as open, create, etc.) needs to use the lower file, a new lower file is
    opened. Since the file is no longer persistent, all references to the
    term persistent file are changed to lower file.

    Locking is added around the sections of code that opens the lower file
    and assign the pointer in the inode info, as well as the code the fputs
    the lower file when all eCryptfs users are done with it.

    This patch is needed to fix issues, when mounted on top of the NFSv3
    client, where the lower file is left silly renamed until the eCryptfs
    inode is destroyed.

    Signed-off-by: Tyler Hicks

    Tyler Hicks
     
  • Call dput on the dentries previously returned by dget_parent() in
    ecryptfs_rename(). This is needed for supported eCryptfs mounts on top
    of the NFSv3 client.

    Signed-off-by: Tyler Hicks

    Tyler Hicks
     
  • vfs_rmdir() already calls d_delete() on the lower dentry. That was being
    duplicated in ecryptfs_rmdir() and caused a NULL pointer dereference
    when NFSv3 was the lower filesystem.

    Signed-off-by: Tyler Hicks

    Tyler Hicks
     

24 Apr, 2011

2 commits