21 Apr, 2010

8 commits


20 Apr, 2010

12 commits

  • We can overflow the hardirq stack if we set the %pil here
    so early, just let the normal control flow do it.

    This is fine as we are allowed to do the actual IRQ enable
    at any point after we call trace_hardirqs_on.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Drivers may use vblank calls now (e.g. drm_vblank_off) in their unload
    paths, so don't clean up the vblank related structures until after
    driver unload.

    Signed-off-by: Jesse Barnes
    Reviewed-by: Kristian Høgsberg
    Signed-off-by: Dave Airlie

    Jesse Barnes
     
  • Linus Torvalds
     
  • The recent anon_vma fixes cause many anonymous pages to end up
    in the parent process anon_vma, even when the page is exclusively
    owned by the current process.

    Adding exclusively owned anonymous pages to the top anon_vma
    reduces rmap scanning overhead, especially in workloads with
    forking servers.

    This patch adds a parameter to __page_set_anon_rmap that can
    be used to indicate whether or not the added page is exclusively
    owned by the current process.

    Pages added through page_add_new_anon_rmap are exclusively
    owned by the current process, and can be added to the top
    anon_vma.

    Pages added through page_add_anon_rmap can be either shared
    or exclusively owned, so we do the conservative thing and
    add it to the oldest anon_vma.

    A next step would be to add the exclusive parameter to
    page_add_anon_rmap, to be used from functions where we do
    know for sure whether a page is exclusively owned.

    Signed-off-by: Rik van Riel
    Reviewed-by: Johannes Weiner
    Lightly-tested-by: Borislav Petkov
    Reviewed-by: Minchan Kim
    [ Edited to look nicer - Linus ]
    Signed-off-by: Linus Torvalds

    Rik van Riel
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:
    eCryptfs: Turn lower lookup error messages into debug messages
    eCryptfs: Copy lower directory inode times and size on link
    ecryptfs: fix use with tmpfs by removing d_drop from ecryptfs_destroy_inode
    ecryptfs: fix error code for missing xattrs in lower fs
    eCryptfs: Decrypt symlink target for stat size
    eCryptfs: Strip metadata in xattr flag in encrypted view
    eCryptfs: Clear buffer before reading in metadata xattr
    eCryptfs: Rename ecryptfs_crypt_stat.num_header_bytes_at_front
    eCryptfs: Fix metadata in xattr feature regression

    Linus Torvalds
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • Vaugue warnings about ENAMETOOLONG errors when looking up an encrypted
    file name have caused many users to become concerned about their data.
    Since this is a rather harmless condition, I'm moving this warning to
    only be printed when the ecryptfs_verbosity module param is 1.

    Signed-off-by: Tyler Hicks

    Tyler Hicks
     
  • The timestamps and size of a lower inode involved in a link() call was
    being copied to the upper parent inode. Instead, we should be
    copying lower parent inode's timestamps and size to the upper parent
    inode. I discovered this bug using the POSIX test suite at Tuxera.

    Signed-off-by: Tyler Hicks

    Tyler Hicks
     
  • Since tmpfs has no persistent storage, it pins all its dentries in memory
    so they have d_count=1 when other file systems would have d_count=0.
    ->lookup is only used to create new dentries. If the caller doesn't
    instantiate it, it's freed immediately at dput(). ->readdir reads
    directly from the dcache and depends on the dentries being hashed.

    When an ecryptfs mount is mounted, it associates the lower file and dentry
    with the ecryptfs files as they're accessed. When it's umounted and
    destroys all the in-memory ecryptfs inodes, it fput's the lower_files and
    d_drop's the lower_dentries. Commit 4981e081 added this and a d_delete in
    2008 and several months later commit caeeeecf removed the d_delete. I
    believe the d_drop() needs to be removed as well.

    The d_drop effectively hides any file that has been accessed via ecryptfs
    from the underlying tmpfs since it depends on it being hashed for it to
    be accessible. I've removed the d_drop on my development node and see no
    ill effects with basic testing on both tmpfs and persistent storage.

    As a side effect, after ecryptfs d_drops the dentries on tmpfs, tmpfs
    BUGs on umount. This is due to the dentries being unhashed.
    tmpfs->kill_sb is kill_litter_super which calls d_genocide to drop
    the reference pinning the dentry. It skips unhashed and negative dentries,
    but shrink_dcache_for_umount_subtree doesn't. Since those dentries
    still have an elevated d_count, we get a BUG().

    This patch removes the d_drop call and fixes both issues.

    This issue was reported at:
    https://bugzilla.novell.com/show_bug.cgi?id=567887

    Reported-by: Árpád Bíró
    Signed-off-by: Jeff Mahoney
    Cc: Dustin Kirkland
    Cc: stable@kernel.org
    Signed-off-by: Tyler Hicks

    Jeff Mahoney
     
  • If the lower file system driver has extended attributes disabled,
    ecryptfs' own access functions return -ENOSYS instead of -EOPNOTSUPP.
    This breaks execution of programs in the ecryptfs mount, since the
    kernel expects the latter error when checking for security
    capabilities in xattrs.

    Signed-off-by: Christian Pulvermacher
    Cc: stable@kernel.org
    Signed-off-by: Tyler Hicks

    Christian Pulvermacher
     
  • Create a getattr handler for eCryptfs symlinks that is capable of
    reading the lower target and decrypting its path. Prior to this patch,
    a stat's st_size field would represent the strlen of the encrypted path,
    while readlink() would return the strlen of the decrypted path. This
    could lead to confusion in some userspace applications, since the two
    values should be equal.

    https://bugs.launchpad.net/bugs/524919

    Reported-by: Loïc Minier
    Cc: stable@kernel.org
    Signed-off-by: Tyler Hicks

    Tyler Hicks
     
  • Commit b91ecb00 ("gigaset: include cleanup cleanup") removed an implicit
    sched.h inclusion that came in via slab.h, and caused various compile
    problems as a result.

    This should fix it.

    Reported-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

19 Apr, 2010

17 commits


18 Apr, 2010

3 commits