1. 03 Jun, 2011 2 commits
    • Sage Weil's avatar
      usb: remove bad dput after dentry_unhash · 3ece48a7
      Sage Weil authored
      Commit 64252c75 removed the useless dget from dentry_unhash but didn't
      fix up this caller in the usb code.  There used to be exactly one dput per
      dentry_unhash call; now there are none.
      Tested-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      3ece48a7
    • Al Viro's avatar
      more conservative S_NOSEC handling · 9e1f1de0
      Al Viro authored
      Caching "we have already removed suid/caps" was overenthusiastic as merged.
      On network filesystems we might have had suid/caps set on another client,
      silently picked by this client on revalidate, all of that *without* clearing
      the S_NOSEC flag.
      
      AFAICS, the only reasonably sane way to deal with that is
      	* new superblock flag; unless set, S_NOSEC is not going to be set.
      	* local block filesystems set it in their ->mount() (more accurately,
      mount_bdev() does, so does btrfs ->mount(), users of mount_bdev() other than
      local block ones clear it)
      	* if any network filesystem (or a cluster one) wants to use S_NOSEC,
      it'll need to set MS_NOSEC in sb->s_flags *AND* take care to clear S_NOSEC when
      inode attribute changes are picked from other clients.
      
      It's not an earth-shattering hole (anybody that can set suid on another client
      will almost certainly be able to write to the file before doing that anyway),
      but it's a bug that needs fixing.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      9e1f1de0
  2. 01 Jun, 2011 17 commits
  3. 31 May, 2011 9 commits
  4. 30 May, 2011 12 commits