1. 15 Sep, 2009 35 commits
  2. 14 Sep, 2009 5 commits
    • David Howells's avatar
      KEYS: Fix garbage collector · c08ef808
      David Howells authored
      Fix a number of problems with the new key garbage collector:
      
       (1) A rogue semicolon in keyring_gc() was causing the initial count of dead
           keys to be miscalculated.
      
       (2) A missing return in keyring_gc() meant that under certain circumstances,
           the keyring semaphore would be unlocked twice.
      
       (3) The key serial tree iterator (key_garbage_collector()) part of the garbage
           collector has been modified to:
      
           (a) Complete each scan of the keyrings before setting the new timer.
      
           (b) Only set the new timer for keys that have yet to expire.  This means
               that the new timer is now calculated correctly, and the gc doesn't
               get into a loop continually scanning for keys that have expired, and
               preventing other things from happening, like RCU cleaning up the old
               keyring contents.
      
           (c) Perform an extra scan if any keys were garbage collected in this one
           	 as a key might become garbage during a scan, and (b) could mean we
           	 don't set the timer again.
      
       (4) Made key_schedule_gc() take the time at which to do a collection run,
           rather than the time at which the key expires.  This means the collection
           of dead keys (key type unregistered) can happen immediately.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarJames Morris <jmorris@namei.org>
      c08ef808
    • Marc Dionne's avatar
      KEYS: Unlock tasklist when exiting early from keyctl_session_to_parent · 5c84342a
      Marc Dionne authored
      When we exit early from keyctl_session_to_parent because of permissions or
      because the session keyring is the same as the parent, we need to unlock the
      tasklist.
      
      The missing unlock causes the system to hang completely when using
      keyctl(KEYCTL_SESSION_TO_PARENT) with a keyring shared with the parent.
      Signed-off-by: default avatarMarc Dionne <marc.c.dionne@gmail.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarJames Morris <jmorris@namei.org>
      5c84342a
    • David Howells's avatar
      CRED: Allow put_cred() to cope with a NULL groups list · 4a5d6ba1
      David Howells authored
      put_cred() will oops if given a NULL groups list, but that is now possible with
      the existence of cred_alloc_blank(), as used in keyctl_session_to_parent().
      
      Added in commit:
      
      	commit ee18d64c
      	Author: David Howells <dhowells@redhat.com>
      	Date:   Wed Sep 2 09:14:21 2009 +0100
      	KEYS: Add a keyctl to install a process's session keyring on its parent [try #6]
      Reported-by: default avatarMarc Dionne <marc.c.dionne@gmail.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarJames Morris <jmorris@namei.org>
      4a5d6ba1
    • Linus Torvalds's avatar
      Merge branch 'osync_cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 · 4142e0d1
      Linus Torvalds authored
      * 'osync_cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:
        fsync: wait for data writeout completion before calling ->fsync
        vfs: Remove generic_osync_inode() and sync_page_range{_nolock}()
        fat: Opencode sync_page_range_nolock()
        pohmelfs: Use new syncing helper
        xfs: Convert sync_page_range() to simple filemap_write_and_wait_range()
        ocfs2: Update syncing after splicing to match generic version
        ntfs: Use new syncing helpers and update comments
        ext4: Remove syncing logic from ext4_file_write
        ext3: Remove syncing logic from ext3_file_write
        ext2: Update comment about generic_osync_inode
        vfs: Introduce new helpers for syncing after writing to O_SYNC file or IS_SYNC inode
        vfs: Rename generic_file_aio_write_nolock
        ocfs2: Use __generic_file_aio_write instead of generic_file_aio_write_nolock
        pohmelfs: Use __generic_file_aio_write instead of generic_file_aio_write_nolock
        vfs: Remove syncing from generic_file_direct_write() and generic_file_buffered_write()
        vfs: Export __generic_file_aio_write() and add some comments
        vfs: Introduce filemap_fdatawait_range
      4142e0d1
    • Linus Torvalds's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw · 33f1de69
      Linus Torvalds authored
      * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:
        GFS2: Whitespace fixes
        GFS2: Remove unused sysfs file
        GFS2: Be extra careful about deallocating inodes
        GFS2: Remove no_formal_ino generating code
        GFS2: Rename eattr.[ch] as xattr.[ch]
        GFS2: Clean up of extended attribute support
        GFS2: Add explanation of extended attr on-disk format
        GFS2: Add "-o errors=panic|withdraw" mount options
        GFS2: jumping to wrong label?
        GFS2: free disk inode which is deleted by remote node -V2
        GFS2: Add a document explaining GFS2's uevents
        GFS2: Add sysfs link to device
        GFS2: Replace assertion with proper error handling
        GFS2: Improve error handling in inode allocation
        GFS2: Add some more info to uevents
        GFS2: Add online uevent to GFS2
      33f1de69