tree fd48d354c61d2e736aa593c324a6d794afd8a4e7
parent 934b7024f0ed29003c95cef447d92737ab86dc4f
parent 1ec7f1ddbe5ba49f7b10c3b129d6d5c90c43526c
author Linus Torvalds <torvalds@linux-foundation.org> 1208914076 -0700
committer Linus Torvalds <torvalds@linux-foundation.org> 1208914114 -0700

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
  [PATCH] get rid of __exit_files(), __exit_fs() and __put_fs_struct()
  [PATCH] proc_readfd_common() race fix
  [PATCH] double-free of inode on alloc_file() failure exit in create_write_pipe()
  [PATCH] teach seq_file to discard entries
  [PATCH] umount_tree() will unhash everything itself
  [PATCH] get rid of more nameidata passing in namespace.c
  [PATCH] switch a bunch of LSM hooks from nameidata to path
  [PATCH] lock exclusively in collect_mounts() and drop_collected_mounts()
  [PATCH] move a bunch of declarations to fs/internal.h
