28 Apr, 2009

5 commits

  • This reverts commit 8032b526d1a3bd91ad633dd3a3b5fdbc47ad54f1.

    Hey, it was only meant to be a single release. Now they can all die as
    far as I'm concerned.

    [ Just kidding. They're cute and cuddly.

    Except when they have horrible nasty facial diseases. Oh, and I guess
    they're not actually that cuddly even when disease-free. ]

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI: only save/restore existent registers in the PCIe capability
    x86/PCI: don't bother with root quirks if _CRS is used
    docbooks: add/fix PCI kernel-doc
    PCI: cleanup debug output resources
    x86/PCI: set_pci_bus_resources_arch_default cleanups
    x86/PCI: Move set_pci_bus_resources_arch_default into arch/x86
    x86/PCI: don't call e820_all_mapped with -1 in the mmconfig case
    PCI quirk: disable MSI on VIA VT3364 chipsets

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
    Btrfs: look for acls during btrfs_read_locked_inode
    Btrfs: fix acl caching
    Btrfs: Fix a bunch of printk() warnings.
    Btrfs: Fix a trivial warning using max() of u64 vs ULL.
    Btrfs: remove unused btrfs_bit_radix slab
    Btrfs: ratelimit IO error printks
    Btrfs: remove #if 0 code
    Btrfs: When shrinking, only update disk size on success
    Btrfs: fix deadlocks and stalls on dead root removal
    Btrfs: fix fallocate deadlock on inode extent lock
    Btrfs: kill btrfs_cache_create
    Btrfs: don't export symbols
    Btrfs: simplify makefile
    Btrfs: try to keep a healthy ratio of metadata vs data block groups

    Linus Torvalds
     
  • This changes btrfs_read_locked_inode() to peek ahead in the btree for acl items.
    If it is certain a given inode has no acls, it will set the in memory acl
    fields to null to avoid acl lookups completely.

    Signed-off-by: Chris Mason

    Chris Mason
     
  • Linus noticed the btrfs code to cache acls wasn't properly caching
    a NULL acl when the inode didn't have any acls. This meant the common
    case of no acls resulted in expensive btree searches every time the
    kernel checked permissions (which is quite often).

    This is a modified version of Linus' original patch:

    Properly set initial acl fields to BTRFS_ACL_NOT_CACHED in the inode.
    This forces an acl lookup when permission checks are done.

    Fix btrfs_get_acl to avoid lookups and locking when the inode acls fields
    are set to null.

    Fix btrfs_get_acl to use the right return value from __btrfs_getxattr
    when deciding to cache a NULL acl. It was storing a NULL acl when
    __btrfs_getxattr return -ENOENT, but __btrfs_getxattr was actually returning
    -ENODATA for this case.

    Signed-off-by: Chris Mason

    Chris Mason
     

27 Apr, 2009

35 commits