linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [git pull] vfs.git; pile 1
@ 2012-07-22 10:09 Al Viro
  2012-07-22 17:34 ` Linus Torvalds
  0 siblings, 1 reply; 11+ messages in thread
From: Al Viro @ 2012-07-22 10:09 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

This one is *big* and changes quite a few things around VFS.  What's in there:

	* the first of two really major architecture changes - death to
open intents.  The former is finally there; it was very long in making,
but with Miklos getting through really hard and messy final push in
fs/namei.c, we finally have it.  Unlike his variant, this one doesn't
introduce struct opendata; what we have instead is ->atomic_open()
taking preallocated struct file * and passing everything via its fields.
Instead of returning struct file *, it returns -E... on error, 0 on success
and 1 in "deal with it yourself" case (e.g. symlink found on server,
etc.).  See comments before fs/namei.c:atomic_open().  That made a lot of
goodies finally possible and quite a few are in that pile: ->lookup(),
->d_revalidate() and ->create() do not get struct nameidata * anymore;
->lookup() and ->d_revalidate() get lookup flags instead, ->create()
gets "do we want it exclusive" flag.  With the introduction of new helper
(kern_path_locked()) we are rid of all struct nameidata instances outside
of fs/namei.c; it's still visible in namei.h, but not for long.  Come the
next cycle, declaration will move either to fs/internal.h or to fs/namei.c
itself. [me, miklos, hch]

	* the second major change: behaviour of final fput().  Now we
have __fput() done without any locks held by caller *and* not from deep
in call stack.	That obviously lifts a lot of constraints on the locking
in there.  Moreover, it's legal now to call fput() from atomic contexts
(which has immediately simplified life for aio.c).  We also don't need
anti-recursion logics in __scm_destroy() anymore.  There is a price,
though - the damn thing has become partially asynchronous.  For fput()
from normal process we are guaranteed that pending __fput() will be done
before the caller returns to userland, exits or gets stopped for ptrace.
For kernel threads and atomic contexts it's done via schedule_work(),
so theoretically we might need a way to make sure it's finished; so far
only one such place had been found, but there might be more.  There's
flush_delayed_fput() (do all pending __fput()) and there's __fput_sync()
(fput() analog doing __fput() immediately).  I hope we won't need them
often; see warnings in fs/file_table.c for details. [me, based on task_work
series from Oleg merged last cycle]

	* sync series from Jan

	* large part of "death to sync_supers()" work from Artem; the only
bits missing here are exofs and ext4 ones.  As far as I understand, those
are going via the exofs and ext4 trees resp.; once they are in, we can
put ->write_super() to the rest, along with the thread calling it.

	* preparatory bits from unionmount series (from dhowells).

	* assorted cleanups and fixes all over the place, as usual.

This is not the last pile for this cycle; there's at least jlayton's
ESTALE work and fsfreeze series (the latter - in dire need of
fixes, so I'm not sure it'll make the cut this cycle).  I'll
probably throw symlink/hardlink restrictions stuff from Kees into
the next pile, too.  Plus there's a lot of misc patches I hadn't
thrown into that one - it's large enough as it is...

Please, pull from the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Shortlog:
Al Viro (61):
      get rid of ->mnt_longterm
      get rid of magic in proc_namespace.c
      qnx6: don't bother with ->i_dentry in inode-freeing callback
      cifs: don't bother with ->i_dentry in ->destroy_inode()
      adfs: don't bother with ->i_dentry in ->destroy_inode()
      vfs: update documentation on ->i_dentry handling
      affs: get rid of open-coded list_for_each_entry()
      affs: unobfuscate affs_fix_dcache()
      ocfs2: use list_for_each_entry in ocfs2_find_local_alias()
      ext4: get rid of open-coded d_find_any_alias()
      vfs: switch i_dentry/d_alias to hlist
      coda: use list_for_each_entry
      namei.c: let follow_link() do put_link() on failure
      ->atomic_open() prototype change - pass int * instead of bool *
      don't modify od->filp at all
      make ->atomic_open() return int
      kill opendata->{mnt,dentry}
      kill struct opendata
      fs/namei.c: get do_last() and friends return int
      make finish_no_open() return int
      switch do_dentry_open() to returning int
      fold __dentry_open() into its sole caller
      do_dentry_open(): take initialization of file->f_path to caller
      switch nfs_lookup_check_intent() away from nameidata
      nfs_lookup_verify_inode() - nd is *always* non-NULL here
      fs/nfs/dir.c: switch to passing nd->flags instead of nd wherever possible
      stop passing nameidata * to ->d_revalidate()
      fs/namei.c: don't pass nameidata to d_revalidate()
      fs/namei.c: don't pass namedata to lookup_dcache()
      stop passing nameidata to ->lookup()
      fs/namei.c: don't pass nameidata to __lookup_hash() and lookup_real()
      don't pass nameidata to ->create()
      don't pass nameidata * to vfs_create()
      get rid of kern_path_parent()
      sysfs: switch to ->s_d_op and ->d_release()
      sysfs: just use d_materialise_unique()
      __d_unalias() should refuse to move mountpoints
      debugfs: make sure that debugfs_create_file() gets used only for regulars
      debugfs: fold debugfs_create_by_name() into the only caller
      debugfs: get rid of useless arguments to debugfs_{mkdir,symlink}
      mark_files_ro(): don't bother with mntget/mntput
      do_dentry_open(): close the race with mark_files_ro() in failure exit
      signal: make sure we don't get stopped with pending task_work
      trimming task_work: kill ->data
      trim task_work: get rid of hlist
      merge task_work and rcu_head, get rid of separate allocation for keyring case
      move exit_task_work() past exit_files() et.al.
      deal with task_work callbacks adding more work
      switch fput to task_work_add
      aio: now fput() is OK from interrupt context; get rid of manual delayed __fput()
      get rid of ->scm_work_list
      hold task_lock around checks in keyctl
      unobfuscate follow_up() a bit
      tidy up namei.c a bit
      don't expose I_NEW inodes via dentry->d_inode
      ecryptfs: don't reinvent the wheels, please - use struct completion
      zoran: don't bother with struct file * in zoran_map
      spufs: shift dget/mntget towards dentry_open()
      switch dentry_open() to struct path, make it grab references itself
      btrfs: switch btrfs_ioctl_balance() to mnt_want_write_file()
      ext4: switch EXT4_IOC_RESIZE_FS to mnt_want_write_file()

Andrew Morton (1):
      notify_change(): check that i_mutex is held

Artem Bityutskiy (23):
      affs: stop setting bm_flags
      affs: remove useless superblock writeout on unmount
      affs: remove useless superblock writeout on remount
      affs: re-structure superblock locking a bit
      affs: stop using lock_super
      affs: introduce VFS superblock object back-reference
      affs: get rid of affs_sync_super
      hfsplus: make hfsplus_sync_fs static
      hfsplus: amend debugging print
      hfsplus: remove useless check
      hfsplus: get rid of write_super
      hfs: push lock_super down
      hfs: get rid of lock_super
      hfs: remove extra mdb write on unmount
      hfs: simplify a bit checking for R/O
      hfs: introduce VFS superblock object back-reference
      hfs: get rid of hfs_sync_super
      fs/sysv: remove useless write_super call
      fs/sysv: remove another useless write_super call
      fs/sysv: stop using write_super and s_dirt
      fs/ufs: remove extra superblock write on unmount
      fs/ufs: re-arrange the code a bit
      fs/ufs: get rid of write_super

Christoph Hellwig (2):
      fs: move path_put on failure out of ->follow_link
      fs: add nd_jump_link

David Howells (6):
      VFS: Fix the banner comment on lookup_open()
      VFS: Make chown() and lchown() call fchownat()
      VFS: Make clone_mnt()/copy_tree()/collect_mounts() return errors
      VFS: Comment mount following code
      VFS: Pass mount flags to sget()
      VFS: Split inode_permission()

Eric Sandeen (3):
      vfs: allow custom EOF in generic_file_llseek code
      ext4: use core vfs llseek code for dir seeks
      ext3: pass custom EOF to generic_file_llseek_size()

Jan Kara (8):
      vfs: Move noop_backing_dev_info check from sync into writeback
      quota: Split dquot_quota_sync() to writeback and cache flushing part
      quota: Move quota syncing to ->sync_fs method
      vfs: Reorder operations during sys_sync
      vfs: Create function for iterating over block devices
      vfs: Make sys_sync writeout also block device inodes
      vfs: Remove unnecessary flushing of block devices
      vfs: Avoid unnecessary WB_SYNC_NONE writeback during sys_sync and reorder sync passes

Julia Lawall (1):
      fs/direct-io.c: adjust suspicious bit operation

Miklos Szeredi (21):
      vfs: do_last(): inline lookup_slow()
      vfs: do_last(): separate O_CREAT specific code
      vfs: do_last(): common slow lookup
      vfs: add lookup_open()
      vfs: lookup_open(): expand lookup_hash()
      vfs: add i_op->atomic_open()
      nfs: implement i_op->atomic_open()
      nfs: clean up ->create in nfs_rpc_ops
      nfs: don't use nd->intent.open.flags
      nfs: don't use intents for checking atomic open
      fuse: implement i_op->atomic_open()
      cifs: implement i_op->atomic_open()
      ceph: remove unused arg from ceph_lookup_open()
      ceph: implement i_op->atomic_open()
      9p: implement i_op->atomic_open()
      vfs: remove open intents from nameidata
      vfs: do_last(): clean up error handling
      vfs: do_last(): clean up labels
      vfs: do_last(): clean up bool
      vfs: do_last(): clean up retry
      vfs: move O_DIRECT check to common code

Diffstat:
 Documentation/filesystems/Locking         |   11 +-
 Documentation/filesystems/porting         |   21 +-
 Documentation/filesystems/vfs.txt         |   23 +-
 arch/powerpc/platforms/cell/spufs/inode.c |   48 +--
 drivers/base/devtmpfs.c                   |  100 ++--
 drivers/media/video/zoran/zoran.h         |    4 +-
 drivers/media/video/zoran/zoran_driver.c  |    4 +-
 drivers/mtd/mtdsuper.c                    |    4 +-
 fs/9p/v9fs.h                              |    2 +-
 fs/9p/vfs_dentry.c                        |    4 +-
 fs/9p/vfs_inode.c                         |  170 ++++---
 fs/9p/vfs_inode_dotl.c                    |   59 ++-
 fs/9p/vfs_super.c                         |    4 +-
 fs/adfs/dir.c                             |    2 +-
 fs/adfs/super.c                           |    1 -
 fs/affs/affs.h                            |   11 +-
 fs/affs/amigaffs.c                        |   22 +-
 fs/affs/bitmap.c                          |    4 +-
 fs/affs/namei.c                           |    4 +-
 fs/affs/super.c                           |   68 ++-
 fs/afs/dir.c                              |   14 +-
 fs/afs/mntpt.c                            |    4 +-
 fs/afs/super.c                            |    3 +-
 fs/aio.c                                  |   73 +---
 fs/attr.c                                 |    3 +-
 fs/autofs4/dev-ioctl.c                    |    4 +-
 fs/autofs4/root.c                         |    4 +-
 fs/bad_inode.c                            |    4 +-
 fs/befs/linuxvfs.c                        |    4 +-
 fs/bfs/dir.c                              |    4 +-
 fs/block_dev.c                            |   36 ++
 fs/btrfs/inode.c                          |    6 +-
 fs/btrfs/ioctl.c                          |    4 +-
 fs/btrfs/super.c                          |    4 +-
 fs/cachefiles/namei.c                     |    2 +-
 fs/cachefiles/rdwr.c                      |    8 +-
 fs/ceph/dir.c                             |   77 ++--
 fs/ceph/file.c                            |   26 +-
 fs/ceph/super.c                           |    2 +-
 fs/ceph/super.h                           |    6 +-
 fs/cifs/cifsfs.c                          |   11 +-
 fs/cifs/cifsfs.h                          |    7 +-
 fs/cifs/dir.c                             |  448 +++++++++--------
 fs/cifs/inode.c                           |    5 +-
 fs/coda/cache.c                           |   10 +-
 fs/coda/dir.c                             |   14 +-
 fs/configfs/dir.c                         |    2 +-
 fs/cramfs/inode.c                         |    2 +-
 fs/dcache.c                               |   44 +-
 fs/debugfs/inode.c                        |   91 ++--
 fs/devpts/inode.c                         |    6 +-
 fs/direct-io.c                            |    2 +-
 fs/ecryptfs/dentry.c                      |   20 +-
 fs/ecryptfs/ecryptfs_kernel.h             |   14 -
 fs/ecryptfs/inode.c                       |    9 +-
 fs/ecryptfs/kthread.c                     |   73 +--
 fs/ecryptfs/main.c                        |    8 +-
 fs/efs/efs.h                              |    2 +-
 fs/efs/namei.c                            |    3 +-
 fs/exofs/namei.c                          |    4 +-
 fs/exportfs/expfs.c                       |   16 +-
 fs/ext2/namei.c                           |    8 +-
 fs/ext2/super.c                           |    6 +
 fs/ext3/dir.c                             |    3 +-
 fs/ext3/namei.c                           |    8 +-
 fs/ext3/super.c                           |    5 +
 fs/ext4/dir.c                             |   75 +---
 fs/ext4/file.c                            |    9 +-
 fs/ext4/fsync.c                           |   11 +-
 fs/ext4/ioctl.c                           |    4 +-
 fs/ext4/namei.c                           |    8 +-
 fs/ext4/super.c                           |    5 +
 fs/fat/namei_msdos.c                      |    4 +-
 fs/fat/namei_vfat.c                       |   16 +-
 fs/file_table.c                           |   81 +++-
 fs/freevxfs/vxfs_lookup.c                 |    4 +-
 fs/fs-writeback.c                         |    5 +
 fs/fs_struct.c                            |   32 +-
 fs/fuse/dir.c                             |   99 +++--
 fs/gfs2/dentry.c                          |    6 +-
 fs/gfs2/inode.c                           |    7 +-
 fs/gfs2/ops_fstype.c                      |    5 +-
 fs/gfs2/quota.c                           |    4 +-
 fs/gfs2/quota.h                           |    2 +-
 fs/gfs2/super.c                           |    4 +-
 fs/gfs2/sys.c                             |    2 +-
 fs/hfs/dir.c                              |    4 +-
 fs/hfs/extent.c                           |    2 +-
 fs/hfs/hfs_fs.h                           |   15 +-
 fs/hfs/inode.c                            |   16 +-
 fs/hfs/mdb.c                              |   13 +
 fs/hfs/super.c                            |   73 ++--
 fs/hfs/sysdep.c                           |    4 +-
 fs/hfsplus/bitmap.c                       |    4 +-
 fs/hfsplus/dir.c                          |    6 +-
 fs/hfsplus/hfsplus_fs.h                   |    7 +-
 fs/hfsplus/inode.c                        |    8 +-
 fs/hfsplus/super.c                        |   46 ++-
 fs/hostfs/hostfs_kern.c                   |    4 +-
 fs/hpfs/dir.c                             |    2 +-
 fs/hpfs/hpfs_fn.h                         |    2 +-
 fs/hpfs/namei.c                           |    2 +-
 fs/hppfs/hppfs.c                          |   22 +-
 fs/hugetlbfs/inode.c                      |    2 +-
 fs/inode.c                                |    2 +-
 fs/internal.h                             |   10 +-
 fs/isofs/isofs.h                          |    2 +-
 fs/isofs/namei.c                          |    2 +-
 fs/jffs2/dir.c                            |   16 +-
 fs/jfs/namei.c                            |   18 +-
 fs/jfs/super.c                            |    5 +
 fs/libfs.c                                |    6 +-
 fs/logfs/dir.c                            |    4 +-
 fs/logfs/super.c                          |    3 +-
 fs/minix/namei.c                          |    4 +-
 fs/mount.h                                |   13 +-
 fs/namei.c                                |  808 ++++++++++++++++++++---------
 fs/namespace.c                            |  195 ++++----
 fs/ncpfs/dir.c                            |   14 +-
 fs/nfs/dir.c                              |  314 +++++-------
 fs/nfs/getroot.c                          |    2 +-
 fs/nfs/nfs3proc.c                         |    2 +-
 fs/nfs/nfs4proc.c                         |   37 +-
 fs/nfs/proc.c                             |    2 +-
 fs/nfs/super.c                            |    2 +-
 fs/nfsd/vfs.c                             |   14 +-
 fs/nilfs2/namei.c                         |    4 +-
 fs/nilfs2/super.c                         |    4 +-
 fs/notify/fanotify/fanotify_user.c        |    8 +-
 fs/notify/fsnotify.c                      |    3 +-
 fs/ntfs/namei.c                           |    2 +-
 fs/ocfs2/dcache.c                         |   22 +-
 fs/ocfs2/dlmfs/dlmfs.c                    |    2 +-
 fs/ocfs2/namei.c                          |    4 +-
 fs/omfs/dir.c                             |    4 +-
 fs/open.c                                 |  213 +++------
 fs/openpromfs/inode.c                     |    4 +-
 fs/pnode.c                                |    5 +-
 fs/proc/base.c                            |   51 +-
 fs/proc/generic.c                         |    2 +-
 fs/proc/internal.h                        |    6 +-
 fs/proc/namespaces.c                      |    4 +-
 fs/proc/proc_net.c                        |    2 +-
 fs/proc/proc_sysctl.c                     |    6 +-
 fs/proc/root.c                            |   10 +-
 fs/proc_namespace.c                       |    7 +-
 fs/qnx4/namei.c                           |    2 +-
 fs/qnx4/qnx4.h                            |    2 +-
 fs/qnx6/inode.c                           |    1 -
 fs/qnx6/namei.c                           |    2 +-
 fs/qnx6/qnx6.h                            |    2 +-
 fs/quota/dquot.c                          |   24 +-
 fs/quota/quota.c                          |    4 +-
 fs/ramfs/inode.c                          |    2 +-
 fs/read_write.c                           |   18 +-
 fs/reiserfs/namei.c                       |   12 +-
 fs/reiserfs/procfs.c                      |    2 +-
 fs/reiserfs/super.c                       |    5 +
 fs/reiserfs/xattr.c                       |    4 +-
 fs/romfs/super.c                          |    2 +-
 fs/squashfs/namei.c                       |    2 +-
 fs/super.c                                |   22 +-
 fs/sync.c                                 |   63 ++-
 fs/sysfs/dir.c                            |   31 +-
 fs/sysfs/mount.c                          |    4 +-
 fs/sysfs/sysfs.h                          |    1 +
 fs/sysv/inode.c                           |   18 +-
 fs/sysv/namei.c                           |    4 +-
 fs/sysv/sysv.h                            |    1 -
 fs/ubifs/dir.c                            |    4 +-
 fs/ubifs/super.c                          |    3 +-
 fs/udf/namei.c                            |    4 +-
 fs/ufs/balloc.c                           |    8 +-
 fs/ufs/ialloc.c                           |    4 +-
 fs/ufs/namei.c                            |    4 +-
 fs/ufs/super.c                            |  148 +++---
 fs/ufs/ufs.h                              |    5 +
 fs/ufs/ufs_fs.h                           |    1 +
 fs/xfs/xfs_ioctl.c                        |    7 +-
 fs/xfs/xfs_iops.c                         |    6 +-
 include/linux/dcache.h                    |    4 +-
 include/linux/file.h                      |    3 +
 include/linux/fs.h                        |   33 +-
 include/linux/namei.h                     |   18 +-
 include/linux/nfs_xdr.h                   |    2 +-
 include/linux/quota.h                     |    2 +-
 include/linux/quotaops.h                  |    8 +-
 include/linux/sched.h                     |    3 +-
 include/linux/task_work.h                 |   18 +-
 include/linux/tracehook.h                 |    2 +-
 include/linux/types.h                     |    9 +-
 include/net/scm.h                         |    1 -
 init/main.c                               |    3 +-
 ipc/mqueue.c                              |  119 ++---
 kernel/audit_tree.c                       |   10 +-
 kernel/audit_watch.c                      |   25 +-
 kernel/cgroup.c                           |    6 +-
 kernel/exit.c                             |    6 +-
 kernel/fork.c                             |    2 +-
 kernel/irq/manage.c                       |    6 +-
 kernel/signal.c                           |   15 +
 kernel/task_work.c                        |   94 ++--
 mm/shmem.c                                |    2 +-
 net/core/scm.c                            |   22 +-
 security/keys/internal.h                  |    2 +-
 security/keys/keyctl.c                    |   26 +-
 security/keys/process_keys.c              |    5 +-
 security/selinux/hooks.c                  |    3 +-
 security/selinux/include/security.h       |    2 +-
 security/selinux/selinuxfs.c              |    6 +-
 210 files changed, 2609 insertions(+), 2398 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [git pull] vfs.git; pile 1
  2012-07-22 10:09 [git pull] vfs.git; pile 1 Al Viro
@ 2012-07-22 17:34 ` Linus Torvalds
  2012-07-22 20:20   ` Al Viro
  0 siblings, 1 reply; 11+ messages in thread
From: Linus Torvalds @ 2012-07-22 17:34 UTC (permalink / raw)
  To: Al Viro; +Cc: linux-kernel, linux-fsdevel, Stephen Rothwell, Trond Myklebust

I'm not pulling this until the mess with the NFS tree is sorted out.
Apparently you rebased your (public!) VFS tree, and now half of your
old pre-rebase patches are in the NFS tree.

Rebasing public trees IS NOT A VALID OPERATION! Exactly because of
messes like this.

So no. No way am I pulling a big VFS tree that apparently has random
unknown aliased commits in other trees.

                  Linus

On Sun, Jul 22, 2012 at 3:09 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> This one is *big* and changes quite a few things around VFS.  What's in there:
>
>         * the first of two really major architecture changes - death to
> open intents.  The former is finally there; it was very long in making,
> but with Miklos getting through really hard and messy final push in
> fs/namei.c, we finally have it.  Unlike his variant, this one doesn't
> introduce struct opendata; what we have instead is ->atomic_open()
> taking preallocated struct file * and passing everything via its fields.
> Instead of returning struct file *, it returns -E... on error, 0 on success
> and 1 in "deal with it yourself" case (e.g. symlink found on server,
> etc.).  See comments before fs/namei.c:atomic_open().  That made a lot of
> goodies finally possible and quite a few are in that pile: ->lookup(),
> ->d_revalidate() and ->create() do not get struct nameidata * anymore;
> ->lookup() and ->d_revalidate() get lookup flags instead, ->create()
> gets "do we want it exclusive" flag.  With the introduction of new helper
> (kern_path_locked()) we are rid of all struct nameidata instances outside
> of fs/namei.c; it's still visible in namei.h, but not for long.  Come the
> next cycle, declaration will move either to fs/internal.h or to fs/namei.c
> itself. [me, miklos, hch]
>
>         * the second major change: behaviour of final fput().  Now we
> have __fput() done without any locks held by caller *and* not from deep
> in call stack.  That obviously lifts a lot of constraints on the locking
> in there.  Moreover, it's legal now to call fput() from atomic contexts
> (which has immediately simplified life for aio.c).  We also don't need
> anti-recursion logics in __scm_destroy() anymore.  There is a price,
> though - the damn thing has become partially asynchronous.  For fput()
> from normal process we are guaranteed that pending __fput() will be done
> before the caller returns to userland, exits or gets stopped for ptrace.
> For kernel threads and atomic contexts it's done via schedule_work(),
> so theoretically we might need a way to make sure it's finished; so far
> only one such place had been found, but there might be more.  There's
> flush_delayed_fput() (do all pending __fput()) and there's __fput_sync()
> (fput() analog doing __fput() immediately).  I hope we won't need them
> often; see warnings in fs/file_table.c for details. [me, based on task_work
> series from Oleg merged last cycle]
>
>         * sync series from Jan
>
>         * large part of "death to sync_supers()" work from Artem; the only
> bits missing here are exofs and ext4 ones.  As far as I understand, those
> are going via the exofs and ext4 trees resp.; once they are in, we can
> put ->write_super() to the rest, along with the thread calling it.
>
>         * preparatory bits from unionmount series (from dhowells).
>
>         * assorted cleanups and fixes all over the place, as usual.
>
> This is not the last pile for this cycle; there's at least jlayton's
> ESTALE work and fsfreeze series (the latter - in dire need of
> fixes, so I'm not sure it'll make the cut this cycle).  I'll
> probably throw symlink/hardlink restrictions stuff from Kees into
> the next pile, too.  Plus there's a lot of misc patches I hadn't
> thrown into that one - it's large enough as it is...
>
> Please, pull from the usual place -
> git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
>
> Shortlog:
> Al Viro (61):
>       get rid of ->mnt_longterm
>       get rid of magic in proc_namespace.c
>       qnx6: don't bother with ->i_dentry in inode-freeing callback
>       cifs: don't bother with ->i_dentry in ->destroy_inode()
>       adfs: don't bother with ->i_dentry in ->destroy_inode()
>       vfs: update documentation on ->i_dentry handling
>       affs: get rid of open-coded list_for_each_entry()
>       affs: unobfuscate affs_fix_dcache()
>       ocfs2: use list_for_each_entry in ocfs2_find_local_alias()
>       ext4: get rid of open-coded d_find_any_alias()
>       vfs: switch i_dentry/d_alias to hlist
>       coda: use list_for_each_entry
>       namei.c: let follow_link() do put_link() on failure
>       ->atomic_open() prototype change - pass int * instead of bool *
>       don't modify od->filp at all
>       make ->atomic_open() return int
>       kill opendata->{mnt,dentry}
>       kill struct opendata
>       fs/namei.c: get do_last() and friends return int
>       make finish_no_open() return int
>       switch do_dentry_open() to returning int
>       fold __dentry_open() into its sole caller
>       do_dentry_open(): take initialization of file->f_path to caller
>       switch nfs_lookup_check_intent() away from nameidata
>       nfs_lookup_verify_inode() - nd is *always* non-NULL here
>       fs/nfs/dir.c: switch to passing nd->flags instead of nd wherever possible
>       stop passing nameidata * to ->d_revalidate()
>       fs/namei.c: don't pass nameidata to d_revalidate()
>       fs/namei.c: don't pass namedata to lookup_dcache()
>       stop passing nameidata to ->lookup()
>       fs/namei.c: don't pass nameidata to __lookup_hash() and lookup_real()
>       don't pass nameidata to ->create()
>       don't pass nameidata * to vfs_create()
>       get rid of kern_path_parent()
>       sysfs: switch to ->s_d_op and ->d_release()
>       sysfs: just use d_materialise_unique()
>       __d_unalias() should refuse to move mountpoints
>       debugfs: make sure that debugfs_create_file() gets used only for regulars
>       debugfs: fold debugfs_create_by_name() into the only caller
>       debugfs: get rid of useless arguments to debugfs_{mkdir,symlink}
>       mark_files_ro(): don't bother with mntget/mntput
>       do_dentry_open(): close the race with mark_files_ro() in failure exit
>       signal: make sure we don't get stopped with pending task_work
>       trimming task_work: kill ->data
>       trim task_work: get rid of hlist
>       merge task_work and rcu_head, get rid of separate allocation for keyring case
>       move exit_task_work() past exit_files() et.al.
>       deal with task_work callbacks adding more work
>       switch fput to task_work_add
>       aio: now fput() is OK from interrupt context; get rid of manual delayed __fput()
>       get rid of ->scm_work_list
>       hold task_lock around checks in keyctl
>       unobfuscate follow_up() a bit
>       tidy up namei.c a bit
>       don't expose I_NEW inodes via dentry->d_inode
>       ecryptfs: don't reinvent the wheels, please - use struct completion
>       zoran: don't bother with struct file * in zoran_map
>       spufs: shift dget/mntget towards dentry_open()
>       switch dentry_open() to struct path, make it grab references itself
>       btrfs: switch btrfs_ioctl_balance() to mnt_want_write_file()
>       ext4: switch EXT4_IOC_RESIZE_FS to mnt_want_write_file()
>
> Andrew Morton (1):
>       notify_change(): check that i_mutex is held
>
> Artem Bityutskiy (23):
>       affs: stop setting bm_flags
>       affs: remove useless superblock writeout on unmount
>       affs: remove useless superblock writeout on remount
>       affs: re-structure superblock locking a bit
>       affs: stop using lock_super
>       affs: introduce VFS superblock object back-reference
>       affs: get rid of affs_sync_super
>       hfsplus: make hfsplus_sync_fs static
>       hfsplus: amend debugging print
>       hfsplus: remove useless check
>       hfsplus: get rid of write_super
>       hfs: push lock_super down
>       hfs: get rid of lock_super
>       hfs: remove extra mdb write on unmount
>       hfs: simplify a bit checking for R/O
>       hfs: introduce VFS superblock object back-reference
>       hfs: get rid of hfs_sync_super
>       fs/sysv: remove useless write_super call
>       fs/sysv: remove another useless write_super call
>       fs/sysv: stop using write_super and s_dirt
>       fs/ufs: remove extra superblock write on unmount
>       fs/ufs: re-arrange the code a bit
>       fs/ufs: get rid of write_super
>
> Christoph Hellwig (2):
>       fs: move path_put on failure out of ->follow_link
>       fs: add nd_jump_link
>
> David Howells (6):
>       VFS: Fix the banner comment on lookup_open()
>       VFS: Make chown() and lchown() call fchownat()
>       VFS: Make clone_mnt()/copy_tree()/collect_mounts() return errors
>       VFS: Comment mount following code
>       VFS: Pass mount flags to sget()
>       VFS: Split inode_permission()
>
> Eric Sandeen (3):
>       vfs: allow custom EOF in generic_file_llseek code
>       ext4: use core vfs llseek code for dir seeks
>       ext3: pass custom EOF to generic_file_llseek_size()
>
> Jan Kara (8):
>       vfs: Move noop_backing_dev_info check from sync into writeback
>       quota: Split dquot_quota_sync() to writeback and cache flushing part
>       quota: Move quota syncing to ->sync_fs method
>       vfs: Reorder operations during sys_sync
>       vfs: Create function for iterating over block devices
>       vfs: Make sys_sync writeout also block device inodes
>       vfs: Remove unnecessary flushing of block devices
>       vfs: Avoid unnecessary WB_SYNC_NONE writeback during sys_sync and reorder sync passes
>
> Julia Lawall (1):
>       fs/direct-io.c: adjust suspicious bit operation
>
> Miklos Szeredi (21):
>       vfs: do_last(): inline lookup_slow()
>       vfs: do_last(): separate O_CREAT specific code
>       vfs: do_last(): common slow lookup
>       vfs: add lookup_open()
>       vfs: lookup_open(): expand lookup_hash()
>       vfs: add i_op->atomic_open()
>       nfs: implement i_op->atomic_open()
>       nfs: clean up ->create in nfs_rpc_ops
>       nfs: don't use nd->intent.open.flags
>       nfs: don't use intents for checking atomic open
>       fuse: implement i_op->atomic_open()
>       cifs: implement i_op->atomic_open()
>       ceph: remove unused arg from ceph_lookup_open()
>       ceph: implement i_op->atomic_open()
>       9p: implement i_op->atomic_open()
>       vfs: remove open intents from nameidata
>       vfs: do_last(): clean up error handling
>       vfs: do_last(): clean up labels
>       vfs: do_last(): clean up bool
>       vfs: do_last(): clean up retry
>       vfs: move O_DIRECT check to common code

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [git pull] vfs.git; pile 1
  2012-07-22 17:34 ` Linus Torvalds
@ 2012-07-22 20:20   ` Al Viro
  2012-07-23  6:09     ` Al Viro
  2012-07-23  8:20     ` Boaz Harrosh
  0 siblings, 2 replies; 11+ messages in thread
From: Al Viro @ 2012-07-22 20:20 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, linux-fsdevel, Stephen Rothwell, Trond Myklebust

On Sun, Jul 22, 2012 at 10:34:10AM -0700, Linus Torvalds wrote:
> I'm not pulling this until the mess with the NFS tree is sorted out.
> Apparently you rebased your (public!) VFS tree, and now half of your
> old pre-rebase patches are in the NFS tree.
> 
> Rebasing public trees IS NOT A VALID OPERATION! Exactly because of
> messes like this.
> 
> So no. No way am I pulling a big VFS tree that apparently has random
> unknown aliased commits in other trees.

*grumble*

OK, with atomic_open series in there (and stomping all over NFS)
I should have expected that kind of thing (i.e. another subsystem
tree doing pulls from vfs.git).  Mea culpa...

FWIW, I've got used to folding fixes back into the offending commits;
that has the same effect as rebase, as far as the trees that pull
from vfs.git are concerned.  Sigh...  Guess I'll do s/.*/&-rebased-at-will/
for branches in there and if somebody needs a stable one, create it
on demand (and yes, this time around it was clearly going to be needed;
again, my apologies for missing that)

OK, I've grabbed nfs tree.  The only real issue was the fixup folded
into one commit in the set they've got....

I think the least painful solution is this: I've created a new branch
(for-linus-2) in there, growing off the parent of merge in nfs.git.
I've put the fixup to kern_path_locked() there as a separate commit
+ stuff that went in for-linus after that point.

Result: for-linus-2 + v3.5 and for-linus + v3.5 give identical trees,
and for-linus-2 merges clean with nfs/nfs-for-3.6.  Would you be OK
with pulling that one?  Again, my apologies to everyone involved ;-/

If you are OK with pulling that one, the summary is unchanged, location is
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus-2

Shortlog:
Al Viro (62):
      get rid of ->mnt_longterm
      get rid of magic in proc_namespace.c
      qnx6: don't bother with ->i_dentry in inode-freeing callback
      cifs: don't bother with ->i_dentry in ->destroy_inode()
      adfs: don't bother with ->i_dentry in ->destroy_inode()
      vfs: update documentation on ->i_dentry handling
      affs: get rid of open-coded list_for_each_entry()
      affs: unobfuscate affs_fix_dcache()
      ocfs2: use list_for_each_entry in ocfs2_find_local_alias()
      ext4: get rid of open-coded d_find_any_alias()
      vfs: switch i_dentry/d_alias to hlist
      coda: use list_for_each_entry
      namei.c: let follow_link() do put_link() on failure
      ->atomic_open() prototype change - pass int * instead of bool *
      don't modify od->filp at all
      make ->atomic_open() return int
      kill opendata->{mnt,dentry}
      kill struct opendata
      fs/namei.c: get do_last() and friends return int
      make finish_no_open() return int
      switch do_dentry_open() to returning int
      fold __dentry_open() into its sole caller
      do_dentry_open(): take initialization of file->f_path to caller
      switch nfs_lookup_check_intent() away from nameidata
      nfs_lookup_verify_inode() - nd is *always* non-NULL here
      fs/nfs/dir.c: switch to passing nd->flags instead of nd wherever possible
      stop passing nameidata * to ->d_revalidate()
      fs/namei.c: don't pass nameidata to d_revalidate()
      fs/namei.c: don't pass namedata to lookup_dcache()
      stop passing nameidata to ->lookup()
      fs/namei.c: don't pass nameidata to __lookup_hash() and lookup_real()
      don't pass nameidata to ->create()
      don't pass nameidata * to vfs_create()
      get rid of kern_path_parent()
      sysfs: switch to ->s_d_op and ->d_release()
      sysfs: just use d_materialise_unique()
      __d_unalias() should refuse to move mountpoints
      debugfs: make sure that debugfs_create_file() gets used only for regulars
      debugfs: fold debugfs_create_by_name() into the only caller
      debugfs: get rid of useless arguments to debugfs_{mkdir,symlink}
      mark_files_ro(): don't bother with mntget/mntput
      do_dentry_open(): close the race with mark_files_ro() in failure exit
      use __lookup_hash() in kern_path_parent()
      signal: make sure we don't get stopped with pending task_work
      trimming task_work: kill ->data
      trim task_work: get rid of hlist
      merge task_work and rcu_head, get rid of separate allocation for keyring case
      move exit_task_work() past exit_files() et.al.
      deal with task_work callbacks adding more work
      switch fput to task_work_add
      aio: now fput() is OK from interrupt context; get rid of manual delayed __fput()
      get rid of ->scm_work_list
      hold task_lock around checks in keyctl
      unobfuscate follow_up() a bit
      tidy up namei.c a bit
      don't expose I_NEW inodes via dentry->d_inode
      ecryptfs: don't reinvent the wheels, please - use struct completion
      zoran: don't bother with struct file * in zoran_map
      spufs: shift dget/mntget towards dentry_open()
      switch dentry_open() to struct path, make it grab references itself
      btrfs: switch btrfs_ioctl_balance() to mnt_want_write_file()
      ext4: switch EXT4_IOC_RESIZE_FS to mnt_want_write_file()

Andrew Morton (1):
      notify_change(): check that i_mutex is held

Artem Bityutskiy (23):
      affs: stop setting bm_flags
      affs: remove useless superblock writeout on unmount
      affs: remove useless superblock writeout on remount
      affs: re-structure superblock locking a bit
      affs: stop using lock_super
      affs: introduce VFS superblock object back-reference
      affs: get rid of affs_sync_super
      hfsplus: make hfsplus_sync_fs static
      hfsplus: amend debugging print
      hfsplus: remove useless check
      hfsplus: get rid of write_super
      hfs: push lock_super down
      hfs: get rid of lock_super
      hfs: remove extra mdb write on unmount
      hfs: simplify a bit checking for R/O
      hfs: introduce VFS superblock object back-reference
      hfs: get rid of hfs_sync_super
      fs/sysv: remove useless write_super call
      fs/sysv: remove another useless write_super call
      fs/sysv: stop using write_super and s_dirt
      fs/ufs: remove extra superblock write on unmount
      fs/ufs: re-arrange the code a bit
      fs/ufs: get rid of write_super

Christoph Hellwig (2):
      fs: move path_put on failure out of ->follow_link
      fs: add nd_jump_link

David Howells (6):
      VFS: Fix the banner comment on lookup_open()
      VFS: Make chown() and lchown() call fchownat()
      VFS: Make clone_mnt()/copy_tree()/collect_mounts() return errors
      VFS: Comment mount following code
      VFS: Pass mount flags to sget()
      VFS: Split inode_permission()

Eric Sandeen (3):
      vfs: allow custom EOF in generic_file_llseek code
      ext4: use core vfs llseek code for dir seeks
      ext3: pass custom EOF to generic_file_llseek_size()

Jan Kara (8):
      vfs: Move noop_backing_dev_info check from sync into writeback
      quota: Split dquot_quota_sync() to writeback and cache flushing part
      quota: Move quota syncing to ->sync_fs method
      vfs: Reorder operations during sys_sync
      vfs: Create function for iterating over block devices
      vfs: Make sys_sync writeout also block device inodes
      vfs: Remove unnecessary flushing of block devices
      vfs: Avoid unnecessary WB_SYNC_NONE writeback during sys_sync and reorder sync passes

Julia Lawall (1):
      fs/direct-io.c: adjust suspicious bit operation

Miklos Szeredi (21):
      vfs: do_last(): inline lookup_slow()
      vfs: do_last(): separate O_CREAT specific code
      vfs: do_last(): common slow lookup
      vfs: add lookup_open()
      vfs: lookup_open(): expand lookup_hash()
      vfs: add i_op->atomic_open()
      nfs: implement i_op->atomic_open()
      nfs: clean up ->create in nfs_rpc_ops
      nfs: don't use nd->intent.open.flags
      nfs: don't use intents for checking atomic open
      fuse: implement i_op->atomic_open()
      cifs: implement i_op->atomic_open()
      ceph: remove unused arg from ceph_lookup_open()
      ceph: implement i_op->atomic_open()
      9p: implement i_op->atomic_open()
      vfs: remove open intents from nameidata
      vfs: do_last(): clean up error handling
      vfs: do_last(): clean up labels
      vfs: do_last(): clean up bool
      vfs: do_last(): clean up retry
      vfs: move O_DIRECT check to common code

Diffstat:
 Documentation/filesystems/Locking         |   11 +-
 Documentation/filesystems/porting         |   21 +-
 Documentation/filesystems/vfs.txt         |   23 +-
 arch/powerpc/platforms/cell/spufs/inode.c |   48 +--
 drivers/base/devtmpfs.c                   |  100 ++--
 drivers/media/video/zoran/zoran.h         |    4 +-
 drivers/media/video/zoran/zoran_driver.c  |    4 +-
 drivers/mtd/mtdsuper.c                    |    4 +-
 fs/9p/v9fs.h                              |    2 +-
 fs/9p/vfs_dentry.c                        |    4 +-
 fs/9p/vfs_inode.c                         |  170 ++++---
 fs/9p/vfs_inode_dotl.c                    |   59 ++-
 fs/9p/vfs_super.c                         |    4 +-
 fs/adfs/dir.c                             |    2 +-
 fs/adfs/super.c                           |    1 -
 fs/affs/affs.h                            |   11 +-
 fs/affs/amigaffs.c                        |   22 +-
 fs/affs/bitmap.c                          |    4 +-
 fs/affs/namei.c                           |    4 +-
 fs/affs/super.c                           |   68 ++-
 fs/afs/dir.c                              |   14 +-
 fs/afs/mntpt.c                            |    4 +-
 fs/afs/super.c                            |    3 +-
 fs/aio.c                                  |   73 +---
 fs/attr.c                                 |    3 +-
 fs/autofs4/dev-ioctl.c                    |    4 +-
 fs/autofs4/root.c                         |    4 +-
 fs/bad_inode.c                            |    4 +-
 fs/befs/linuxvfs.c                        |    4 +-
 fs/bfs/dir.c                              |    4 +-
 fs/block_dev.c                            |   36 ++
 fs/btrfs/inode.c                          |    6 +-
 fs/btrfs/ioctl.c                          |    4 +-
 fs/btrfs/super.c                          |    4 +-
 fs/cachefiles/namei.c                     |    2 +-
 fs/cachefiles/rdwr.c                      |    8 +-
 fs/ceph/dir.c                             |   77 ++--
 fs/ceph/file.c                            |   26 +-
 fs/ceph/super.c                           |    2 +-
 fs/ceph/super.h                           |    6 +-
 fs/cifs/cifsfs.c                          |   11 +-
 fs/cifs/cifsfs.h                          |    7 +-
 fs/cifs/dir.c                             |  448 +++++++++--------
 fs/cifs/inode.c                           |    5 +-
 fs/coda/cache.c                           |   10 +-
 fs/coda/dir.c                             |   14 +-
 fs/configfs/dir.c                         |    2 +-
 fs/cramfs/inode.c                         |    2 +-
 fs/dcache.c                               |   44 +-
 fs/debugfs/inode.c                        |   91 ++--
 fs/devpts/inode.c                         |    6 +-
 fs/direct-io.c                            |    2 +-
 fs/ecryptfs/dentry.c                      |   20 +-
 fs/ecryptfs/ecryptfs_kernel.h             |   14 -
 fs/ecryptfs/inode.c                       |    9 +-
 fs/ecryptfs/kthread.c                     |   73 +--
 fs/ecryptfs/main.c                        |    8 +-
 fs/efs/efs.h                              |    2 +-
 fs/efs/namei.c                            |    3 +-
 fs/exofs/namei.c                          |    4 +-
 fs/exportfs/expfs.c                       |   16 +-
 fs/ext2/namei.c                           |    8 +-
 fs/ext2/super.c                           |    6 +
 fs/ext3/dir.c                             |    3 +-
 fs/ext3/namei.c                           |    8 +-
 fs/ext3/super.c                           |    5 +
 fs/ext4/dir.c                             |   75 +---
 fs/ext4/file.c                            |    9 +-
 fs/ext4/fsync.c                           |   11 +-
 fs/ext4/ioctl.c                           |    4 +-
 fs/ext4/namei.c                           |    8 +-
 fs/ext4/super.c                           |    5 +
 fs/fat/namei_msdos.c                      |    4 +-
 fs/fat/namei_vfat.c                       |   16 +-
 fs/file_table.c                           |   81 +++-
 fs/freevxfs/vxfs_lookup.c                 |    4 +-
 fs/fs-writeback.c                         |    5 +
 fs/fs_struct.c                            |   32 +-
 fs/fuse/dir.c                             |   99 +++--
 fs/gfs2/dentry.c                          |    6 +-
 fs/gfs2/inode.c                           |    7 +-
 fs/gfs2/ops_fstype.c                      |    5 +-
 fs/gfs2/quota.c                           |    4 +-
 fs/gfs2/quota.h                           |    2 +-
 fs/gfs2/super.c                           |    4 +-
 fs/gfs2/sys.c                             |    2 +-
 fs/hfs/dir.c                              |    4 +-
 fs/hfs/extent.c                           |    2 +-
 fs/hfs/hfs_fs.h                           |   15 +-
 fs/hfs/inode.c                            |   16 +-
 fs/hfs/mdb.c                              |   13 +
 fs/hfs/super.c                            |   73 ++--
 fs/hfs/sysdep.c                           |    4 +-
 fs/hfsplus/bitmap.c                       |    4 +-
 fs/hfsplus/dir.c                          |    6 +-
 fs/hfsplus/hfsplus_fs.h                   |    7 +-
 fs/hfsplus/inode.c                        |    8 +-
 fs/hfsplus/super.c                        |   46 ++-
 fs/hostfs/hostfs_kern.c                   |    4 +-
 fs/hpfs/dir.c                             |    2 +-
 fs/hpfs/hpfs_fn.h                         |    2 +-
 fs/hpfs/namei.c                           |    2 +-
 fs/hppfs/hppfs.c                          |   22 +-
 fs/hugetlbfs/inode.c                      |    2 +-
 fs/inode.c                                |    2 +-
 fs/internal.h                             |   10 +-
 fs/isofs/isofs.h                          |    2 +-
 fs/isofs/namei.c                          |    2 +-
 fs/jffs2/dir.c                            |   16 +-
 fs/jfs/namei.c                            |   18 +-
 fs/jfs/super.c                            |    5 +
 fs/libfs.c                                |    6 +-
 fs/logfs/dir.c                            |    4 +-
 fs/logfs/super.c                          |    3 +-
 fs/minix/namei.c                          |    4 +-
 fs/mount.h                                |   13 +-
 fs/namei.c                                |  808 ++++++++++++++++++++---------
 fs/namespace.c                            |  195 ++++----
 fs/ncpfs/dir.c                            |   14 +-
 fs/nfs/dir.c                              |  314 +++++-------
 fs/nfs/getroot.c                          |    2 +-
 fs/nfs/nfs3proc.c                         |    2 +-
 fs/nfs/nfs4proc.c                         |   37 +-
 fs/nfs/proc.c                             |    2 +-
 fs/nfs/super.c                            |    2 +-
 fs/nfsd/vfs.c                             |   14 +-
 fs/nilfs2/namei.c                         |    4 +-
 fs/nilfs2/super.c                         |    4 +-
 fs/notify/fanotify/fanotify_user.c        |    8 +-
 fs/notify/fsnotify.c                      |    3 +-
 fs/ntfs/namei.c                           |    2 +-
 fs/ocfs2/dcache.c                         |   22 +-
 fs/ocfs2/dlmfs/dlmfs.c                    |    2 +-
 fs/ocfs2/namei.c                          |    4 +-
 fs/omfs/dir.c                             |    4 +-
 fs/open.c                                 |  213 +++------
 fs/openpromfs/inode.c                     |    4 +-
 fs/pnode.c                                |    5 +-
 fs/proc/base.c                            |   51 +-
 fs/proc/generic.c                         |    2 +-
 fs/proc/internal.h                        |    6 +-
 fs/proc/namespaces.c                      |    4 +-
 fs/proc/proc_net.c                        |    2 +-
 fs/proc/proc_sysctl.c                     |    6 +-
 fs/proc/root.c                            |   10 +-
 fs/proc_namespace.c                       |    7 +-
 fs/qnx4/namei.c                           |    2 +-
 fs/qnx4/qnx4.h                            |    2 +-
 fs/qnx6/inode.c                           |    1 -
 fs/qnx6/namei.c                           |    2 +-
 fs/qnx6/qnx6.h                            |    2 +-
 fs/quota/dquot.c                          |   24 +-
 fs/quota/quota.c                          |    4 +-
 fs/ramfs/inode.c                          |    2 +-
 fs/read_write.c                           |   18 +-
 fs/reiserfs/namei.c                       |   12 +-
 fs/reiserfs/procfs.c                      |    2 +-
 fs/reiserfs/super.c                       |    5 +
 fs/reiserfs/xattr.c                       |    4 +-
 fs/romfs/super.c                          |    2 +-
 fs/squashfs/namei.c                       |    2 +-
 fs/super.c                                |   22 +-
 fs/sync.c                                 |   63 ++-
 fs/sysfs/dir.c                            |   31 +-
 fs/sysfs/mount.c                          |    4 +-
 fs/sysfs/sysfs.h                          |    1 +
 fs/sysv/inode.c                           |   18 +-
 fs/sysv/namei.c                           |    4 +-
 fs/sysv/sysv.h                            |    1 -
 fs/ubifs/dir.c                            |    4 +-
 fs/ubifs/super.c                          |    3 +-
 fs/udf/namei.c                            |    4 +-
 fs/ufs/balloc.c                           |    8 +-
 fs/ufs/ialloc.c                           |    4 +-
 fs/ufs/namei.c                            |    4 +-
 fs/ufs/super.c                            |  148 +++---
 fs/ufs/ufs.h                              |    5 +
 fs/ufs/ufs_fs.h                           |    1 +
 fs/xfs/xfs_ioctl.c                        |    7 +-
 fs/xfs/xfs_iops.c                         |    6 +-
 include/linux/dcache.h                    |    4 +-
 include/linux/file.h                      |    3 +
 include/linux/fs.h                        |   33 +-
 include/linux/namei.h                     |   18 +-
 include/linux/nfs_xdr.h                   |    2 +-
 include/linux/quota.h                     |    2 +-
 include/linux/quotaops.h                  |    8 +-
 include/linux/sched.h                     |    3 +-
 include/linux/task_work.h                 |   18 +-
 include/linux/tracehook.h                 |    2 +-
 include/linux/types.h                     |    9 +-
 include/net/scm.h                         |    1 -
 init/main.c                               |    3 +-
 ipc/mqueue.c                              |  119 ++---
 kernel/audit_tree.c                       |   10 +-
 kernel/audit_watch.c                      |   25 +-
 kernel/cgroup.c                           |    6 +-
 kernel/exit.c                             |    6 +-
 kernel/fork.c                             |    2 +-
 kernel/irq/manage.c                       |    6 +-
 kernel/signal.c                           |   15 +
 kernel/task_work.c                        |   94 ++--
 mm/shmem.c                                |    2 +-
 net/core/scm.c                            |   22 +-
 security/keys/internal.h                  |    2 +-
 security/keys/keyctl.c                    |   26 +-
 security/keys/process_keys.c              |    5 +-
 security/selinux/hooks.c                  |    3 +-
 security/selinux/include/security.h       |    2 +-
 security/selinux/selinuxfs.c              |    6 +-
 210 files changed, 2609 insertions(+), 2398 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [git pull] vfs.git; pile 1
  2012-07-22 20:20   ` Al Viro
@ 2012-07-23  6:09     ` Al Viro
  2012-07-23  6:49       ` Stephen Rothwell
  2012-07-23  8:20     ` Boaz Harrosh
  1 sibling, 1 reply; 11+ messages in thread
From: Al Viro @ 2012-07-23  6:09 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, linux-fsdevel, Stephen Rothwell, Trond Myklebust

On Sun, Jul 22, 2012 at 09:20:30PM +0100, Al Viro wrote:
> Result: for-linus-2 + v3.5 and for-linus + v3.5 give identical trees,
> and for-linus-2 merges clean with nfs/nfs-for-3.6.  Would you be OK
> with pulling that one?  Again, my apologies to everyone involved ;-/
> 
> If you are OK with pulling that one, the summary is unchanged, location is
> git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus-2

BTW, Stephen, could you confirm that vfs.git#for-linus-2 has no conflicts
with the rest of trees in linux-next?  I've checked the lack of conflicts
with nfs.git and you haven't mentioned any other conflicts, so I hope
that this will do, but I haven't tried pulling and merging the rest of
the stuff in -next; not with the link I'm behind right now... ;-/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [git pull] vfs.git; pile 1
  2012-07-23  6:09     ` Al Viro
@ 2012-07-23  6:49       ` Stephen Rothwell
  0 siblings, 0 replies; 11+ messages in thread
From: Stephen Rothwell @ 2012-07-23  6:49 UTC (permalink / raw)
  To: Al Viro; +Cc: Linus Torvalds, linux-kernel, linux-fsdevel, Trond Myklebust

[-- Attachment #1: Type: text/plain, Size: 1088 bytes --]

Hi Al,

On Mon, 23 Jul 2012 07:09:09 +0100 Al Viro <viro@ZenIV.linux.org.uk> wrote:
>
> On Sun, Jul 22, 2012 at 09:20:30PM +0100, Al Viro wrote:
> > Result: for-linus-2 + v3.5 and for-linus + v3.5 give identical trees,
> > and for-linus-2 merges clean with nfs/nfs-for-3.6.  Would you be OK
> > with pulling that one?  Again, my apologies to everyone involved ;-/
> > 
> > If you are OK with pulling that one, the summary is unchanged, location is
> > git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus-2
> 
> BTW, Stephen, could you confirm that vfs.git#for-linus-2 has no conflicts
> with the rest of trees in linux-next?  I've checked the lack of conflicts
> with nfs.git and you haven't mentioned any other conflicts, so I hope
> that this will do, but I haven't tried pulling and merging the rest of
> the stuff in -next; not with the link I'm behind right now... ;-/

I found not other conlicts with the vfs tree today.  Not that some
conflicts are necessarily a problem.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [git pull] vfs.git; pile 1
  2012-07-22 20:20   ` Al Viro
  2012-07-23  6:09     ` Al Viro
@ 2012-07-23  8:20     ` Boaz Harrosh
  2012-07-23  9:03       ` Al Viro
  1 sibling, 1 reply; 11+ messages in thread
From: Boaz Harrosh @ 2012-07-23  8:20 UTC (permalink / raw)
  To: Al Viro
  Cc: Linus Torvalds, linux-kernel, linux-fsdevel, Stephen Rothwell,
	Trond Myklebust

On 07/22/2012 11:20 PM, Al Viro wrote:

> I think the least painful solution is this: I've created a new branch
> (for-linus-2) in there, growing off the parent of merge in nfs.git.
> I've put the fixup to kern_path_locked() there as a separate commit
> + stuff that went in for-linus after that point.
> 


Does this means that between "kern_path_locked() patch" and it's fixup
the tree is not bisectable? or is it just an enhancement/simplification?

Not having any opinion, just wants to know

Thanks
Boaz 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [git pull] vfs.git; pile 1
  2012-07-23  8:20     ` Boaz Harrosh
@ 2012-07-23  9:03       ` Al Viro
  2012-07-23 16:54         ` Boaz Harrosh
  0 siblings, 1 reply; 11+ messages in thread
From: Al Viro @ 2012-07-23  9:03 UTC (permalink / raw)
  To: Boaz Harrosh
  Cc: Linus Torvalds, linux-kernel, linux-fsdevel, Stephen Rothwell,
	Trond Myklebust

On Mon, Jul 23, 2012 at 11:20:25AM +0300, Boaz Harrosh wrote:
> On 07/22/2012 11:20 PM, Al Viro wrote:
> 
> > I think the least painful solution is this: I've created a new branch
> > (for-linus-2) in there, growing off the parent of merge in nfs.git.
> > I've put the fixup to kern_path_locked() there as a separate commit
> > + stuff that went in for-linus after that point.
> > 
> 
> 
> Does this means that between "kern_path_locked() patch" and it's fixup
> the tree is not bisectable? or is it just an enhancement/simplification?
> 
> Not having any opinion, just wants to know

It is bisectable, all right; lookup_one_len() is OK there (note that
places converted to kern_path_locked() used to use it before the
conversion.  It's just that lookup_one_len() is an overkill - we
have already checked exec permissions on parent and we'd already
calculated the full qstr for last component - both length and hash.
All that is left to do is actual __lookup_hash()...

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [git pull] vfs.git; pile 1
  2012-07-23  9:03       ` Al Viro
@ 2012-07-23 16:54         ` Boaz Harrosh
  0 siblings, 0 replies; 11+ messages in thread
From: Boaz Harrosh @ 2012-07-23 16:54 UTC (permalink / raw)
  To: Al Viro
  Cc: Linus Torvalds, linux-kernel, linux-fsdevel, Stephen Rothwell,
	Trond Myklebust

On 07/23/2012 12:03 PM, Al Viro wrote:

> On Mon, Jul 23, 2012 at 11:20:25AM +0300, Boaz Harrosh wrote:
>> On 07/22/2012 11:20 PM, Al Viro wrote:
>>
>>> I think the least painful solution is this: I've created a new branch
>>> (for-linus-2) in there, growing off the parent of merge in nfs.git.
>>> I've put the fixup to kern_path_locked() there as a separate commit
>>> + stuff that went in for-linus after that point.
>>>
>>
>>
>> Does this means that between "kern_path_locked() patch" and it's fixup
>> the tree is not bisectable? or is it just an enhancement/simplification?
>>
>> Not having any opinion, just wants to know
> 
> It is bisectable, all right; lookup_one_len() is OK there (note that
> places converted to kern_path_locked() used to use it before the
> conversion.  It's just that lookup_one_len() is an overkill - we
> have already checked exec permissions on parent and we'd already
> calculated the full qstr for last component - both length and hash.
> All that is left to do is actual __lookup_hash()...


Ha, right thanks. I rushed through it and was not sure of the motivation.

Sounds good then. Less hassle for everybody.

Thanks

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [git pull] vfs.git pile 1
@ 2017-03-02 12:35 Al Viro
  0 siblings, 0 replies; 11+ messages in thread
From: Al Viro @ 2017-03-02 12:35 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

More sendmsg work; this is a fairly separate isolated stuff (there's
a continuation around lustre, but that one was too late to soak in
-next), thus the separate pull request.  One trivial conflict in
drivers/block/nbd.c, proposed resolution in vfs.git#merge-1

The following changes since commit b4b8664d291ac1998e0f0bcdc96b6397f0fe68b3:

  arm64: don't pull uaccess.h into *.S (2016-12-26 13:05:17 -0500)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.sendmsg

for you to fetch changes up to 4038a2a37e3595c299aecdaa20cb01ceb9c78303:

  Merge branches 'sendmsg.misc' and 'sendmsg.ncpfs' into work.sendmsg (2016-12-26 21:38:34 -0500)

----------------------------------------------------------------
Al Viro (13):
      [drbd] use sock_sendmsg()
      [nbd] switch sock_xmit() to sock_{send,recv}msg()
      [nbd] pass iov_iter to nbd_xmit()
      iscsi_target: deal with short writes on the tx side
      usbip_recv(): switch to sock_recvmsg()
      ceph: switch to sock_recvmsg()
      rds: remove dead code
      afs_send_pages(): use ITER_BVEC
      ceph_tcp_sendpage(): use ITER_BVEC sendmsg
      ncpfs: sendmsg does *not* bugger iovec these days
      ncpfs: don't mess with manually advancing iovec on send
      ncpfs: switch to sock_sendmsg()
      Merge branches 'sendmsg.misc' and 'sendmsg.ncpfs' into work.sendmsg

 drivers/block/drbd/drbd_main.c           |  11 ++-
 drivers/block/nbd.c                      |  76 +++++++++------------
 drivers/target/iscsi/iscsi_target_util.c |  64 +++++++-----------
 drivers/usb/usbip/usbip_common.c         |  32 +++------
 fs/afs/rxrpc.c                           |  15 ++---
 fs/ncpfs/sock.c                          | 111 ++++++++++++-------------------
 net/ceph/messenger.c                     |  44 +++++++-----
 net/rds/page.c                           |  29 --------
 net/rds/rds.h                            |   7 --
 9 files changed, 147 insertions(+), 242 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [git pull] vfs.git pile 1
@ 2014-10-12 23:23 Al Viro
  0 siblings, 0 replies; 11+ messages in thread
From: Al Viro @ 2014-10-12 23:23 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

The big thing in this pile is Eric's unmount-on-rmdir series; we finally 
have everything we need for that.  The final piece of prereqs is delayed
mntput() - now filesystem shutdown always happens on shallow stack.
Other than that, we have several new primitives for iov_iter (Matt Wilcox,
culled from his XIP-related series) pushing the conversion to ->read_iter()/
->write_iter() a bit more, a bunch of fs/dcache.c cleanups and fixes
(including the external name refcounting, which gives consistent behaviour
of d_move() wrt procfs symlinks for long and short names alike) and
assorted cleanups and fixes all over the place.

This is just the first pile; there's a lot of stuff from various people that
ought to go in this window.  Starting with unionmount/overlayfs mess... ;-/

Please, pull from the usual place:
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Shortlog:
Al Viro (38):
      missing data dependency barrier in prepend_name()
      Allow sharing external names after __d_move()
      delayed mntput
      d_prune_alias(): just lock the parent and call __dentry_kill()
      dcache.c: call ->d_prune() regardless of d_unhashed()
      handle suicide on late failure exits in execve() in search_binary_handler()
      constify file_inode()
      [jffs2] kill wbuf_queued/wbuf_dwork_lock
      cifs: switch to use of %p[dD]
      9p: switch to %p[dD]
      ashmem: use vfs_llseek()
      vme: don't open-code fixed_size_llseek()
      cachefiles_write_page(): switch to __kernel_write()
      carma-fpga: switch to fixed_size_llseek()
      carma-fpga: switch to simple_read_from_buffer()
      rsxx debugfs inanity
      dma-buf: don't open-code atomic_long_read()
      switch /dev/zero and /dev/full to ->read_iter()
      switch hci_vhci to ->write_iter()
      switch logger to ->write_iter()
      switch /dev/kmsg to ->write_iter()
      saner perf_atoll()
      missing annotation in fs/file.c
      nouveau: __iomem misannotations
      android: ->f_op is never NULL
      ecryptfs: ->f_op is never NULL
      [s390] remove pointless assignment of ->f_op in vmlogrdr ->open()
      jfs: don't hash direct inode
      f_fs: saner API for ffs_sb_create_file()
      gadgetfs: saner API for gadgetfs_create_file()
      [infiniband] remove pointless assignments
      gfs2_atomic_open(): skip lookups on hashed dentry
      ncpfs: use list_for_each_entry() for d_subdirs walk
      fix misuses of f_count() in ppp and netlink
      let path_init() failures treated the same way as subsequent link_path_walk()
      take dname_external() into fs/dcache.c
      don't need that forward declaration of struct nameidata in dcache.h anymore
      reiserfs: remove pointless forward declaration of struct nameidata

Daeseok Youn (1):
      dcache: Fix no spaces at the start of a line in dcache.c

Eric Biggers (2):
      vfs: Deduplicate code shared by xattr system calls operating on paths
      fs/file_table.c: Update alloc_file() comment

Eric W. Biederman (12):
      vfs: Document the effect of d_revalidate on d_find_alias
      vfs: More precise tests in d_invalidate
      vfs: Don't allow overwriting mounts in the current mount namespace
      vfs: Keep a list of mounts on a mount point
      vfs: factor out lookup_mountpoint from new_mountpoint
      vfs: Add a function to lazily unmount all mounts from any dentry.
      vfs: Lazily remove mounts on unlinked files and directories.
      vfs: Remove unnecessary calls of check_submounts_and_drop
      vfs: Merge check_submounts_and_drop and d_invalidate
      vfs: Make d_invalidate return void
      vfs: Remove d_drop calls from d_revalidate implementations
      proc: Update proc_flush_task_mnt to use d_invalidate

Ian Kent (1):
      autofs - remove obsolete d_invalidate() from expire

Kirill Smelkov (1):
      vfs: fix typo in s_op->alloc_inode() documentation

Matthew Wilcox (1):
      Add copy_to_iter(), copy_from_iter() and iov_iter_zero()

Mikulas Patocka (1):
      fs: make cont_expand_zero interruptible

Seunghun Lee (1):
      vfs: move getname() from callers to do_mount()

Tetsuo Handa (1):
      fs: Fix theoretical division by 0 in super_cache_scan().

Tim Gardner (1):
      fs: namespace: suppress 'may be used uninitialized' warnings

Diffstat:
 Documentation/filesystems/vfs.txt        |    2 +-
 arch/alpha/kernel/osf_sys.c              |   23 ++-
 arch/x86/ia32/ia32_aout.c                |   21 +--
 drivers/block/rsxx/core.c                |   81 ++--------
 drivers/bluetooth/hci_vhci.c             |   22 +--
 drivers/char/mem.c                       |   56 ++-----
 drivers/dma-buf/dma-buf.c                |    2 +-
 drivers/gpu/drm/nouveau/nouveau_nvif.c   |    4 +-
 drivers/gpu/drm/nouveau/nvif/driver.h    |    4 +-
 drivers/gpu/drm/nouveau/nvif/object.h    |    6 +-
 drivers/infiniband/hw/ipath/ipath_fs.c   |    1 -
 drivers/infiniband/hw/qib/qib_fs.c       |    1 -
 drivers/misc/carma/carma-fpga-program.c  |   30 +---
 drivers/net/ppp/ppp_generic.c            |    2 +-
 drivers/s390/char/vmlogrdr.c             |    1 -
 drivers/staging/android/ashmem.c         |    2 +-
 drivers/staging/android/ion/compat_ion.c |    2 +-
 drivers/staging/android/logger.c         |  103 +++---------
 drivers/staging/vme/devices/vme_user.c   |   28 +---
 drivers/usb/gadget/function/f_fs.c       |   24 ++-
 drivers/usb/gadget/legacy/inode.c        |   26 ++-
 fs/9p/fid.c                              |    4 +-
 fs/9p/vfs_addr.c                         |    4 +-
 fs/9p/vfs_dentry.c                       |    8 +-
 fs/9p/vfs_dir.c                          |    4 +-
 fs/9p/vfs_file.c                         |    8 +-
 fs/9p/vfs_inode.c                        |   32 ++--
 fs/9p/vfs_inode_dotl.c                   |    8 +-
 fs/afs/dir.c                             |    5 -
 fs/autofs4/expire.c                      |    6 -
 fs/binfmt_aout.c                         |   25 +--
 fs/binfmt_elf.c                          |   25 +--
 fs/binfmt_elf_fdpic.c                    |   24 +--
 fs/btrfs/ioctl.c                         |    5 +-
 fs/buffer.c                              |    5 +
 fs/cachefiles/rdwr.c                     |   48 +++---
 fs/ceph/dir.c                            |    1 -
 fs/cifs/dir.c                            |   14 +-
 fs/cifs/file.c                           |   12 +-
 fs/cifs/inode.c                          |   12 +-
 fs/cifs/readdir.c                        |    6 +-
 fs/compat.c                              |   28 ++--
 fs/dcache.c                              |  259 +++++++++++++++---------------
 fs/ecryptfs/file.c                       |    2 +-
 fs/exec.c                                |   17 +-
 fs/file.c                                |    1 +
 fs/file_table.c                          |   12 +-
 fs/fuse/dir.c                            |    7 +-
 fs/gfs2/dentry.c                         |    3 -
 fs/gfs2/inode.c                          |    5 +
 fs/internal.h                            |    2 +-
 fs/jffs2/jffs2_fs_sb.h                   |    2 -
 fs/jffs2/wbuf.c                          |   17 +-
 fs/jfs/super.c                           |    2 +-
 fs/kernfs/dir.c                          |   11 --
 fs/mount.h                               |   25 ++-
 fs/namei.c                               |   27 ++--
 fs/namespace.c                           |  203 ++++++++++++++++-------
 fs/ncpfs/dir.c                           |    6 +-
 fs/ncpfs/ncplib_kernel.h                 |   14 +-
 fs/nfs/dir.c                             |    7 +-
 fs/proc/base.c                           |   10 +-
 fs/proc/fd.c                             |    2 -
 fs/read_write.c                          |    2 +
 fs/reiserfs/xattr.h                      |    1 -
 fs/super.c                               |    2 +
 fs/xattr.c                               |  116 +++++--------
 include/linux/dcache.h                   |    9 +-
 include/linux/fs.h                       |    5 +-
 include/linux/uio.h                      |    3 +
 kernel/printk/printk.c                   |   20 +--
 mm/iov_iter.c                            |  240 +++++++++++++++++++++++++--
 net/netlink/af_netlink.c                 |    2 +-
 tools/perf/util/string.c                 |   90 ++++-------
 74 files changed, 889 insertions(+), 960 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [git pull] vfs.git pile 1
@ 2014-08-11 17:05 Al Viro
  0 siblings, 0 replies; 11+ messages in thread
From: Al Viro @ 2014-08-11 17:05 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

	Stuff in there:
1) acct.c fixes and general rework of mnt_pin mechanism.  That allows to go for
delayed-mntput stuff, which will permit mntput() on deep stack without worrying
about stack overflows - fs shutdown will happen on shallow stack.  IOW, we
can do Eric's umount-on-rmdir series without introducing tons of stack
overflows on new mntput() call chains it introduces.
2) Bruce's d_splice_alias() patches
3) more Miklos' rename() stuff.
4) a couple of regression fixes (stable fodder, in the end of branch)
and a fix for API idiocy in iov_iter.c.

There definitely will be another pile, maybe even two.  I'd like to
get Eric's series in this time, but even if we miss it, it'll go right
in the beginning of for-next in the next cycle - the tricky part of
prereqs is in this pile.

Please, pull from the usual place:
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

There are two conflicts - one in fs/namespace.c (hlist_add_after_rcu()
got moved into helper function in this branch and replaced with
hlist_add_behind_rcu() in mainline) and another in kernel/acct.c - there
it's whitespace noise from "kernel/acct.c: fix coding style warnings and errors"
which got rebased into this branch *and* sent in original form by akpm.
Resolution is to pick kernel/acct.c from this branch.  Alternatively, I
can drop that commit from the branch, but that will mean a late rebase
or having even messier conflict in kernel/acct.c, with the same contents
of that file after conflict resolution.  Up to you, but I think it's less
PITA to leave it as is...  See vfs.git#proposed-merge for my take on the
merge.

Shortlog:
Al Viro (20):
      acct: encode_comp_t(0) is 0, fortunately...
      acct: switch to __kernel_write()
      separate namespace-independent parts of filling acct_t
      split the slow path in acct_process() off
      acct() should honour the limits from the very beginning
      acct: serialize acct_on()
      acct: new lifetime rules
      acct: simplify check_free_space()
      acct: get rid of acct_list
      acct: get rid of acct_lock for acct->count
      drop ->s_umount around acct_auto_close()
      make acct_kill() wait for file closing.
      acct: move mnt_pin() upwards.
      start carving bsd_acct_struct up
      take fs_pin stuff to fs/*
      make fs/{namespace,super}.c forget about acct.h
      death to mnt_pinned
      switch iov_iter_get_pages() to passing maximal number of pages
      __generic_file_write_iter(): fix handling of sync error after DIO
      fix copy_tree() regression

Fengguang Wu (1):
      fs: mark __d_obtain_alias static

Ionut Alexa (1):
      kernel/acct.c: fix coding style warnings and errors

J. Bruce Fields (10):
      namei: trivial fix to vfs_rename_dir comment
      dcache: move d_splice_alias
      dcache: close d_move race in d_splice_alias
      dcache: d_splice_alias mustn't create directory aliases
      dcache: d_splice_alias should ignore DCACHE_DISCONNECTED
      dcache: d_obtain_alias callers don't all want DISCONNECTED
      dcache: remove unused d_find_alias parameter
      dcache: d_find_alias needn't recheck IS_ROOT && DCACHE_DISCONNECTED
      exportfs: update Exporting documentation
      dcache: d_splice_alias should detect loops

Miklos Szeredi (7):
      fs: call rename2 if exists
      bad_inode: add ->rename2()
      btrfs: add RENAME_NOREPLACE
      shmem: support RENAME_NOREPLACE
      shmem: support RENAME_EXCHANGE
      hostfs: support rename flags
      cifs: support RENAME_NOREPLACE

NeilBrown (1):
      VFS: allow ->d_manage() to declare -EISDIR in rcu_walk mode.

Diffstat:
 Documentation/filesystems/nfs/Exporting |   38 ++-
 Documentation/filesystems/vfs.txt       |    3 +-
 fs/Makefile                             |    2 +-
 fs/bad_inode.c                          |    7 +-
 fs/btrfs/inode.c                        |   12 +-
 fs/btrfs/super.c                        |    9 +-
 fs/ceph/super.c                         |    2 +-
 fs/cifs/cifsfs.c                        |    2 +-
 fs/cifs/cifsfs.h                        |    4 +-
 fs/cifs/inode.c                         |   14 +-
 fs/dcache.c                             |  196 ++++++++-----
 fs/direct-io.c                          |    2 +-
 fs/ext4/namei.c                         |    1 -
 fs/fs_pin.c                             |   78 +++++
 fs/fuse/dir.c                           |    7 -
 fs/fuse/file.c                          |    4 +-
 fs/hostfs/hostfs.h                      |    1 +
 fs/hostfs/hostfs_kern.c                 |   30 +-
 fs/hostfs/hostfs_user.c                 |   28 ++
 fs/internal.h                           |    7 +-
 fs/mount.h                              |    2 +-
 fs/namei.c                              |   34 ++-
 fs/namespace.c                          |   67 +++--
 fs/nfs/getroot.c                        |    2 +-
 fs/nilfs2/super.c                       |    2 +-
 fs/super.c                              |   19 +-
 include/linux/acct.h                    |    4 -
 include/linux/dcache.h                  |    1 +
 include/linux/fs.h                      |    2 +
 include/linux/fs_pin.h                  |   17 ++
 include/linux/mount.h                   |    4 +-
 include/linux/uio.h                     |    2 +-
 kernel/acct.c                           |  484 ++++++++++++++-----------------
 mm/filemap.c                            |    2 +-
 mm/iov_iter.c                           |   17 +-
 mm/shmem.c                              |   32 +-
 36 files changed, 661 insertions(+), 477 deletions(-)
 create mode 100644 fs/fs_pin.c
 create mode 100644 include/linux/fs_pin.h

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2017-03-02 13:05 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-22 10:09 [git pull] vfs.git; pile 1 Al Viro
2012-07-22 17:34 ` Linus Torvalds
2012-07-22 20:20   ` Al Viro
2012-07-23  6:09     ` Al Viro
2012-07-23  6:49       ` Stephen Rothwell
2012-07-23  8:20     ` Boaz Harrosh
2012-07-23  9:03       ` Al Viro
2012-07-23 16:54         ` Boaz Harrosh
2014-08-11 17:05 [git pull] vfs.git " Al Viro
2014-10-12 23:23 Al Viro
2017-03-02 12:35 Al Viro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).