linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [git pull] vfs pile 1
@ 2012-01-05  2:23 Al Viro
  2012-01-08 23:04 ` Linus Torvalds
  0 siblings, 1 reply; 33+ messages in thread
From: Al Viro @ 2012-01-05  2:23 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

That's pile 1 out of at least 4; this one is mostly vfsmount gutting.  The
next one will be umode_t stuff...  Please, pull from the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Shortlog:
Al Viro (73):
      pull manipulations of rpc_cred inside alloc_nfs_open_context()
      trim fs/internal.h
      switch a bunch of places to mnt_want_write_file()
      new helpers: fh_{want,drop}_write()
      vfs: kill pointless helpers in namespace.c
      vfs: new internal helper: mnt_has_parent(mnt)
      vfs: more mnt_parent cleanups
      vfs: add missing parens in pnode.h macros
      unexport put_mnt_ns(), make create_mnt_ns() static outright
      vfs: dentry_reset_mounted() doesn't use vfsmount argument
      tomoyo: stop including hell knows what
      btrfs, nfs, apparmor: don't pull mnt_namespace.h for no reason...
      vfs: kill ->mnt_devname use in afs printks
      make nfs_follow_remote_path() handle ERR_PTR() passed as root_mnt
      vfs: convert fs_supers to hlist
      vfs: make do_kern_mount() static
      constify seq_file stuff
      vfs: mnt_drop_write_file()
      vfs: fix the stupidity with i_dentry in inode destructors
      vfs: pipe.c is really non-modular
      get rid of timer in kern/acct.c
      vfs: for usbfs, etc. internal vfsmounts ->mnt_sb->s_root == ->mnt_root
      vfs: live vfsmounts never have NULL ->mnt_sb
      vfs: new helper - vfs_ustat()
      vfs: fix the rest of sget() races
      vfs: start hiding vfsmount guts series
      vfs: spread struct mount - __lookup_mnt() result
      vfs: spread struct mount - __propagate_umount() argument
      vfs: spread struct mount - namespace.c internal iterators
      vfs: spread struct mount - attach_mnt/detach_mnt
      vfs: spread struct mount - commit_tree
      vfs: spread struct mount - mount group id handling
      vfs: spread struct mount - attach_recursive_mnt
      vfs: spread struct mount - tree_contains_unbindable
      vfs: spread struct mount - alloc_vfsmnt/free_vfsmnt/mnt_alloc_id/mnt_free_id
      vfs: spread struct mount - change_mnt_propagation/set_mnt_shared
      vfs: spread struct mount - clone_mnt/copy_tree result
      vfs: spread struct mount to remaining users of ->mnt_hash
      vfs: the first spoils - mnt_hash moved
      vfs: spread struct mount - umount_tree argument
      vfs: spread struct mount - shrink_submounts/select_submounts
      vfs: spread struct mount - clone_mnt/copy_tree argument
      vfs: spread struct mount mnt_set_mountpoint child argument
      vfs: spread struct mount - do_umount/propagate_mount_busy
      vfs: spread struct mount - mnt_has_parent
      vfs: spread struct mount - is_path_reachable
      vfs: mnt_parent moved to struct mount
      vfs: now it can be done - make mnt_parent point to struct mount
      vfs: move mnt_mountpoint to struct mount
      vfs: spread struct mount - work with counters
      vfs: all counters taken to struct mount
      vfs: take mnt_child/mnt_mounts to struct mount
      vfs: spread struct mount - get_dominating_id / do_make_slave
      vfs: spread struct mount - shared subtree iterators
      vfs: spread struct mount - propagate_mnt()
      vfs: spread struct mount - remaining argument of mnt_set_mountpoint()
      vfs: take mnt_master to struct mount
      vfs: and now we can make ->mnt_master point to struct mount
      vfs: take mnt_share/mnt_slave/mnt_slave_list and mnt_expire to struct mount
      vfs: spread struct mount - do_add_mount and graft_tree
      vfs: spread struct mount - mntput_no_expire
      vfs: mnt_ns moved to struct mount
      vfs: mnt_id/mnt_group_id moved
      vfs: move the rest of int fields to struct mount
      vfs: switch pnode.h macros to struct mount *
      vfs: move mnt_list to struct mount
      vfs: move mnt_devname
      vfs: move fsnotify junk to struct mount
      vfs: spread struct mount - remaining argument of next_mnt()
      vfs: opencode mntget() mnt_set_mountpoint()
      vfs: take /proc/*/mounts and friends to fs/proc_namespace.c
      switch mnt_namespace ->root to struct mount
      vfs: trim includes a bit

Diffstat:
 arch/ia64/kernel/perfmon.c                |    2 +-
 arch/parisc/hpux/sys_hpux.c               |    9 +-
 arch/powerpc/platforms/cell/spufs/inode.c |    1 -
 drivers/staging/pohmelfs/inode.c          |    1 -
 drivers/usb/core/inode.c                  |   11 +-
 fs/9p/vfs_inode.c                         |    1 -
 fs/Makefile                               |    2 +
 fs/affs/super.c                           |    1 -
 fs/afs/mntpt.c                            |    4 +-
 fs/afs/super.c                            |    1 -
 fs/befs/linuxvfs.c                        |    1 -
 fs/bfs/inode.c                            |    1 -
 fs/block_dev.c                            |    8 +-
 fs/btrfs/inode.c                          |    1 -
 fs/btrfs/ioctl.c                          |   22 +-
 fs/btrfs/super.c                          |    1 -
 fs/ceph/inode.c                           |    1 -
 fs/coda/inode.c                           |    1 -
 fs/compat.c                               |    9 +-
 fs/configfs/dir.c                         |    4 +-
 fs/dcache.c                               |   37 +--
 fs/debugfs/inode.c                        |    2 +-
 fs/ecryptfs/super.c                       |    1 -
 fs/efs/super.c                            |    1 -
 fs/exec.c                                 |    2 +-
 fs/exofs/super.c                          |    1 -
 fs/ext2/ioctl.c                           |   12 +-
 fs/ext2/super.c                           |    1 -
 fs/ext3/ioctl.c                           |   20 +-
 fs/ext3/super.c                           |    1 -
 fs/ext4/ioctl.c                           |   28 +-
 fs/ext4/super.c                           |    1 -
 fs/fat/file.c                             |    4 +-
 fs/fat/inode.c                            |    1 -
 fs/fhandle.c                              |    4 +-
 fs/filesystems.c                          |    1 -
 fs/freevxfs/vxfs_inode.c                  |    1 -
 fs/fuse/inode.c                           |    1 -
 fs/gfs2/file.c                            |    4 +-
 fs/gfs2/super.c                           |    1 -
 fs/hfs/super.c                            |    1 -
 fs/hfsplus/ioctl.c                        |    4 +-
 fs/hfsplus/super.c                        |    1 -
 fs/hostfs/hostfs_kern.c                   |    1 -
 fs/hpfs/super.c                           |    1 -
 fs/hppfs/hppfs.c                          |    3 +-
 fs/hugetlbfs/inode.c                      |    1 -
 fs/inode.c                                |    5 +-
 fs/internal.h                             |   27 +-
 fs/isofs/inode.c                          |    1 -
 fs/jffs2/super.c                          |    1 -
 fs/jfs/ioctl.c                            |    4 +-
 fs/jfs/super.c                            |    1 -
 fs/logfs/inode.c                          |    1 -
 fs/minix/inode.c                          |    1 -
 fs/mount.h                                |   75 +++
 fs/namei.c                                |   37 +-
 fs/namespace.c                            |  773 +++++++++++------------------
 fs/ncpfs/inode.c                          |    1 -
 fs/ncpfs/ioctl.c                          |    2 +-
 fs/nfs/dir.c                              |   13 +-
 fs/nfs/inode.c                            |   41 +-
 fs/nfs/super.c                            |   19 +-
 fs/nfsd/nfs4proc.c                        |    4 +-
 fs/nfsd/nfs4recover.c                     |   12 +-
 fs/nfsd/vfs.c                             |   34 +-
 fs/nfsd/vfs.h                             |   10 +
 fs/nilfs2/ioctl.c                         |   22 +-
 fs/nilfs2/super.c                         |    2 -
 fs/notify/fanotify/fanotify_user.c        |    6 +-
 fs/notify/fsnotify.c                      |    9 +-
 fs/notify/vfsmount_mark.c                 |   19 +-
 fs/ntfs/inode.c                           |    1 -
 fs/ocfs2/dlmfs/dlmfs.c                    |    1 -
 fs/ocfs2/ioctl.c                          |    4 +-
 fs/ocfs2/move_extents.c                   |    4 +-
 fs/ocfs2/super.c                          |    1 -
 fs/open.c                                 |    2 +-
 fs/openpromfs/inode.c                     |    1 -
 fs/pipe.c                                 |    7 -
 fs/pnode.c                                |  120 ++---
 fs/pnode.h                                |   36 +-
 fs/proc/base.c                            |  114 -----
 fs/proc/inode.c                           |    1 -
 fs/proc/namespaces.c                      |    1 -
 fs/proc_namespace.c                       |  331 ++++++++++++
 fs/qnx4/inode.c                           |    1 -
 fs/reiserfs/ioctl.c                       |    8 +-
 fs/reiserfs/super.c                       |    1 -
 fs/romfs/super.c                          |    1 -
 fs/seq_file.c                             |   10 +-
 fs/squashfs/super.c                       |    1 -
 fs/statfs.c                               |   21 +-
 fs/super.c                                |   50 ++-
 fs/sysv/inode.c                           |    1 -
 fs/ubifs/ioctl.c                          |    4 +-
 fs/ubifs/super.c                          |    1 -
 fs/udf/super.c                            |    1 -
 fs/ufs/super.c                            |    1 -
 fs/xattr.c                                |    4 +-
 fs/xfs/xfs_iget.c                         |    1 -
 fs/xfs/xfs_ioctl.c                        |    8 +-
 fs/xfs/xfs_ioctl32.c                      |    8 +-
 include/linux/fs.h                        |    7 +-
 include/linux/mnt_namespace.h             |   31 +-
 include/linux/mount.h                     |   39 +--
 include/linux/nfs_fs.h                    |    2 +-
 include/linux/seq_file.h                  |   10 +-
 ipc/mqueue.c                              |    1 -
 kernel/acct.c                             |   40 +--
 mm/shmem.c                                |    1 -
 net/sunrpc/rpc_pipe.c                     |    1 -
 security/apparmor/path.c                  |    1 -
 security/inode.c                          |    2 +-
 security/tomoyo/realpath.c                |    9 +-
 115 files changed, 1067 insertions(+), 1161 deletions(-)
 create mode 100644 fs/mount.h
 create mode 100644 fs/proc_namespace.c

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

* Re: [git pull] vfs pile 1
  2012-01-05  2:23 [git pull] vfs pile 1 Al Viro
@ 2012-01-08 23:04 ` Linus Torvalds
  2012-01-08 23:50   ` Al Viro
  2012-01-11 11:58   ` Christoph Hellwig
  0 siblings, 2 replies; 33+ messages in thread
From: Linus Torvalds @ 2012-01-08 23:04 UTC (permalink / raw)
  To: Al Viro, Miklos Szeredi; +Cc: linux-kernel, linux-fsdevel, Toshiyuki Okajima

Hmm.

Al, Miklos, I just triggered the new inc_link() warning three times in
very close succession by just doing a simple

              perf record -f -e cycles:pp make -j

(I don't think the "perf record" part was actually required or
relevant, although it may have been instrumental in triggering just
the right timing)

This was in a fully built tree, I'm just checking

The warning trace looks like this:

  [ 6933.446125] ------------[ cut here ]------------
  [ 6933.446131] WARNING: at fs/inode.c:349 inc_nlink+0x30/0x40()
  [ 6933.446133] Hardware name: System Product Name
  [ 6933.446135] Pid: 22955, comm: perf Not tainted
3.2.0-03190-g972b2c719990 #72
  [ 6933.446137] Call Trace:
  [ 6933.446143]  [<ffffffff8102ee15>] warn_slowpath_common+0x75/0xb0
  [ 6933.446145]  [<ffffffff8102ef15>] warn_slowpath_null+0x15/0x20
  [ 6933.446147]  [<ffffffff810f1450>] inc_nlink+0x30/0x40
  [ 6933.446151]  [<ffffffff8116f333>] ext4_symlink+0x113/0x2c0
  [ 6933.446154]  [<ffffffff810e7b01>] vfs_symlink+0xa1/0xf0
  [ 6933.446157]  [<ffffffff810e7c03>] sys_symlinkat+0xb3/0xd0
  [ 6933.446159]  [<ffffffff810e7c31>] sys_symlink+0x11/0x20
  [ 6933.446162]  [<ffffffff816916a2>] system_call_fastpath+0x16/0x1b
  [ 6933.446164] ---[ end trace 550d4b2eb6b8fbc9 ]---

and the three warnings all triggered within 2/100th of a second of
that one (the last one had a timestamp of 6933.465678), so they are
probably all related to the same thing happening.

Any ideas?

                     Linus

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

* Re: [git pull] vfs pile 1
  2012-01-08 23:04 ` Linus Torvalds
@ 2012-01-08 23:50   ` Al Viro
  2012-01-08 23:53     ` Al Viro
  2012-01-09 15:11     ` Ted Ts'o
  2012-01-11 11:58   ` Christoph Hellwig
  1 sibling, 2 replies; 33+ messages in thread
From: Al Viro @ 2012-01-08 23:50 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Sun, Jan 08, 2012 at 03:04:30PM -0800, Linus Torvalds wrote:
> Hmm.
> 
> Al, Miklos, I just triggered the new inc_link() warning three times in
> very close succession by just doing a simple
> 
>               perf record -f -e cycles:pp make -j
> 
> (I don't think the "perf record" part was actually required or
> relevant, although it may have been instrumental in triggering just
> the right timing)
> 
> This was in a fully built tree, I'm just checking
> 
> The warning trace looks like this:
> 
>   [ 6933.446125] ------------[ cut here ]------------
>   [ 6933.446131] WARNING: at fs/inode.c:349 inc_nlink+0x30/0x40()
>   [ 6933.446133] Hardware name: System Product Name
>   [ 6933.446135] Pid: 22955, comm: perf Not tainted
> 3.2.0-03190-g972b2c719990 #72
>   [ 6933.446137] Call Trace:
>   [ 6933.446143]  [<ffffffff8102ee15>] warn_slowpath_common+0x75/0xb0
>   [ 6933.446145]  [<ffffffff8102ef15>] warn_slowpath_null+0x15/0x20
>   [ 6933.446147]  [<ffffffff810f1450>] inc_nlink+0x30/0x40
>   [ 6933.446151]  [<ffffffff8116f333>] ext4_symlink+0x113/0x2c0
>   [ 6933.446154]  [<ffffffff810e7b01>] vfs_symlink+0xa1/0xf0
>   [ 6933.446157]  [<ffffffff810e7c03>] sys_symlinkat+0xb3/0xd0
>   [ 6933.446159]  [<ffffffff810e7c31>] sys_symlink+0x11/0x20
>   [ 6933.446162]  [<ffffffff816916a2>] system_call_fastpath+0x16/0x1b
>   [ 6933.446164] ---[ end trace 550d4b2eb6b8fbc9 ]---
> 
> and the three warnings all triggered within 2/100th of a second of
> that one (the last one had a timestamp of 6933.465678), so they are
> probably all related to the same thing happening.

WTF is ext4_symlink() doing in case of long symlinks?  Look:
                drop_nlink(inode);
                err = ext4_orphan_add(handle, inode);
                ext4_journal_stop(handle);
[write symlink body]
                inc_nlink(inode);
                err = ext4_orphan_del(handle, inode);
oh, I see...  The comment above that re deadlocks and inability to do that
in a single transaction ;-/

OK, try this; that's equivalent to what they are doing and will not WARN_ON();
I hadn't checked other filesystems for similar tricks yet, so this has a good
chance of being incomplete.

diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 86edc45..2043f48 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -2315,7 +2315,7 @@ retry:
 			err = PTR_ERR(handle);
 			goto err_drop_inode;
 		}
-		inc_nlink(inode);
+		set_nlink(inode, 1);
 		err = ext4_orphan_del(handle, inode);
 		if (err) {
 			ext4_journal_stop(handle);

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

* Re: [git pull] vfs pile 1
  2012-01-08 23:50   ` Al Viro
@ 2012-01-08 23:53     ` Al Viro
  2012-01-09  0:11       ` Linus Torvalds
  2012-01-09 15:11     ` Ted Ts'o
  1 sibling, 1 reply; 33+ messages in thread
From: Al Viro @ 2012-01-08 23:53 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Sun, Jan 08, 2012 at 11:50:40PM +0000, Al Viro wrote:

> WTF is ext4_symlink() doing in case of long symlinks?  Look:
>                 drop_nlink(inode);
>                 err = ext4_orphan_add(handle, inode);
>                 ext4_journal_stop(handle);
> [write symlink body]
>                 inc_nlink(inode);
>                 err = ext4_orphan_del(handle, inode);
> oh, I see...  The comment above that re deadlocks and inability to do that
> in a single transaction ;-/
> 
> OK, try this; that's equivalent to what they are doing and will not WARN_ON();
> I hadn't checked other filesystems for similar tricks yet, so this has a good
> chance of being incomplete.

... and sure enough, ext3 has the same piece of fun.

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

* Re: [git pull] vfs pile 1
  2012-01-08 23:53     ` Al Viro
@ 2012-01-09  0:11       ` Linus Torvalds
  2012-01-09  0:25         ` Al Viro
  0 siblings, 1 reply; 33+ messages in thread
From: Linus Torvalds @ 2012-01-09  0:11 UTC (permalink / raw)
  To: Al Viro; +Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Sun, Jan 8, 2012 at 3:53 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>
> ... and sure enough, ext3 has the same piece of fun.

Hmm. Do we want to have the s_remove_count games for this "temporarily
zero nlink" case? Maybe we don't want to do drop_nlink/set_nlink? Does
it matter?

Anyway, mind sending me a patch with changelog and sign-off?

                       Linus

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

* Re: [git pull] vfs pile 1
  2012-01-09  0:11       ` Linus Torvalds
@ 2012-01-09  0:25         ` Al Viro
  2012-01-09  0:39           ` Linus Torvalds
  0 siblings, 1 reply; 33+ messages in thread
From: Al Viro @ 2012-01-09  0:25 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Sun, Jan 08, 2012 at 04:11:17PM -0800, Linus Torvalds wrote:
> On Sun, Jan 8, 2012 at 3:53 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > ... and sure enough, ext3 has the same piece of fun.
> 
> Hmm. Do we want to have the s_remove_count games for this "temporarily
> zero nlink" case? Maybe we don't want to do drop_nlink/set_nlink? Does
> it matter?

The thing is, the total result in case of failure should be drop_nlink
with s_remove_count bumped.  We could turn that into
	set i_nlink to 0, without touching s_remove_count
	write the body
	if failed, bump s_remove_count and bugger off
	otherwise set i_nlink to 1, without touching s_remove_count
but that's far more intrusive change than what I posted.

> Anyway, mind sending me a patch with changelog and sign-off?

Sure, will do.  I have several more fixes in my tree right now (including
such gems as double kfree() in devpts on mount failure ;-/), so I'll send
a pull request in a couple of hours anyway.  Would you be OK with having
that patch in the same pile?

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

* Re: [git pull] vfs pile 1
  2012-01-09  0:25         ` Al Viro
@ 2012-01-09  0:39           ` Linus Torvalds
  2012-01-09  2:12             ` Al Viro
  0 siblings, 1 reply; 33+ messages in thread
From: Linus Torvalds @ 2012-01-09  0:39 UTC (permalink / raw)
  To: Al Viro; +Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Sun, Jan 8, 2012 at 4:25 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>
> Sure, will do.  I have several more fixes in my tree right now (including
> such gems as double kfree() in devpts on mount failure ;-/), so I'll send
> a pull request in a couple of hours anyway.  Would you be OK with having
> that patch in the same pile?

Sure, no problem.

                Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [git pull] vfs pile 1
  2012-01-09  0:39           ` Linus Torvalds
@ 2012-01-09  2:12             ` Al Viro
  0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2012-01-09  2:12 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Sun, Jan 08, 2012 at 04:39:20PM -0800, Linus Torvalds wrote:
> On Sun, Jan 8, 2012 at 4:25 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > Sure, will do. ?I have several more fixes in my tree right now (including
> > such gems as double kfree() in devpts on mount failure ;-/), so I'll send
> > a pull request in a couple of hours anyway. ?Would you be OK with having
> > that patch in the same pile?
> 
> Sure, no problem.

OK, there we go, then...  This stuff is fixes-only; there'll be another
pile with patches from various folks all over the last cycle.  Please,
pull from the usual place -
git://git.kernel.org:/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Shortlog:
Al Viro (5):
      functionfs: unfuck failure exits on mount
      ... and the same for gadgetfs
      devpts: fix double-free on mount failure
      exofs: oops after late failure in mount
      ext[34]: avoid i_nlink warnings triggered by drop_nlink/inc_nlink kludge in symlink()

Diffstat:
 drivers/usb/gadget/f_fs.c  |   31 +++++++++++--------------------
 drivers/usb/gadget/inode.c |   26 +++++++++++---------------
 fs/devpts/inode.c          |    4 +---
 fs/exofs/super.c           |    2 ++
 fs/ext3/namei.c            |    2 +-
 fs/ext4/namei.c            |    2 +-
 6 files changed, 27 insertions(+), 40 deletions(-)

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

* Re: [git pull] vfs pile 1
  2012-01-08 23:50   ` Al Viro
  2012-01-08 23:53     ` Al Viro
@ 2012-01-09 15:11     ` Ted Ts'o
  1 sibling, 0 replies; 33+ messages in thread
From: Ted Ts'o @ 2012-01-09 15:11 UTC (permalink / raw)
  To: Al Viro
  Cc: Linus Torvalds, Miklos Szeredi, linux-kernel, linux-fsdevel,
	Toshiyuki Okajima

On Sun, Jan 08, 2012 at 11:50:40PM +0000, Al Viro wrote:
> 
> WTF is ext4_symlink() doing in case of long symlinks?  Look:
>                 drop_nlink(inode);
>                 err = ext4_orphan_add(handle, inode);
>                 ext4_journal_stop(handle);
> [write symlink body]
>                 inc_nlink(inode);
>                 err = ext4_orphan_del(handle, inode);
> oh, I see...  The comment above that re deadlocks and inability to do that
> in a single transaction ;-/
> 
> OK, try this; that's equivalent to what they are doing and will not WARN_ON();
> I hadn't checked other filesystems for similar tricks yet, so this has a good
> chance of being incomplete.
> 
> diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
> index 86edc45..2043f48 100644
> --- a/fs/ext4/namei.c
> +++ b/fs/ext4/namei.c
> @@ -2315,7 +2315,7 @@ retry:
>  			err = PTR_ERR(handle);
>  			goto err_drop_inode;
>  		}
> -		inc_nlink(inode);
> +		set_nlink(inode, 1);
>  		err = ext4_orphan_del(handle, inode);
>  		if (err) {
>  			ext4_journal_stop(handle);

Thanks, looks good to me.

Acked-by: "Theodore Ts'o" <tytso@mit.edu>

What's there is a bit of kludge, granted.  But an attempt to optimize
out placing the inode on and off the orphan list (either by deferring
the start of the ext3/4 journal handle, or by special casing the block
used for the long symlink) would add a lot of complexity, and creating
long symlinks is not common case in most workloads...

						- Ted

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

* Re: [git pull] vfs pile 1
  2012-01-08 23:04 ` Linus Torvalds
  2012-01-08 23:50   ` Al Viro
@ 2012-01-11 11:58   ` Christoph Hellwig
  2012-01-11 12:36     ` Miklos Szeredi
  1 sibling, 1 reply; 33+ messages in thread
From: Christoph Hellwig @ 2012-01-11 11:58 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Al Viro, Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Sun, Jan 08, 2012 at 03:04:30PM -0800, Linus Torvalds wrote:
> Hmm.
> 
> Al, Miklos, I just triggered the new inc_link() warning three times in
> very close succession by just doing a simple

Also just as expected the set_nlink warnings triggers during XFS log
recovery (not that I haven't pointed this out multiple times before):

[ 1702.280003] XFS (vdb2): Starting recovery (logdev: internal)
[ 1702.294935] set_nlink() clearing i_nlink on xfs inode 320
[ 1702.297909] set_nlink() clearing i_nlink on xfs inode 256
[ 1702.301082] set_nlink() clearing i_nlink on xfs inode 192
[ 1702.304305] set_nlink() clearing i_nlink on xfs inode 321
[ 1702.306980] set_nlink() clearing i_nlink on xfs inode 257
[ 1702.308204] set_nlink() clearing i_nlink on xfs inode 193
[ 1702.309490] set_nlink() clearing i_nlink on xfs inode 322
[ 1702.311195] set_nlink() clearing i_nlink on xfs inode 258
[ 1702.313156] set_nlink() clearing i_nlink on xfs inode 194
[ 1702.315203] set_nlink() clearing i_nlink on xfs inode 323

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

* Re: [git pull] vfs pile 1
  2012-01-11 11:58   ` Christoph Hellwig
@ 2012-01-11 12:36     ` Miklos Szeredi
  2012-01-11 12:40       ` Christoph Hellwig
  0 siblings, 1 reply; 33+ messages in thread
From: Miklos Szeredi @ 2012-01-11 12:36 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Linus Torvalds, Al Viro, linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Wed, 2012-01-11 at 06:58 -0500, Christoph Hellwig wrote:
> On Sun, Jan 08, 2012 at 03:04:30PM -0800, Linus Torvalds wrote:
> > Hmm.
> > 
> > Al, Miklos, I just triggered the new inc_link() warning three times in
> > very close succession by just doing a simple
> 
> Also just as expected the set_nlink warnings triggers during XFS log
> recovery (not that I haven't pointed this out multiple times before):
> 
> [ 1702.280003] XFS (vdb2): Starting recovery (logdev: internal)
> [ 1702.294935] set_nlink() clearing i_nlink on xfs inode 320
> [ 1702.297909] set_nlink() clearing i_nlink on xfs inode 256
> [ 1702.301082] set_nlink() clearing i_nlink on xfs inode 192
> [ 1702.304305] set_nlink() clearing i_nlink on xfs inode 321
> [ 1702.306980] set_nlink() clearing i_nlink on xfs inode 257
> [ 1702.308204] set_nlink() clearing i_nlink on xfs inode 193
> [ 1702.309490] set_nlink() clearing i_nlink on xfs inode 322
> [ 1702.311195] set_nlink() clearing i_nlink on xfs inode 258
> [ 1702.313156] set_nlink() clearing i_nlink on xfs inode 194
> [ 1702.315203] set_nlink() clearing i_nlink on xfs inode 323

There are a couple of options:

a) leave it as it is

b) change that set_nlink() in xfs into a 

  if (nlink)
	set_nlink(nlink);
  else
	clear_nlink();

c) remove the printk from set_nlink().  This effectively makes
set_nlink(0) an alias of clear_nlink().

IIRC your preference is c.  What do others think?

Thanks,
Miklos

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

* Re: [git pull] vfs pile 1
  2012-01-11 12:36     ` Miklos Szeredi
@ 2012-01-11 12:40       ` Christoph Hellwig
  2012-01-11 13:12         ` Miklos Szeredi
  0 siblings, 1 reply; 33+ messages in thread
From: Christoph Hellwig @ 2012-01-11 12:40 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: Christoph Hellwig, Linus Torvalds, Al Viro, linux-kernel,
	linux-fsdevel, Toshiyuki Okajima

On Wed, Jan 11, 2012 at 01:36:22PM +0100, Miklos Szeredi wrote:
> There are a couple of options:
> 
> a) leave it as it is
> 
> b) change that set_nlink() in xfs into a 
> 
>   if (nlink)
> 	set_nlink(nlink);
>   else
> 	clear_nlink();
> 
> c) remove the printk from set_nlink().  This effectively makes
> set_nlink(0) an alias of clear_nlink().
> 
> IIRC your preference is c.  What do others think?

Yes.  a) really isn't an option - we don't want to spew thousands of
useless messages during a log recovery for an operation that's totally
normal.  b) is okay, too - but it's not just xfs that needs to be
covered, but any fs that support the concept of recovering from open
but unlinked inodes after a crash.  It's just that no one else seems
to have regular QA for that code path.

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

* Re: [git pull] vfs pile 1
  2012-01-11 12:40       ` Christoph Hellwig
@ 2012-01-11 13:12         ` Miklos Szeredi
  2012-01-11 15:23           ` Ted Ts'o
  0 siblings, 1 reply; 33+ messages in thread
From: Miklos Szeredi @ 2012-01-11 13:12 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Linus Torvalds, Al Viro, linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Wed, 2012-01-11 at 07:40 -0500, Christoph Hellwig wrote:
> On Wed, Jan 11, 2012 at 01:36:22PM +0100, Miklos Szeredi wrote:
> > There are a couple of options:
> > 
> > a) leave it as it is
> > 
> > b) change that set_nlink() in xfs into a 
> > 
> >   if (nlink)
> > 	set_nlink(nlink);
> >   else
> > 	clear_nlink();
> > 
> > c) remove the printk from set_nlink().  This effectively makes
> > set_nlink(0) an alias of clear_nlink().
> > 
> > IIRC your preference is c.  What do others think?
> 
> Yes.  a) really isn't an option - we don't want to spew thousands of
> useless messages during a log recovery for an operation that's totally
> normal.  b) is okay, too - but it's not just xfs that needs to be
> covered, but any fs that support the concept of recovering from open
> but unlinked inodes after a crash.  It's just that no one else seems
> to have regular QA for that code path.

Since it's a ratelimited printk there won't be thousands of messages.  I
think this is just a cosmetic issue and lack of QA isn't a problem.  If
the messages are bothersome it can be fixed.

Thanks,
Miklos

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

* Re: [git pull] vfs pile 1
  2012-01-11 13:12         ` Miklos Szeredi
@ 2012-01-11 15:23           ` Ted Ts'o
  2012-01-11 16:19             ` Al Viro
  0 siblings, 1 reply; 33+ messages in thread
From: Ted Ts'o @ 2012-01-11 15:23 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: Christoph Hellwig, Linus Torvalds, Al Viro, linux-kernel,
	linux-fsdevel, Toshiyuki Okajima

On Wed, Jan 11, 2012 at 02:12:36PM +0100, Miklos Szeredi wrote:
> > Yes.  a) really isn't an option - we don't want to spew thousands of
> > useless messages during a log recovery for an operation that's totally
> > normal.  b) is okay, too - but it's not just xfs that needs to be
> > covered, but any fs that support the concept of recovering from open
> > but unlinked inodes after a crash.  It's just that no one else seems
> > to have regular QA for that code path.
> 
> Since it's a ratelimited printk there won't be thousands of messages.  I
> think this is just a cosmetic issue and lack of QA isn't a problem.  If
> the messages are bothersome it can be fixed.

We're going to spew messages in ext3/4 for orphan inodes as well
(thanks for Cristoph for pointing that out).  I can put in a similar
kludge, but maybe there should be a _set_nlink() that skips the check?
We do our own more sophisticated check in and will do appropriate
error handling in ext4_iget() anyway, so it's just a waste in that
particular codepath anyway.

						- Ted

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

* Re: [git pull] vfs pile 1
  2012-01-11 15:23           ` Ted Ts'o
@ 2012-01-11 16:19             ` Al Viro
  2012-01-12 11:41               ` Miklos Szeredi
  0 siblings, 1 reply; 33+ messages in thread
From: Al Viro @ 2012-01-11 16:19 UTC (permalink / raw)
  To: Ted Ts'o, Miklos Szeredi, Christoph Hellwig, Linus Torvalds,
	linux-kernel, linux-fsdevel, Toshiyuki Okajima

On Wed, Jan 11, 2012 at 10:23:37AM -0500, Ted Ts'o wrote:
> On Wed, Jan 11, 2012 at 02:12:36PM +0100, Miklos Szeredi wrote:
> > > Yes.  a) really isn't an option - we don't want to spew thousands of
> > > useless messages during a log recovery for an operation that's totally
> > > normal.  b) is okay, too - but it's not just xfs that needs to be
> > > covered, but any fs that support the concept of recovering from open
> > > but unlinked inodes after a crash.  It's just that no one else seems
> > > to have regular QA for that code path.
> > 
> > Since it's a ratelimited printk there won't be thousands of messages.  I
> > think this is just a cosmetic issue and lack of QA isn't a problem.  If
> > the messages are bothersome it can be fixed.
> 
> We're going to spew messages in ext3/4 for orphan inodes as well
> (thanks for Cristoph for pointing that out).  I can put in a similar
> kludge, but maybe there should be a _set_nlink() that skips the check?
> We do our own more sophisticated check in and will do appropriate
> error handling in ext4_iget() anyway, so it's just a waste in that
> particular codepath anyway.

Looking at the callers, I'm not sure we want that warning in set_nlink()
at all, rate-limited or not.  Note that it can trigger on the things
like stale NFS fhandle coming in for something that had been deleted
a while ago - IOW, it's neither a kernel bug nor fs corruption.
inc_nlink - sure, that might catch real bugs, drop_nlink - definitely,
but this...

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

* Re: [git pull] vfs pile 1
  2012-01-11 16:19             ` Al Viro
@ 2012-01-12 11:41               ` Miklos Szeredi
  0 siblings, 0 replies; 33+ messages in thread
From: Miklos Szeredi @ 2012-01-12 11:41 UTC (permalink / raw)
  To: Al Viro
  Cc: Ted Ts'o, Christoph Hellwig, Linus Torvalds, linux-kernel,
	linux-fsdevel, Toshiyuki Okajima

On Wed, 2012-01-11 at 16:19 +0000, Al Viro wrote:

> Looking at the callers, I'm not sure we want that warning in set_nlink()
> at all, rate-limited or not.  Note that it can trigger on the things
> like stale NFS fhandle coming in for something that had been deleted
> a while ago - IOW, it's neither a kernel bug nor fs corruption.
> inc_nlink - sure, that might catch real bugs, drop_nlink - definitely,
> but this...

Patch follows.

Thanks,
Miklos
----

Subject: vfs: remove printk from set_nlink()

From: Miklos Szeredi <mszeredi@suse.cz>

Don't log a message for set_nlink(0).

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
---
 fs/inode.c |    3 ---
 1 file changed, 3 deletions(-)

Index: linux-2.6/fs/inode.c
===================================================================
--- linux-2.6.orig/fs/inode.c	2012-01-11 10:55:00.000000000 +0100
+++ linux-2.6/fs/inode.c	2012-01-12 12:32:44.000000000 +0100
@@ -322,9 +322,6 @@ EXPORT_SYMBOL(clear_nlink);
 void set_nlink(struct inode *inode, unsigned int nlink)
 {
 	if (!nlink) {
-		printk_ratelimited(KERN_INFO
-			"set_nlink() clearing i_nlink on %s inode %li\n",
-			inode->i_sb->s_type->name, inode->i_ino);
 		clear_nlink(inode);
 	} else {
 		/* Yes, some filesystems do change nlink from zero to one */

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

* [git pull] vfs, pile 1
@ 2018-06-04  0:59 Al Viro
  0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2018-06-04  0:59 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-fsdevel, linux-kernel

	That pile is the first part of dealing with livelocks, etc. around
shrink_dcache_parent().

The following changes since commit 60cc43fc888428bb2f18f08997432d426a243338:

  Linux 4.17-rc1 (2018-04-15 18:24:20 -0700)

are available in the git repository at:

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

for you to fetch changes up to 4fb48871409e2fcd375087d526d07f7600c88f94:

  restore cond_resched() in shrink_dcache_parent() (2018-04-19 23:58:48 -0400)

----------------------------------------------------------------
Al Viro (5):
      d_invalidate(): unhash immediately
      d_walk(): kill 'finish' callback
      dcache: move cond_resched() into the end of __dentry_kill()
      dput(): turn into explicit while() loop
      restore cond_resched() in shrink_dcache_parent()

 fs/dcache.c | 122 +++++++++++++++++++++---------------------------------------
 1 file changed, 43 insertions(+), 79 deletions(-)

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

* [git pull] vfs pile 1
@ 2016-12-16 13:30 Al Viro
  0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2016-12-16 13:30 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

	This time there's too many branches to push them one by one,
unfortunately.  This pile:
	* more ->d_init() stuff (work.dcache)
	* pathname resolution cleanups (work.namei)
	* a few missing iov_iter primitives - copy_from_iter_full() and
friends.  Either copy the full requested amount, advance the iterator and
return true, or fail, return false and do _not_ advance the iterator.
Quite a few open-coded callers converted (and became more readable and
harder to fuck up that way) (work.iov_iter)
	* several assorted patches, the big one being logfs removal

Right now there's one trivial conflict in lustre (and a couple even
more trivial ones in logfs).

The following changes since commit e5517c2a5a49ed5e99047008629f1cd60246ea0e:

  Linux 4.9-rc7 (2016-11-27 13:08:04 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

for you to fetch changes up to c4364f837caf618c2fdb51a2e132cf29dfd1fffa:

  Merge branches 'work.namei', 'work.dcache' and 'work.iov_iter' into for-linus (2016-12-15 01:07:29 -0500)

----------------------------------------------------------------
Al Viro (14):
      lustre: switch to use of ->d_init()
      ceph: unify dentry_operations instances
      ceph: switch to use of ->d_init()
      don't open-code file_inode()
      [iov_iter] new primitives - copy_from_iter_full() and friends
      make skb_add_data,{_nocache}() and skb_copy_to_page_nocache() advance only on success
      switch getfrag callbacks to ..._full() primitives
      namei.c: get rid of user_path_parent()
      namei: saner calling conventions for mountpoint_last()
      namei: shift interpretation of LOOKUP_FOLLOW inside should_follow_link()
      namei: invert WALK_PUT logics
      namei: pass both WALK_GET and WALK_MORE to should_follow_link()
      namei: fold should_follow_link() with the step into not-followed link
      Merge branches 'work.namei', 'work.dcache' and 'work.iov_iter' into for-linus

Christoph Hellwig (1):
      logfs: remove from tree

Li Wang (1):
      vfs: fix put_compat_statfs64() does not handle errors

 Documentation/filesystems/00-INDEX                 |    2 -
 Documentation/filesystems/logfs.txt                |  241 --
 MAINTAINERS                                        |    8 -
 drivers/bluetooth/hci_vhci.c                       |    2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c         |   20 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c           |    2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c            |    4 +-
 drivers/net/macvtap.c                              |    4 +-
 drivers/net/tun.c                                  |    7 +-
 drivers/staging/greybus/camera.c                   |    4 +-
 drivers/staging/greybus/es2.c                      |    6 +-
 drivers/staging/greybus/svc.c                      |    6 +-
 drivers/staging/greybus/timesync.c                 |    2 +-
 drivers/staging/lustre/lustre/llite/dcache.c       |   33 +-
 .../staging/lustre/lustre/llite/llite_internal.h   |   17 +-
 drivers/staging/lustre/lustre/llite/llite_nfs.c    |   22 +-
 drivers/staging/lustre/lustre/llite/namei.c        |   13 +-
 drivers/staging/lustre/lustre/llite/statahead.c    |    4 +-
 drivers/target/target_core_configfs.c              |    2 +-
 drivers/usb/gadget/function/f_fs.c                 |    2 +-
 drivers/usb/gadget/legacy/inode.c                  |    2 +-
 drivers/vhost/scsi.c                               |    3 +-
 drivers/vhost/vhost.c                              |    3 +-
 fs/Kconfig                                         |    1 -
 fs/Makefile                                        |    1 -
 fs/aio.c                                           |    6 +-
 fs/autofs4/inode.c                                 |    2 +-
 fs/ceph/dir.c                                      |   51 +-
 fs/ceph/export.c                                   |   26 +-
 fs/ceph/file.c                                     |    4 -
 fs/ceph/inode.c                                    |   22 +-
 fs/ceph/super.c                                    |    2 +-
 fs/ceph/super.h                                    |   10 +-
 fs/compat.c                                        |    6 +-
 fs/fcntl.c                                         |    2 +-
 fs/logfs/Kconfig                                   |   17 -
 fs/logfs/Makefile                                  |   13 -
 fs/logfs/compr.c                                   |   95 -
 fs/logfs/dev_bdev.c                                |  322 ---
 fs/logfs/dev_mtd.c                                 |  274 ---
 fs/logfs/dir.c                                     |  801 -------
 fs/logfs/file.c                                    |  285 ---
 fs/logfs/gc.c                                      |  732 -------
 fs/logfs/inode.c                                   |  428 ----
 fs/logfs/journal.c                                 |  894 --------
 fs/logfs/logfs.h                                   |  735 -------
 fs/logfs/logfs_abi.h                               |  629 ------
 fs/logfs/readwrite.c                               | 2298 --------------------
 fs/logfs/segment.c                                 |  961 --------
 fs/logfs/super.c                                   |  653 ------
 fs/namei.c                                         |  147 +-
 fs/ncpfs/file.c                                    |    2 +-
 fs/orangefs/devorangefs-req.c                      |   13 +-
 fs/orangefs/file.c                                 |    2 +-
 fs/orangefs/orangefs-debugfs.c                     |    6 +-
 fs/overlayfs/copy_up.c                             |    2 +-
 include/linux/skbuff.h                             |    6 +-
 include/linux/uio.h                                |    3 +
 include/net/sock.h                                 |    6 +-
 include/net/udplite.h                              |    2 +-
 kernel/audit_watch.c                               |    4 +-
 kernel/events/core.c                               |    2 +-
 kernel/locking/qspinlock_stat.h                    |   12 +-
 kernel/printk/printk.c                             |    2 +-
 lib/iov_iter.c                                     |   98 +-
 net/atm/common.c                                   |    2 +-
 net/bluetooth/l2cap_core.c                         |    6 +-
 net/ipv4/ip_output.c                               |    4 +-
 net/ipv4/ping.c                                    |    8 +-
 net/packet/af_packet.c                             |    5 +-
 net/tipc/msg.c                                     |    4 +-
 security/keys/keyctl.c                             |    2 +-
 security/smack/smack_lsm.c                         |    2 +-
 73 files changed, 264 insertions(+), 9755 deletions(-)
 delete mode 100644 Documentation/filesystems/logfs.txt
 delete mode 100644 fs/logfs/Kconfig
 delete mode 100644 fs/logfs/Makefile
 delete mode 100644 fs/logfs/compr.c
 delete mode 100644 fs/logfs/dev_bdev.c
 delete mode 100644 fs/logfs/dev_mtd.c
 delete mode 100644 fs/logfs/dir.c
 delete mode 100644 fs/logfs/file.c
 delete mode 100644 fs/logfs/gc.c
 delete mode 100644 fs/logfs/inode.c
 delete mode 100644 fs/logfs/journal.c
 delete mode 100644 fs/logfs/logfs.h
 delete mode 100644 fs/logfs/logfs_abi.h
 delete mode 100644 fs/logfs/readwrite.c
 delete mode 100644 fs/logfs/segment.c
 delete mode 100644 fs/logfs/super.c

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

* [git pull] vfs pile 1
@ 2015-09-06  2:55 Al Viro
  0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2015-09-06  2:55 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

	In this one: d_move fixes (Eric), UFS fixes (me; locking is mostly sane
now, a bunch of bugs in error handling ought to be fixed), switch of sb_writers
to percpu rwsem (Oleg), superblock scalability (Josef and Dave), swapon(2) race
fix (Hugh).  Please, pull from the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Shortlog:
Al Viro (47):
      ufs: kill more lock_ufs() calls
      ufs: switch ufs_evict_inode() to trimmed-down variant of ufs_truncate()
      ufs: free excessive blocks upon ->write_begin() failure/short copy
      ufs: move truncate_setsize() down into ufs_truncate()
      ufs: move lock_ufs() down into __ufs_truncate_blocks()
      ufs: bforget() indirect blocks before freeing them
      ufs: don't use lock_ufs() for block pointers tree protection
      ufs: kill lock_ufs()
      ufs: ufs_trunc_direct() always returns 0
      ufs: ufs_trunc_...() has exclusion with everything that might cause allocations
      ufs: no retries are needed on truncate
      ufs: move truncate code into inode.c
      ufs: the offsets ufs_block_to_path() puts into array are not sector_t
      ufs: beginning of __ufs_truncate_block() massage
      ufs_trunc_tindirect(): pass the number of blocks to keep
      ufs_trunc_indirect(): pass the index of the first pointer to free
      ufs_trunc_dindirect(): pass the number of blocks to keep
      __ufs_truncate(); find cutoff distances into branches by offsets[] array
      ufs_trunc_...indirect(): pass the array of indices instead of offsets
      ufs_trunc_..indirect(): more massage towards unifying
      unify ufs_trunc_..indirect()
      __ufs_truncate_blocks(): unify freeing the full branches
      __ufs_trunc_blocks(): turn the part after switch into a loop
      ufs_trunc_branch(): never call with offsets != NULL && depth2 == 0
      ufs_trunc_branch(): separate the calls with non-NULL offsets
      ufs: unify the logics for collecting adjacent data blocks to free
      split ufs_truncate_branch() into full- and partial-branch variants
      ufs_trunc_branch(): massage towards killing recursion
      ufs_trunc_branch(): kill recursion
      free_full_branch(): saner calling conventions
      move marking inode dirty to the end of __ufs_truncate_blocks()
      free_full_branch(): don't bother modifying the block we are going to free
      __ufs_truncate_blocks(): avoid excessive dirtying of indirect blocks
      ufs_inode_get{frag,block}(): get rid of retries
      ufs: move calculation of offsets into ufs_getfrag_block()
      ufs: use the branch depth in ufs_getfrag_block()
      ufs_inode_get{frag,block}(): consolidate success exits
      ufs_getfrag_block(): get rid of macro jungles
      ufs_inode_get{frag,block}(): leave sb_getblk() to caller
      ufs_inode_getblock(): pass index instead of 'fragment'
      ufs_inode_getblock(): pass indirect block number and full index
      ufs_inode_getfrag(): split extending the partial blocks off
      ufs_inode_getfrag(): pass index instead of 'fragment'
      ufs_getfrag_block(): turn following indirects into a loop
      ufs_inode_getblock(): failure to read an indirect block is -EIO
      ufs_getfrag_block(): tidy up a bit
      ufs_inode_get{frag,block}(): get rid of 'phys' argument

Dave Chinner (4):
      writeback: plug writeback at a high level
      inode: convert inode_sb_list_lock to per-sb
      sync: serialise per-superblock sync operations
      inode: rename i_wb_list to i_io_list

Eric W. Biederman (3):
      dcache: Handle escaped paths in prepend_path
      dcache: Reduce the scope of i_lock in d_splice_alias
      vfs: Test for and handle paths that are unreachable from their mnt_root

Hugh Dickins (1):
      mm: fix potential data race in SyS_swapon

Josef Bacik (2):
      inode: add hlist_fake to avoid the inode hash lock in evict
      inode: don't softlockup when evicting inodes

Oleg Nesterov (8):
      introduce __sb_writers_{acquired,release}() helpers
      fix the broken lockdep logic in __sb_start_write()
      document rwsem_release() in sb_wait_write()
      percpu-rwsem: introduce percpu_down_read_trylock()
      percpu-rwsem: introduce percpu_rwsem_release() and percpu_rwsem_acquire()
      percpu-rwsem: kill CONFIG_PERCPU_RWSEM
      shift percpu_counter_destroy() into destroy_super_work()
      change sb_writers to use percpu_rw_semaphore

Diffstat:
 arch/Kconfig                     |   1 -
 fs/block_dev.c                   |  12 +-
 fs/btrfs/transaction.c           |   8 +-
 fs/dcache.c                      |  14 +-
 fs/drop_caches.c                 |  10 +-
 fs/fs-writeback.c                |  72 +--
 fs/inode.c                       |  50 ++-
 fs/internal.h                    |   3 +-
 fs/namei.c                       |  27 +-
 fs/notify/inode_mark.c           |  20 +-
 fs/quota/dquot.c                 |  16 +-
 fs/super.c                       | 175 ++++----
 fs/ufs/Makefile                  |   2 +-
 fs/ufs/balloc.c                  |   4 +
 fs/ufs/inode.c                   | 948 ++++++++++++++++++++++++++-------------
 fs/ufs/super.c                   |  36 +-
 fs/ufs/truncate.c                | 523 ---------------------
 fs/ufs/ufs.h                     |  13 +-
 fs/xfs/xfs_aops.c                |   6 +-
 include/linux/fs.h               |  33 +-
 include/linux/fsnotify_backend.h |   4 +-
 include/linux/list.h             |   5 +
 include/linux/percpu-rwsem.h     |  20 +
 init/Kconfig                     |   1 -
 kernel/locking/Makefile          |   3 +-
 kernel/locking/percpu-rwsem.c    |  13 +
 lib/Kconfig                      |   3 -
 mm/backing-dev.c                 |   8 +-
 mm/swapfile.c                    |  25 +-
 29 files changed, 936 insertions(+), 1119 deletions(-)
 delete mode 100644 fs/ufs/truncate.c

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

* [git pull] vfs pile 1
@ 2015-06-22  6:47 Al Viro
  0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2015-06-22  6:47 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

	In this pile: pathname resolution rewrite.
* recursion in link_path_walk() is gone.
* nesting limits on symlinks are gone (the only limit remaining is that
the total amount of symlinks is no more than 40, no matter how nested).
* "fast" (inline) symlinks are handled without leaving rcuwalk mode.
* stack footprint (independent of the nesting) is below kilobyte now -
about on par with what it used to be with one level of nested symlinks
and ~2.8 times lower than it used to be in the worst case.
* struct nameidata is entirely private to fs/namei.c now (not even opaque
pointers are being passed around).
* ->follow_link() and ->put_link() calling conventions had been changed;
all in-tree filesystems converted, out-of-tree should be able to follow
reasonably easy; see Documentation/filesystems/porting for details (and
in-tree filesystems for examples of conversion).

That has sat in -next since mid-May, seems to survive all testing without
regressions and merges clean with v4.1.  Please, pull from

git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus-1

Shortlog:
Al Viro (123):
      9p: don't bother with 4K allocation for 24-byte local array...
      9p: don't bother with __getname() in ->follow_link()
      ext4: split inode_operations for encrypted symlinks off the rest
      libfs: simple_follow_link()
      ext2: use simple_follow_link()
      befs: switch to simple_follow_link()
      ext3: switch to simple_follow_link()
      ext4: switch to simple_follow_link()
      jffs2: switch to simple_follow_link()
      shmem: switch to simple_follow_link()
      debugfs: switch to simple_follow_link()
      ufs: switch to simple_follow_link()
      ubifs: switch to simple_follow_link()
      sysv: switch to simple_follow_link()
      jfs: switch to simple_follow_link()
      freevxfs: switch to simple_follow_link()
      exofs: switch to {simple,page}_symlink_inode_operations
      ceph: switch to simple_follow_link()
      logfs: fix a pagecache leak for symlinks
      uninline walk_component()
      namei: take O_NOFOLLOW treatment into do_last()
      do_last: kill symlink_ok
      do_last: regularize the logics around following symlinks
      namei: get rid of lookup_hash()
      name: shift nameidata down into user_path_walk()
      namei: lift nameidata into filename_mountpoint()
      new ->follow_link() and ->put_link() calling conventions
      namei.c: separate the parts of follow_link() that find the link body
      namei: don't bother with ->follow_link() if ->i_link is set
      namei: introduce nameidata->link
      do_last: move path there from caller's stack frame
      namei: expand nested_symlink() in its only caller
      namei: expand the call of follow_link() in link_path_walk()
      namei: move the calls of may_follow_link() into follow_link()
      namei: rename follow_link to trailing_symlink, move it down
      link_path_walk: handle get_link() returning ERR_PTR() immediately
      link_path_walk: don't bother with walk_component() after jumping link
      link_path_walk: turn inner loop into explicit goto
      link_path_walk: massage a bit more
      link_path_walk: get rid of duplication
      link_path_walk: final preparations to killing recursion
      link_path_walk: kill the recursion
      link_path_walk: split "return from recursive call" path
      link_path_walk: cleanup - turn goto start; into continue;
      namei: move link/cookie pairs into nameidata
      namei: trim redundant arguments of trailing_symlink()
      namei: trim redundant arguments of fs/namei.c:put_link()
      namei: trim the arguments of get_link()
      namei: remove restrictions on nesting depth
      link_path_walk: nd->depth massage, part 1
      link_path_walk: nd->depth massage, part 2
      link_path_walk: nd->depth massage, part 3
      link_path_walk: nd->depth massage, part 4
      trailing_symlink: nd->depth massage, part 5
      get_link: nd->depth massage, part 6
      trailing_symlink: nd->depth massage, part 7
      put_link: nd->depth massage, part 8
      link_path_walk: nd->depth massage, part 9
      link_path_walk: nd->depth massage, part 10
      link_path_walk: end of nd->depth massage
      namei: we never need more than MAXSYMLINKS entries in nd->stack
      namei: lift (open-coded) terminate_walk() in follow_dotdot_rcu() into callers
      lift terminate_walk() into callers of walk_component()
      namei: lift (open-coded) terminate_walk() into callers of get_link()
      namei: take put_link() into {lookup,mountpoint,do}_last()
      namei: have terminate_walk() do put_link() on everything left
      link_path_walk: move the OK: inside the loop
      namei: new calling conventions for walk_component()
      namei: make should_follow_link() store the link in nd->link
      namei: move link count check and stack allocation into pick_link()
      lustre: rip the private symlink nesting limit out
      namei: simplify the callers of follow_managed()
      don't pass nameidata to ->follow_link()
      namei: simplify failure exits in get_link()
      namei: simpler treatment of symlinks with nothing other that / in the body
      namei: take the treatment of absolute symlinks to get_link()
      namei: fold put_link() into the failure case of complete_walk()
      namei: move bumping the refcount of link->mnt into pick_link()
      may_follow_link(): trim arguments
      namei: kill nd->link
      namei: take increment of nd->depth into pick_link()
      namei: may_follow_link() - lift terminate_walk() on failures into caller
      namei: split off filename_lookupat() with LOOKUP_PARENT
      namei: get rid of nameidata->base
      namei: path_init() calling conventions change
      namei: lift link_path_walk() call out of trailing_symlink()
      namei: lift terminate_walk() all the way up
      link_path_walk: use explicit returns for failure exits
      namei: explicitly pass seq number to unlazy_walk() when dentry != NULL
      namei: don't mangle nd->seq in lookup_fast()
      namei: store inode in nd->stack[]
      namei: pick_link() callers already have inode
      switch ->put_link() from dentry to inode
      new helper: free_page_put_link()
      namei: make put_link() RCU-safe
      namei: make may_follow_link() safe in RCU mode
      new helper: __legitimize_mnt()
      namei: store seq numbers in nd->stack[]
      namei: make unlazy_walk and terminate_walk handle nd->stack, add unlazy_link
      namei: don't unlazy until get_link()
      enable passing fast relative symlinks without dropping out of RCU mode
      namei: handle absolute symlinks without dropping out of RCU mode
      update Documentation/filesystems/ regarding the follow_link/put_link changes
      namei: unlazy_walk() doesn't need to mess with current->fs anymore
      lustre: kill unused macro (LOOKUP_CONTINUE)
      lustre: kill unused helper
      get rid of assorted nameidata-related debris
      namei: be careful with mountpoint crossings in follow_dotdot_rcu()
      namei: uninline set_root{,_rcu}()
      namei: pass the struct path to store the result down into path_lookupat()
      namei: move putname() call into filename_lookup()
      namei: shift nameidata inside filename_lookup()
      namei: make filename_lookup() reject ERR_PTR() passed as name
      namei: shift nameidata down into filename_parentat()
      namei: saner calling conventions for filename_create()
      namei: saner calling conventions for filename_parentat()
      namei: fold path_cleanup() into terminate_walk()
      namei: stash dfd and name into nameidata
      namei: trim do_last() arguments
      inline user_path_parent()
      inline user_path_create()
      namei: move saved_nd pointer into struct nameidata
      turn user_{path_at,path,lpath,path_dir}() into static inlines

David Howells (1):
      VFS: Handle lower layer dentry/inode in pathwalk

NeilBrown (7):
      ovl: rearrange ovl_follow_link to it doesn't need to call ->put_link
      SECURITY: remove nameidata arg from inode_follow_link.
      VFS: replace {, total_}link_count in task_struct with pointer to nameidata
      security/selinux: pass 'flags' arg to avc_audit() and avc_has_perm_flags()
      security: make inode_follow_link RCU-walk aware
      VFS/namei: make the use of touch_atime() in get_link() RCU-safe.
      Documentation: remove outdated information from automount-support.txt

Diffstat:
 Documentation/filesystems/Locking                  |    4 +-
 Documentation/filesystems/automount-support.txt    |   51 +-
 Documentation/filesystems/porting                  |   17 +
 Documentation/filesystems/vfs.txt                  |   22 +-
 .../lustre/lustre/include/linux/lustre_compat25.h  |   15 -
 .../staging/lustre/lustre/llite/llite_internal.h   |    6 -
 drivers/staging/lustre/lustre/llite/symlink.c      |   26 +-
 fs/9p/v9fs.h                                       |    2 -
 fs/9p/vfs_inode.c                                  |  123 +-
 fs/9p/vfs_inode_dotl.c                             |   39 +-
 fs/autofs4/symlink.c                               |    5 +-
 fs/befs/linuxvfs.c                                 |   57 +-
 fs/ceph/inode.c                                    |   11 +-
 fs/cifs/cifsfs.h                                   |    2 +-
 fs/cifs/link.c                                     |   28 +-
 fs/configfs/symlink.c                              |   31 +-
 fs/debugfs/file.c                                  |   12 -
 fs/debugfs/inode.c                                 |    6 +-
 fs/ecryptfs/inode.c                                |   11 +-
 fs/exofs/Kbuild                                    |    2 +-
 fs/exofs/exofs.h                                   |    4 -
 fs/exofs/inode.c                                   |    9 +-
 fs/exofs/namei.c                                   |    5 +-
 fs/exofs/symlink.c                                 |   55 -
 fs/ext2/inode.c                                    |    1 +
 fs/ext2/namei.c                                    |    3 +-
 fs/ext2/symlink.c                                  |   10 +-
 fs/ext3/inode.c                                    |    1 +
 fs/ext3/namei.c                                    |    3 +-
 fs/ext3/symlink.c                                  |   10 +-
 fs/ext4/ext4.h                                     |    1 +
 fs/ext4/inode.c                                    |    7 +-
 fs/ext4/namei.c                                    |   11 +-
 fs/ext4/symlink.c                                  |   48 +-
 fs/f2fs/namei.c                                    |   18 +-
 fs/freevxfs/vxfs_extern.h                          |    3 -
 fs/freevxfs/vxfs_immed.c                           |   34 -
 fs/freevxfs/vxfs_inode.c                           |    7 +-
 fs/fuse/dir.c                                      |   22 +-
 fs/gfs2/inode.c                                    |   10 +-
 fs/hostfs/hostfs_kern.c                            |   15 +-
 fs/hppfs/hppfs.c                                   |   13 +-
 fs/inode.c                                         |   31 +-
 fs/jffs2/dir.c                                     |    1 +
 fs/jffs2/fs.c                                      |    1 +
 fs/jffs2/symlink.c                                 |   45 +-
 fs/jfs/inode.c                                     |    3 +-
 fs/jfs/namei.c                                     |    5 +-
 fs/jfs/symlink.c                                   |   10 +-
 fs/kernfs/symlink.c                                |   25 +-
 fs/libfs.c                                         |   25 +-
 fs/logfs/dir.c                                     |    1 +
 fs/mount.h                                         |    1 +
 fs/namei.c                                         | 1453 ++++++++++----------
 fs/namespace.c                                     |   27 +-
 fs/nfs/symlink.c                                   |   19 +-
 fs/ntfs/namei.c                                    |    2 +-
 fs/open.c                                          |    2 +-
 fs/overlayfs/inode.c                               |   35 +-
 fs/proc/base.c                                     |    4 +-
 fs/proc/inode.c                                    |    9 +-
 fs/proc/namespaces.c                               |    4 +-
 fs/proc/self.c                                     |   24 +-
 fs/proc/thread_self.c                              |   22 +-
 fs/sysv/Makefile                                   |    2 +-
 fs/sysv/inode.c                                    |    5 +-
 fs/sysv/symlink.c                                  |   20 -
 fs/sysv/sysv.h                                     |    1 -
 fs/ubifs/dir.c                                     |    1 +
 fs/ubifs/file.c                                    |   11 +-
 fs/ubifs/super.c                                   |    1 +
 fs/ufs/inode.c                                     |    5 +-
 fs/ufs/namei.c                                     |    3 +-
 fs/ufs/symlink.c                                   |   13 +-
 fs/xfs/xfs_iops.c                                  |   11 +-
 include/linux/debugfs.h                            |    1 -
 include/linux/fs.h                                 |   16 +-
 include/linux/namei.h                              |   41 +-
 include/linux/sched.h                              |    3 +-
 include/linux/security.h                           |   13 +-
 mm/shmem.c                                         |   32 +-
 security/capability.c                              |    4 +-
 security/security.c                                |    7 +-
 security/selinux/avc.c                             |   18 +-
 security/selinux/hooks.c                           |   18 +-
 security/selinux/include/avc.h                     |    9 +-
 86 files changed, 1222 insertions(+), 1522 deletions(-)
 delete mode 100644 fs/exofs/symlink.c
 delete mode 100644 fs/sysv/symlink.c
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in

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

* Re: [git pull] vfs pile 1
  2014-01-30  2:02     ` Kim Jaegeuk
@ 2014-01-30 15:26       ` Jan Kara
  0 siblings, 0 replies; 33+ messages in thread
From: Jan Kara @ 2014-01-30 15:26 UTC (permalink / raw)
  To: Kim Jaegeuk
  Cc: Jan Kara, Linus Torvalds, Al Viro, Christoph Hellwig,
	Linux Kernel Mailing List, linux-fsdevel, Jaegeuk Kim

On Thu 30-01-14 11:02:49, Kim Jaegeuk wrote:
> 2014-01-29 Jan Kara <jack@suse.cz>:
> > On Tue 28-01-14 19:26:08, Linus Torvalds wrote:
> >> On Mon, Jan 27, 2014 at 6:25 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >> >         Assorted stuff; the biggest pile here is Christoph's ACL series.
> >> > Plus assorted cleanups and fixes all over the place...  There will be
> >> > another pile later this week.
> >>
> >> The posix_acl_chmod() code looks wrong.
> >>
> >> Not that it looked right before either, but whatever. The code
> >> basically looks like some variation of this in most setattr()
> >> implementations:
> >>
> >>         if (ia_valid & ATTR_MODE)
> >>                 rc = posix_acl_chmod(inode, inode->i_mode);
> >>
> >> but the mode we're changing to (and what ATTR_MODE guards) is actually
> >> attr->ia_mode, not inode->i_mode.
> >   Yes, but posix_acl_chmod() is called after setattr_copy() was done so
> > inode->i_mode should be the same as attr->ia_mode. Whether i_mode or
> > ia_mode is mode logical depends on whether you view posix_acl_chmod() as
> > "sync current i_mode into acls" or "reflect this i_mode change in acls".
> > I agree the function name suggests more the latter semantics.
> >
> >> And quite frankly, passing in inode->i_mode looks stupid, since we're
> >> already passing in the inode pointer, so that's just redundant and
> >> pointless information.
> >   Yes, it looks stupid. We could almost drop that argument, except that f2fs
> > tries to play some tricks with i_mode and stores i_mode in a different
> > place when acls are enabled. Huh? Jaegeuk, can you explain why are you
> > doing that?
> 
> As described to Christoph before, the reason is for acl consistency
> between on-disk xattr->mode and on-disk inode->mode.
> 
> Previously, there are three i_modes managed by:
>                        inode->mode   on-disk xattr->mode  on-disk->i_mode
> f2fs_setattr            [x]                       y                       y
> [update_inode]       x                        y                      [x]
> [checkpoint]            x                       [y]                      x
> __f2fs_setxattr        x                       [x]                      x
> 
> In this flow, f2fs is able to break the consistency between on-disk
> xattr->mode and on-disk->i_mode after checkpoint followed by
> sudden-power-off.
> 
> So, fi->i_mode was introduced to address the problem.
> The new f2fs_setattr triggers:
>                 inode->mode   fi->i_mode  on-disk xattr->mode  on-disk->i_mode
> f2fs_setattr             y                [x]                     y
>                       y
> [update_inode]       y                 x                      y
>                   y
> [checkpoint]            y                 x                      y
>                      y
> __f2fs_setxattr       [x]                x                     [x]
>                    [x]
> 
> Finally, __f2fs_setxattr synchronizes inode->mode, on-disk xattr->mode,
> and on-disk inode->i_mode all together.
> 
> Am I missing something?
  OK, I see. Thanks for explanation.

								Honza
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

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

* Re: [git pull] vfs pile 1
  2014-01-29  3:26 ` Linus Torvalds
  2014-01-29 13:37   ` Jan Kara
@ 2014-01-30 13:07   ` Christoph Hellwig
  1 sibling, 0 replies; 33+ messages in thread
From: Christoph Hellwig @ 2014-01-30 13:07 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Al Viro, Jan Kara, Christoph Hellwig, Linux Kernel Mailing List,
	linux-fsdevel

On Tue, Jan 28, 2014 at 07:26:08PM -0800, Linus Torvalds wrote:
> but the mode we're changing to (and what ATTR_MODE guards) is actually
> attr->ia_mode, not inode->i_mode. And quite frankly, passing in
> inode->i_mode looks stupid, since we're already passing in the inode
> pointer, so that's just redundant and pointless information.

At this point inode->i_mode has been updated to attra->ia_mode.  Passing
in the mode allows fileystems to defer the i_mode update until after
the ACL has been modified, which at this point only f2fs does.

In a perfect world filesystems do both under the same lock for in-core
access and in an transaction for the on-disk change, in which case
the exact order doesn't matter.

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

* Re: [git pull] vfs pile 1
  2014-01-29 13:37   ` Jan Kara
@ 2014-01-30  2:02     ` Kim Jaegeuk
  2014-01-30 15:26       ` Jan Kara
  0 siblings, 1 reply; 33+ messages in thread
From: Kim Jaegeuk @ 2014-01-30  2:02 UTC (permalink / raw)
  To: Jan Kara
  Cc: Linus Torvalds, Al Viro, Christoph Hellwig,
	Linux Kernel Mailing List, linux-fsdevel, Jaegeuk Kim

2014-01-29 Jan Kara <jack@suse.cz>:
> On Tue 28-01-14 19:26:08, Linus Torvalds wrote:
>> On Mon, Jan 27, 2014 at 6:25 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>> >         Assorted stuff; the biggest pile here is Christoph's ACL series.
>> > Plus assorted cleanups and fixes all over the place...  There will be
>> > another pile later this week.
>>
>> The posix_acl_chmod() code looks wrong.
>>
>> Not that it looked right before either, but whatever. The code
>> basically looks like some variation of this in most setattr()
>> implementations:
>>
>>         if (ia_valid & ATTR_MODE)
>>                 rc = posix_acl_chmod(inode, inode->i_mode);
>>
>> but the mode we're changing to (and what ATTR_MODE guards) is actually
>> attr->ia_mode, not inode->i_mode.
>   Yes, but posix_acl_chmod() is called after setattr_copy() was done so
> inode->i_mode should be the same as attr->ia_mode. Whether i_mode or
> ia_mode is mode logical depends on whether you view posix_acl_chmod() as
> "sync current i_mode into acls" or "reflect this i_mode change in acls".
> I agree the function name suggests more the latter semantics.
>
>> And quite frankly, passing in inode->i_mode looks stupid, since we're
>> already passing in the inode pointer, so that's just redundant and
>> pointless information.
>   Yes, it looks stupid. We could almost drop that argument, except that f2fs
> tries to play some tricks with i_mode and stores i_mode in a different
> place when acls are enabled. Huh? Jaegeuk, can you explain why are you
> doing that?

As described to Christoph before, the reason is for acl consistency
between on-disk xattr->mode and on-disk inode->mode.

Previously, there are three i_modes managed by:
                       inode->mode   on-disk xattr->mode  on-disk->i_mode
f2fs_setattr            [x]                       y                       y
[update_inode]       x                        y                      [x]
[checkpoint]            x                       [y]                      x
__f2fs_setxattr        x                       [x]                      x

In this flow, f2fs is able to break the consistency between on-disk
xattr->mode and on-disk->i_mode after checkpoint followed by
sudden-power-off.

So, fi->i_mode was introduced to address the problem.
The new f2fs_setattr triggers:
                inode->mode   fi->i_mode  on-disk xattr->mode  on-disk->i_mode
f2fs_setattr             y                [x]                     y
                      y
[update_inode]       y                 x                      y
                  y
[checkpoint]            y                 x                      y
                     y
__f2fs_setxattr       [x]                x                     [x]
                   [x]

Finally, __f2fs_setxattr synchronizes inode->mode, on-disk xattr->mode,
and on-disk inode->i_mode all together.

Am I missing something?

Thanks,

>
>                                                                 Honza
> --
> Jan Kara <jack@suse.cz>
> SUSE Labs, CR
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [git pull] vfs pile 1
  2014-01-29  3:26 ` Linus Torvalds
@ 2014-01-29 13:37   ` Jan Kara
  2014-01-30  2:02     ` Kim Jaegeuk
  2014-01-30 13:07   ` Christoph Hellwig
  1 sibling, 1 reply; 33+ messages in thread
From: Jan Kara @ 2014-01-29 13:37 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Al Viro, Jan Kara, Christoph Hellwig, Linux Kernel Mailing List,
	linux-fsdevel, Jaegeuk Kim

On Tue 28-01-14 19:26:08, Linus Torvalds wrote:
> On Mon, Jan 27, 2014 at 6:25 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >         Assorted stuff; the biggest pile here is Christoph's ACL series.
> > Plus assorted cleanups and fixes all over the place...  There will be
> > another pile later this week.
> 
> The posix_acl_chmod() code looks wrong.
> 
> Not that it looked right before either, but whatever. The code
> basically looks like some variation of this in most setattr()
> implementations:
> 
>         if (ia_valid & ATTR_MODE)
>                 rc = posix_acl_chmod(inode, inode->i_mode);
> 
> but the mode we're changing to (and what ATTR_MODE guards) is actually
> attr->ia_mode, not inode->i_mode.
  Yes, but posix_acl_chmod() is called after setattr_copy() was done so
inode->i_mode should be the same as attr->ia_mode. Whether i_mode or
ia_mode is mode logical depends on whether you view posix_acl_chmod() as
"sync current i_mode into acls" or "reflect this i_mode change in acls".
I agree the function name suggests more the latter semantics.

> And quite frankly, passing in inode->i_mode looks stupid, since we're
> already passing in the inode pointer, so that's just redundant and
> pointless information.
  Yes, it looks stupid. We could almost drop that argument, except that f2fs
tries to play some tricks with i_mode and stores i_mode in a different
place when acls are enabled. Huh? Jaegeuk, can you explain why are you
doing that?

								Honza
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

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

* Re: [git pull] vfs pile 1
  2014-01-27 14:25 Al Viro
  2014-01-27 23:05 ` Stephen Rothwell
@ 2014-01-29  3:26 ` Linus Torvalds
  2014-01-29 13:37   ` Jan Kara
  2014-01-30 13:07   ` Christoph Hellwig
  1 sibling, 2 replies; 33+ messages in thread
From: Linus Torvalds @ 2014-01-29  3:26 UTC (permalink / raw)
  To: Al Viro, Jan Kara, Christoph Hellwig
  Cc: Linux Kernel Mailing List, linux-fsdevel

On Mon, Jan 27, 2014 at 6:25 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>         Assorted stuff; the biggest pile here is Christoph's ACL series.
> Plus assorted cleanups and fixes all over the place...  There will be
> another pile later this week.

The posix_acl_chmod() code looks wrong.

Not that it looked right before either, but whatever. The code
basically looks like some variation of this in most setattr()
implementations:

        if (ia_valid & ATTR_MODE)
                rc = posix_acl_chmod(inode, inode->i_mode);

but the mode we're changing to (and what ATTR_MODE guards) is actually
attr->ia_mode, not inode->i_mode. And quite frankly, passing in
inode->i_mode looks stupid, since we're already passing in the inode
pointer, so that's just redundant and pointless information.

Anyway, I noticed this after doing the (untested, and still un-acked -
hint, hint) ceph conversion. In that, I made ceph use attr->ia_mode.
Maybe that was wrong, but at least it's not insane and stupid like the
other filesystem implementations are.

Comments?

              Linus

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

* Re: [git pull] vfs pile 1
  2014-01-27 14:25 Al Viro
@ 2014-01-27 23:05 ` Stephen Rothwell
  2014-01-29  3:26 ` Linus Torvalds
  1 sibling, 0 replies; 33+ messages in thread
From: Stephen Rothwell @ 2014-01-27 23:05 UTC (permalink / raw)
  To: Al Viro; +Cc: Linus Torvalds, linux-kernel, linux-fsdevel

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

Hi Al,

On Mon, 27 Jan 2014 14:25:20 +0000 Al Viro <viro@ZenIV.linux.org.uk> wrote:
>
> 	Assorted stuff; the biggest pile here is Christoph's ACL series.
> Plus assorted cleanups and fixes all over the place...  There will be
> another pile later this week.
> 
> There's a couple of conflicts - rcupdate.h and posix_acl.h; proposed resolution
> in vfs.git#conflict-resolution.  Please, pull from the usual place -
> git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Yet again, none of this has been anywhere near linux-next, in fact there
has been nothing in the vfs tree since v3.13-rc1 :-(

Some of these patches are dated last December, yet none of them were
committed to that tree before last Friday.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

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

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

* [git pull] vfs pile 1
@ 2014-01-27 14:25 Al Viro
  2014-01-27 23:05 ` Stephen Rothwell
  2014-01-29  3:26 ` Linus Torvalds
  0 siblings, 2 replies; 33+ messages in thread
From: Al Viro @ 2014-01-27 14:25 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

	Assorted stuff; the biggest pile here is Christoph's ACL series.
Plus assorted cleanups and fixes all over the place...  There will be
another pile later this week.

There's a couple of conflicts - rcupdate.h and posix_acl.h; proposed resolution
in vfs.git#conflict-resolution.  Please, pull from the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Shortlog:
Al Viro (13):
      ecryptfs: fix failure handling in ->readlink()
      xfs: switch to kfree_put_link()
      affs: use ->kill_sb() to simplify ->put_super() and failure exits of ->mount()
      cramfs: get rid of ->put_super()
      cramfs: take headers to fs/cramfs
      efs: get rid of ->put_super()
      qnx4: clean qnx4_fill_super() up
      btrfs: sanitize BTRFS_IOC_FILE_EXTENT_SAME
      eventfd_ctx_fdget(): use fdget() instead of fget()
      nls: have register_nls() set ->owner
      afs: get rid of junk in fs/afs/proc.c
      kill reiserfs_bdevname()
      __dentry_path() fixes

Christoph Hellwig (21):
      reiserfs: prefix ACL symbols with reiserfs_
      fs: merge xattr_acl.c into posix_acl.c
      fs: add get_acl helper
      fs: add a set_acl inode operation
      fs: add generic xattr_acl handlers
      fs: make posix_acl_chmod more useful
      fs: make posix_acl_create more useful
      btrfs: use generic posix ACL infrastructure
      ext2/3/4: use generic posix ACL infrastructure
      f2fs: use generic posix ACL infrastructure
      hfsplus: use generic posix ACL infrastructure
      jffs2: use generic posix ACL infrastructure
      ocfs2: use generic posix ACL infrastructure
      reiserfs: use generic posix ACL infrastructure
      xfs: use generic posix ACL infrastructure
      jfs: use generic posix ACL infrastructure
      gfs2: use generic posix ACL infrastructure
      nfs: use generic posix ACL infrastructure for v3 Posix ACLs
      fs: remove generic_acl
      nfsd: use get_acl and ->set_acl
      hfsplus: remove can_set_xattr

Eric W. Biederman (2):
      vfs: Is mounted should be testing mnt_ns for NULL or error.
      vfs: Remove second variable named error in __dentry_path

Oleg Nesterov (5):
      introduce __fcheck_files() to fix rcu_dereference_check_fdtable(), kill rcu_my_thread_group_empty()
      change close_files() to use rcu_dereference_raw(files->fdt)
      fs: factor out common code in fget() and fget_raw()
      fs: factor out common code in fget_light() and fget_raw_light()
      fs: __fget_light() can use __fget() in slow path

Rakesh Pandit (1):
      befs: iget_locked() doesn't return an ERR_PTR

Steven Whitehouse (1):
      Fix race when checking i_size on direct i/o read

Diffstat:
 arch/blackfin/kernel/setup.c                      |    2 +-
 arch/cris/arch-v32/drivers/axisflashmap.c         |    2 -
 fs/9p/acl.c                                       |    4 +-
 fs/Kconfig                                        |    6 +-
 fs/Makefile                                       |    3 +-
 fs/affs/super.c                                   |   57 ++-
 fs/afs/internal.h                                 |    1 -
 fs/afs/proc.c                                     |  122 ++----
 fs/befs/linuxvfs.c                                |    4 +-
 fs/btrfs/acl.c                                    |  142 +------
 fs/btrfs/ctree.h                                  |    7 +-
 fs/btrfs/inode.c                                  |    7 +-
 fs/btrfs/ioctl.c                                  |   70 ++--
 fs/btrfs/xattr.c                                  |    5 +-
 fs/btrfs/xattr.h                                  |    2 -
 fs/cramfs/inode.c                                 |   50 ++-
 include/linux/cramfs_fs.h => fs/cramfs/internal.h |    6 -
 fs/cramfs/uncompress.c                            |    2 +-
 fs/dcache.c                                       |   10 +-
 fs/ecryptfs/inode.c                               |   29 +-
 fs/efs/super.c                                    |   39 +-
 fs/eventfd.c                                      |   13 +-
 fs/ext2/acl.c                                     |  188 +--------
 fs/ext2/acl.h                                     |    8 +-
 fs/ext2/file.c                                    |    1 +
 fs/ext2/inode.c                                   |    2 +-
 fs/ext2/namei.c                                   |    2 +
 fs/ext2/xattr.c                                   |    8 +-
 fs/ext2/xattr.h                                   |    2 -
 fs/ext3/acl.c                                     |  223 ++---------
 fs/ext3/acl.h                                     |    9 +-
 fs/ext3/file.c                                    |    1 +
 fs/ext3/inode.c                                   |    2 +-
 fs/ext3/namei.c                                   |    2 +
 fs/ext3/xattr.c                                   |    8 +-
 fs/ext3/xattr.h                                   |    2 -
 fs/ext4/acl.c                                     |  223 ++---------
 fs/ext4/acl.h                                     |    9 +-
 fs/ext4/file.c                                    |    1 +
 fs/ext4/inode.c                                   |    2 +-
 fs/ext4/namei.c                                   |    2 +
 fs/ext4/xattr.c                                   |    8 +-
 fs/ext4/xattr.h                                   |    2 -
 fs/f2fs/acl.c                                     |  174 +--------
 fs/f2fs/acl.h                                     |    7 +-
 fs/f2fs/f2fs.h                                    |    4 +
 fs/f2fs/file.c                                    |    3 +-
 fs/f2fs/namei.c                                   |    2 +
 fs/f2fs/xattr.c                                   |    9 +-
 fs/f2fs/xattr.h                                   |    2 -
 fs/file.c                                         |   98 ++---
 fs/fuse/file.c                                    |    3 +
 fs/generic_acl.c                                  |  184 ---------
 fs/gfs2/acl.c                                     |  234 ++---------
 fs/gfs2/acl.h                                     |    4 +-
 fs/gfs2/inode.c                                   |   34 +-
 fs/gfs2/xattr.c                                   |    4 +-
 fs/hfsplus/acl.h                                  |    9 +-
 fs/hfsplus/dir.c                                  |    1 +
 fs/hfsplus/inode.c                                |    3 +-
 fs/hfsplus/posix_acl.c                            |  168 +-------
 fs/hfsplus/xattr.c                                |   92 +----
 fs/hfsplus/xattr.h                                |    2 -
 fs/jffs2/acl.c                                    |  141 +------
 fs/jffs2/acl.h                                    |    7 +-
 fs/jffs2/dir.c                                    |    1 +
 fs/jffs2/file.c                                   |    1 +
 fs/jffs2/fs.c                                     |    7 +-
 fs/jffs2/symlink.c                                |    1 -
 fs/jffs2/xattr.c                                  |    9 +-
 fs/jfs/acl.c                                      |  105 ++---
 fs/jfs/file.c                                     |    4 +-
 fs/jfs/jfs_acl.h                                  |    7 +-
 fs/jfs/jfs_xattr.h                                |    2 +
 fs/jfs/namei.c                                    |    1 +
 fs/jfs/super.c                                    |    2 +
 fs/jfs/xattr.c                                    |  108 ++----
 fs/mount.h                                        |    2 +-
 fs/namei.c                                        |   24 +-
 fs/nfs/inode.c                                    |    4 -
 fs/nfs/nfs3acl.c                                  |  291 +++-----------
 fs/nfs/nfs3proc.c                                 |   76 ++--
 fs/nfs/nfs3super.c                                |    3 +
 fs/nfsd/acl.h                                     |   16 +-
 fs/nfsd/nfs2acl.c                                 |   72 ++--
 fs/nfsd/nfs3acl.c                                 |   62 +--
 fs/nfsd/nfs4acl.c                                 |  120 ++++--
 fs/nfsd/nfs4proc.c                                |    1 +
 fs/nfsd/vfs.c                                     |  241 ------------
 fs/nfsd/vfs.h                                     |    8 -
 fs/nls/mac-celtic.c                               |    1 -
 fs/nls/mac-centeuro.c                             |    1 -
 fs/nls/mac-croatian.c                             |    1 -
 fs/nls/mac-cyrillic.c                             |    1 -
 fs/nls/mac-gaelic.c                               |    1 -
 fs/nls/mac-greek.c                                |    1 -
 fs/nls/mac-iceland.c                              |    1 -
 fs/nls/mac-inuit.c                                |    1 -
 fs/nls/mac-roman.c                                |    1 -
 fs/nls/mac-romanian.c                             |    1 -
 fs/nls/mac-turkish.c                              |    1 -
 fs/nls/nls_ascii.c                                |    1 -
 fs/nls/nls_base.c                                 |    5 +-
 fs/nls/nls_cp1250.c                               |    1 -
 fs/nls/nls_cp1251.c                               |    1 -
 fs/nls/nls_cp1255.c                               |    1 -
 fs/nls/nls_cp437.c                                |    1 -
 fs/nls/nls_cp737.c                                |    1 -
 fs/nls/nls_cp775.c                                |    1 -
 fs/nls/nls_cp850.c                                |    1 -
 fs/nls/nls_cp852.c                                |    1 -
 fs/nls/nls_cp855.c                                |    1 -
 fs/nls/nls_cp857.c                                |    1 -
 fs/nls/nls_cp860.c                                |    1 -
 fs/nls/nls_cp861.c                                |    1 -
 fs/nls/nls_cp862.c                                |    1 -
 fs/nls/nls_cp863.c                                |    1 -
 fs/nls/nls_cp864.c                                |    1 -
 fs/nls/nls_cp865.c                                |    1 -
 fs/nls/nls_cp866.c                                |    1 -
 fs/nls/nls_cp869.c                                |    1 -
 fs/nls/nls_cp874.c                                |    1 -
 fs/nls/nls_cp932.c                                |    1 -
 fs/nls/nls_cp936.c                                |    1 -
 fs/nls/nls_cp949.c                                |    1 -
 fs/nls/nls_cp950.c                                |    1 -
 fs/nls/nls_euc-jp.c                               |    1 -
 fs/nls/nls_iso8859-1.c                            |    1 -
 fs/nls/nls_iso8859-13.c                           |    1 -
 fs/nls/nls_iso8859-14.c                           |    1 -
 fs/nls/nls_iso8859-15.c                           |    1 -
 fs/nls/nls_iso8859-2.c                            |    1 -
 fs/nls/nls_iso8859-3.c                            |    1 -
 fs/nls/nls_iso8859-4.c                            |    1 -
 fs/nls/nls_iso8859-5.c                            |    1 -
 fs/nls/nls_iso8859-6.c                            |    1 -
 fs/nls/nls_iso8859-7.c                            |    1 -
 fs/nls/nls_iso8859-9.c                            |    1 -
 fs/nls/nls_koi8-r.c                               |    1 -
 fs/nls/nls_koi8-ru.c                              |    1 -
 fs/nls/nls_koi8-u.c                               |    1 -
 fs/nls/nls_utf8.c                                 |    1 -
 fs/ocfs2/acl.c                                    |  234 +----------
 fs/ocfs2/acl.h                                    |   13 +-
 fs/ocfs2/file.c                                   |    4 +-
 fs/ocfs2/namei.c                                  |   25 +-
 fs/ocfs2/refcounttree.c                           |   19 +-
 fs/ocfs2/xattr.c                                  |   21 +-
 fs/ocfs2/xattr.h                                  |    6 +-
 fs/posix_acl.c                                    |  428 ++++++++++++++++++++-
 fs/qnx4/inode.c                                   |   63 ++-
 fs/qnx4/qnx4.h                                    |    2 -
 fs/reiserfs/acl.h                                 |    4 +-
 fs/reiserfs/file.c                                |    1 +
 fs/reiserfs/namei.c                               |    4 +-
 fs/reiserfs/procfs.c                              |    4 +-
 fs/reiserfs/reiserfs.h                            |    8 -
 fs/reiserfs/super.c                               |    8 +-
 fs/reiserfs/xattr.c                               |    5 +-
 fs/reiserfs/xattr_acl.c                           |  190 ++-------
 fs/xattr_acl.c                                    |  180 ---------
 fs/xfs/xfs_acl.c                                  |  151 +-------
 fs/xfs/xfs_acl.h                                  |    9 +-
 fs/xfs/xfs_iops.c                                 |   55 ++-
 fs/xfs/xfs_iops.h                                 |    2 +-
 fs/xfs/xfs_xattr.c                                |    4 +-
 include/linux/cramfs_fs_sb.h                      |   20 -
 include/linux/fdtable.h                           |   35 +-
 include/linux/fs.h                                |    1 +
 include/linux/generic_acl.h                       |   14 -
 include/linux/nfs_fs.h                            |   24 +-
 include/linux/nls.h                               |    3 +-
 include/linux/posix_acl.h                         |   43 ++-
 include/linux/posix_acl_xattr.h                   |    3 +
 include/linux/rcupdate.h                          |    2 -
 init/do_mounts_rd.c                               |    2 +-
 kernel/rcu/update.c                               |   11 -
 mm/filemap.c                                      |   42 +-
 mm/shmem.c                                        |   57 ++-
 179 files changed, 1542 insertions(+), 3852 deletions(-)
 rename include/linux/cramfs_fs.h => fs/cramfs/internal.h (70%)
 delete mode 100644 fs/generic_acl.c
 delete mode 100644 fs/xattr_acl.c
 delete mode 100644 include/linux/cramfs_fs_sb.h
 delete mode 100644 include/linux/generic_acl.h

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

* [git pull] vfs pile 1
@ 2013-02-27  3:24 Al Viro
  0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2013-02-27  3:24 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

	Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent
locking violations, etc.  The most visible changes here are death of
FS_REVAL_DOT (replaced with "has ->d_weak_revalidate()") and a new helper
getting from struct file to inode.  Some bits of preparation to xattr
method interface changes.  Misc patches by various people sent this cycle
*and* ocfs2 fixes from several cycles ago that should've been upstream right
then.

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

PS: the next vfs pile will be xattr stuff.

Shortlog:
Al Viro (33):
      mount: consolidate permission checks
      new helper: file_inode(file)
      propagate error from get_empty_filp() to its callers
      clean shmem_file_setup() a bit
      link_path_walk(): move assignments to nd->last/nd->last_type up
      get rid of name and type arguments of walk_component()
      lookup_fast: get rid of name argument
      lookup_slow: get rid of name argument
      constify __d_lookup() arguments
      constify d_lookup() arguments
      __d_materialise_unique() is too generic
      xenfs: switch to pure simple_fill_super()
      hostfs: directory methods have no business in non-directory inode_operations
      spufs_mkdir(): don't d_add() on negative parent
      oprofilefs: add missing ->i_mutex locking in object creation
      shmem_setup_file(): use d_alloc_pseudo() instead of d_alloc()
      hugetlb_file_setup(): use d_alloc_pseudo()
      lirc: get rid of bogus checks
      tegra: don't wank with d_find_alias()
      9p: add fid-based variant of v9fs_xattr_set()
      9p: lift the call of set_cached_acl() into the callers of v9fs_set_acl()
      9p: switch v9fs_set_acl() from dentry to fid
      9p: switch v9fs_acl_chmod() from dentry to inode+fid
      9p: split dropping the acls from v9fs_set_create_acl()
      9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()
      d_hash_and_lookup(): export, switch open-coded instances
      default SET_PERSONALITY() in linux/elf.h
      switch vfs_getattr() to struct path
      kill f_vfsmnt
      export kernel_write(), convert open-coded instances
      target: writev() on single-element vector is pointless
      get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero
      saner proc_get_inode() calling conventions

Anatol Pomozov (1):
      fs: Preserve error code in get_empty_filp(), part 2

Dan Carpenter (1):
      ocfs2/dlm: use GFP_ATOMIC inside a spin_lock

J. Bruce Fields (1):
      nfsd: handle vfs_getattr errors in acl protocol

Jan Kara (2):
      fs: Fix possible use-after-free with AIO
      ocfs2: fix possible use-after-free with AIO

Jeff Layton (2):
      vfs: remove d_path_with_unreachable
      vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op

Maxim Patlasov (1):
      proc: avoid extra pde_put() in proc_fill_super()

Namjae Jeon (1):
      fs: encode_fh: return FILEID_INVALID if invalid fid_type

Sage Weil (1):
      ceph: prepopulate inodes only when request is aborted

Sunil Mushran (1):
      ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path

Yuanhan Liu (1):
      fs/exec.c: make bprm_mm_init() static

Zhao Hongjiang (1):
      fs: change return values from -EACCES to -EPERM

Diffstat:
 Documentation/filesystems/Locking               |    2 +
 Documentation/filesystems/porting               |    4 +
 Documentation/filesystems/vfs.txt               |   24 ++++++-
 arch/alpha/kernel/srm_env.c                     |    2 +-
 arch/avr32/include/asm/elf.h                    |    3 -
 arch/blackfin/include/asm/elf.h                 |    3 -
 arch/blackfin/kernel/cplbinfo.c                 |    2 +-
 arch/c6x/include/asm/elf.h                      |    3 -
 arch/cris/arch-v10/drivers/sync_serial.c        |    8 +-
 arch/cris/arch-v32/drivers/cryptocop.c          |    3 +-
 arch/cris/arch-v32/drivers/sync_serial.c        |    8 +-
 arch/cris/include/asm/elf.h                     |    3 -
 arch/frv/include/asm/elf.h                      |    3 -
 arch/h8300/include/asm/elf.h                    |    3 -
 arch/hexagon/include/asm/elf.h                  |    5 --
 arch/ia64/include/asm/elf.h                     |    3 -
 arch/ia64/kernel/perfmon.c                      |    4 +-
 arch/ia64/kernel/salinfo.c                      |    6 +-
 arch/m32r/include/asm/elf.h                     |    3 -
 arch/m68k/include/asm/elf.h                     |    3 -
 arch/mips/kernel/rtlx.c                         |   13 +---
 arch/mips/kernel/vpe.c                          |    2 +-
 arch/mips/lasat/picvue_proc.c                   |    2 +-
 arch/mn10300/include/asm/elf.h                  |    5 --
 arch/openrisc/include/asm/elf.h                 |    3 -
 arch/powerpc/include/asm/elf.h                  |    2 -
 arch/powerpc/kernel/proc_powerpc.c              |    6 +-
 arch/powerpc/kernel/rtas_flash.c                |   16 ++--
 arch/powerpc/platforms/cell/spufs/coredump.c    |    4 +-
 arch/powerpc/platforms/cell/spufs/file.c        |    6 +-
 arch/powerpc/platforms/cell/spufs/inode.c       |   68 +++++++-------------
 arch/powerpc/platforms/cell/spufs/syscalls.c    |    2 +-
 arch/powerpc/platforms/pseries/hvCall_inst.c    |    2 +-
 arch/powerpc/platforms/pseries/scanlog.c        |    8 +--
 arch/s390/hypfs/hypfs_dbfs.c                    |    2 +-
 arch/s390/hypfs/inode.c                         |    2 +-
 arch/s390/include/asm/elf.h                     |    5 +-
 arch/s390/kernel/debug.c                        |    2 +-
 arch/s390/pci/pci_debug.c                       |    4 +-
 arch/score/include/asm/elf.h                    |    5 --
 arch/sh/mm/alignment.c                          |    2 +-
 arch/sparc/include/asm/elf_32.h                 |    3 -
 arch/x86/ia32/ia32_aout.c                       |    6 +-
 arch/x86/kernel/cpuid.c                         |    4 +-
 drivers/base/devtmpfs.c                         |    3 +-
 drivers/base/firmware_class.c                   |    2 +-
 drivers/block/DAC960.c                          |    2 +-
 drivers/block/loop.c                            |    2 +-
 drivers/block/nbd.c                             |    2 +-
 drivers/char/dsp56k.c                           |    8 +-
 drivers/char/dtlk.c                             |    4 +-
 drivers/char/lp.c                               |    8 +-
 drivers/char/mem.c                              |    4 +-
 drivers/char/nsc_gpio.c                         |    4 +-
 drivers/char/pcmcia/cm4000_cs.c                 |    2 +-
 drivers/char/ppdev.c                            |    6 +-
 drivers/char/ps3flash.c                         |    2 +-
 drivers/char/raw.c                              |    2 +-
 drivers/char/sonypi.c                           |    2 +-
 drivers/char/tb0219.c                           |    4 +-
 drivers/gpu/drm/gma500/gtt.c                    |    2 +-
 drivers/gpu/drm/i915/i915_gem.c                 |   10 ++--
 drivers/gpu/drm/ttm/ttm_tt.c                    |    4 +-
 drivers/gpu/drm/udl/udl_gem.c                   |    2 +-
 drivers/hid/hid-roccat.c                        |    2 +-
 drivers/hid/hidraw.c                            |    6 +-
 drivers/i2c/i2c-dev.c                           |    4 +-
 drivers/ide/ide-proc.c                          |    4 +-
 drivers/infiniband/core/uverbs_cmd.c            |    2 +-
 drivers/infiniband/hw/ipath/ipath_file_ops.c    |    4 +-
 drivers/infiniband/hw/ipath/ipath_fs.c          |    6 +-
 drivers/infiniband/hw/qib/qib_file_ops.c        |    2 +-
 drivers/infiniband/hw/qib/qib_fs.c              |    4 +-
 drivers/iommu/tegra-smmu.c                      |   16 +----
 drivers/isdn/hardware/eicon/divasproc.c         |    6 +-
 drivers/isdn/hysdn/hysdn_proclog.c              |    4 +-
 drivers/isdn/i4l/isdn_common.c                  |    8 +-
 drivers/isdn/i4l/isdn_ppp.c                     |    2 +-
 drivers/md/bitmap.c                             |    4 +-
 drivers/media/pci/zoran/zoran_procfs.c          |    2 +-
 drivers/media/rc/lirc_dev.c                     |   19 ++----
 drivers/media/v4l2-core/v4l2-dev.c              |    2 +-
 drivers/mtd/nand/nandsim.c                      |   34 ++++------
 drivers/mtd/ubi/cdev.c                          |    2 +-
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c |    2 +-
 drivers/net/wan/cosa.c                          |    4 +-
 drivers/net/wireless/ray_cs.c                   |    2 +-
 drivers/oprofile/oprofilefs.c                   |   16 ++++-
 drivers/parisc/led.c                            |    2 +-
 drivers/pci/proc.c                              |   10 ++--
 drivers/platform/x86/sony-laptop.c              |    2 +-
 drivers/platform/x86/thinkpad_acpi.c            |    2 +-
 drivers/platform/x86/toshiba_acpi.c             |    8 +-
 drivers/pnp/isapnp/proc.c                       |    4 +-
 drivers/pnp/pnpbios/proc.c                      |    2 +-
 drivers/s390/char/fs3270.c                      |    4 +-
 drivers/s390/char/tape_char.c                   |    8 +-
 drivers/s390/char/vmur.c                        |    2 +-
 drivers/s390/cio/qdio_debug.c                   |    4 +-
 drivers/sbus/char/display7seg.c                 |    2 +-
 drivers/scsi/3w-9xxx.c                          |    2 +-
 drivers/scsi/3w-sas.c                           |    2 +-
 drivers/scsi/3w-xxxx.c                          |    2 +-
 drivers/scsi/csiostor/csio_init.c               |    2 +-
 drivers/scsi/dpt_i2o.c                          |    4 +-
 drivers/scsi/st.c                               |    2 +-
 drivers/staging/bcm/Misc.c                      |    2 +-
 drivers/staging/ccg/f_mass_storage.c            |    2 +-
 drivers/staging/ccg/rndis.c                     |    2 +-
 drivers/staging/ccg/storage_common.c            |    2 +-
 drivers/staging/dgrp/dgrp_specproc.c            |    4 +-
 drivers/staging/omapdrm/omap_gem_helpers.c      |    2 +-
 drivers/staging/usbip/usbip_common.c            |    2 +-
 drivers/staging/vme/devices/vme_user.c          |    8 +-
 drivers/target/target_core_alua.c               |   35 +++-------
 drivers/target/target_core_file.c               |    2 +-
 drivers/target/target_core_pr.c                 |   27 ++------
 drivers/tty/vt/vc_screen.c                      |    8 +-
 drivers/usb/core/devices.c                      |    4 +-
 drivers/usb/core/devio.c                        |    6 +-
 drivers/usb/gadget/atmel_usba_udc.c             |    8 +-
 drivers/usb/gadget/f_mass_storage.c             |    2 +-
 drivers/usb/gadget/printer.c                    |    2 +-
 drivers/usb/gadget/rndis.c                      |    2 +-
 drivers/usb/gadget/storage_common.c             |    2 +-
 drivers/video/fb_defio.c                        |    2 +-
 drivers/video/fbmem.c                           |    2 +-
 drivers/video/msm/mdp.c                         |    2 +-
 drivers/watchdog/cpwd.c                         |    4 +-
 drivers/xen/xenfs/super.c                       |   66 +++----------------
 drivers/zorro/proc.c                            |    4 +-
 fs/9p/acl.c                                     |   37 ++++++-----
 fs/9p/acl.h                                     |   20 ++++--
 fs/9p/vfs_dentry.c                              |    1 +
 fs/9p/vfs_file.c                                |   10 ++--
 fs/9p/vfs_inode_dotl.c                          |   75 +++++++++++-----------
 fs/9p/vfs_super.c                               |    2 +-
 fs/9p/xattr.c                                   |   33 +++++----
 fs/9p/xattr.h                                   |    2 +
 fs/adfs/dir.c                                   |    2 +-
 fs/affs/dir.c                                   |    2 +-
 fs/afs/dir.c                                    |    4 +-
 fs/afs/flock.c                                  |    4 +-
 fs/afs/write.c                                  |    7 +-
 fs/anon_inodes.c                                |   10 +--
 fs/autofs4/autofs_i.h                           |    2 +-
 fs/autofs4/dev-ioctl.c                          |    2 +-
 fs/autofs4/root.c                               |    6 +-
 fs/befs/linuxvfs.c                              |    2 +-
 fs/bfs/dir.c                                    |    2 +-
 fs/binfmt_aout.c                                |    4 +-
 fs/binfmt_elf.c                                 |    2 +-
 fs/binfmt_elf_fdpic.c                           |    4 +-
 fs/binfmt_flat.c                                |    2 +-
 fs/binfmt_misc.c                                |    4 +-
 fs/block_dev.c                                  |    2 +-
 fs/btrfs/export.c                               |    4 +-
 fs/btrfs/file.c                                 |    8 +-
 fs/btrfs/inode.c                                |    4 +-
 fs/btrfs/ioctl.c                                |   52 +++++++-------
 fs/btrfs/send.c                                 |    2 +-
 fs/buffer.c                                     |    4 +-
 fs/ceph/addr.c                                  |   12 ++--
 fs/ceph/dir.c                                   |    6 +-
 fs/ceph/export.c                                |    4 +-
 fs/ceph/file.c                                  |   10 ++--
 fs/ceph/inode.c                                 |   40 +++++++++++-
 fs/ceph/ioctl.c                                 |   16 ++--
 fs/ceph/locks.c                                 |    2 +-
 fs/cifs/cifsfs.c                                |    6 +-
 fs/cifs/file.c                                  |   26 ++++----
 fs/cifs/inode.c                                 |    8 +-
 fs/cifs/ioctl.c                                 |    2 +-
 fs/cifs/readdir.c                               |   12 ++--
 fs/coda/dir.c                                   |    2 +-
 fs/coda/file.c                                  |   12 ++--
 fs/coda/inode.c                                 |    2 +-
 fs/coda/pioctl.c                                |    2 +-
 fs/compat_ioctl.c                               |    2 +-
 fs/configfs/dir.c                               |    2 +-
 fs/coredump.c                                   |    4 +-
 fs/cramfs/inode.c                               |    2 +-
 fs/dcache.c                                     |   80 ++++++-----------------
 fs/direct-io.c                                  |    2 +-
 fs/dlm/config.c                                 |    2 +-
 fs/ecryptfs/ecryptfs_kernel.h                   |    6 ++
 fs/ecryptfs/file.c                              |    4 +-
 fs/ecryptfs/inode.c                             |    3 +-
 fs/ecryptfs/read_write.c                        |    6 +--
 fs/efs/dir.c                                    |    2 +-
 fs/exec.c                                       |   10 ++--
 fs/exofs/dir.c                                  |    2 +-
 fs/ext2/dir.c                                   |    2 +-
 fs/ext2/ioctl.c                                 |    2 +-
 fs/ext3/dir.c                                   |    8 +-
 fs/ext3/ioctl.c                                 |    2 +-
 fs/ext3/namei.c                                 |    4 +-
 fs/ext4/dir.c                                   |    8 +-
 fs/ext4/extents.c                               |    4 +-
 fs/ext4/file.c                                  |    2 +-
 fs/ext4/inline.c                                |    2 +-
 fs/ext4/inode.c                                 |    6 +-
 fs/ext4/ioctl.c                                 |    2 +-
 fs/ext4/move_extent.c                           |    6 +-
 fs/ext4/namei.c                                 |    2 +-
 fs/ext4/super.c                                 |    2 +-
 fs/f2fs/dir.c                                   |    2 +-
 fs/fat/dir.c                                    |    6 +-
 fs/fat/file.c                                   |    4 +-
 fs/fcntl.c                                      |    2 +-
 fs/file_table.c                                 |   31 ++++-----
 fs/freevxfs/vxfs_lookup.c                       |    2 +-
 fs/fuse/control.c                               |    2 +-
 fs/fuse/dir.c                                   |    2 +-
 fs/fuse/inode.c                                 |    2 +-
 fs/gfs2/export.c                                |    4 +-
 fs/gfs2/file.c                                  |   17 ++---
 fs/gfs2/rgrp.c                                  |    2 +-
 fs/gfs2/sys.c                                   |   18 +++---
 fs/hfs/dir.c                                    |    2 +-
 fs/hfs/inode.c                                  |    2 +-
 fs/hfsplus/dir.c                                |    2 +-
 fs/hfsplus/inode.c                              |    2 +-
 fs/hfsplus/ioctl.c                              |    4 +-
 fs/hostfs/hostfs_kern.c                         |   10 +---
 fs/hpfs/dir.c                                   |    4 +-
 fs/hpfs/file.c                                  |    2 +-
 fs/hppfs/hppfs.c                                |    8 +-
 fs/hugetlbfs/inode.c                            |   33 ++++++----
 fs/inode.c                                      |    2 +-
 fs/ioctl.c                                      |   12 ++--
 fs/isofs/compress.c                             |    2 +-
 fs/isofs/dir.c                                  |    2 +-
 fs/isofs/export.c                               |    4 +-
 fs/jffs2/dir.c                                  |    4 +-
 fs/jfs/ioctl.c                                  |    2 +-
 fs/jfs/jfs_dtree.c                              |    2 +-
 fs/lockd/clntlock.c                             |    2 +-
 fs/lockd/clntproc.c                             |    2 +-
 fs/lockd/svclock.c                              |   16 ++--
 fs/lockd/svcsubs.c                              |    2 +-
 fs/locks.c                                      |   24 ++++----
 fs/logfs/dir.c                                  |    4 +-
 fs/logfs/file.c                                 |    2 +-
 fs/minix/dir.c                                  |    2 +-
 fs/namei.c                                      |   67 ++++++++-----------
 fs/namespace.c                                  |   42 ++----------
 fs/ncpfs/dir.c                                  |   10 +--
 fs/ncpfs/inode.c                                |    4 +-
 fs/ncpfs/ioctl.c                                |    4 +-
 fs/ncpfs/mmap.c                                 |    2 +-
 fs/nfs/dir.c                                    |   48 ++++++++++++-
 fs/nfs/file.c                                   |    2 +-
 fs/nfs/idmap.c                                  |    2 +-
 fs/nfs/inode.c                                  |    4 +-
 fs/nfs/nfs3proc.c                               |    2 +-
 fs/nfs/nfs4file.c                               |    2 +-
 fs/nfs/nfs4super.c                              |    6 +-
 fs/nfs/proc.c                                   |    2 +-
 fs/nfs/super.c                                  |    6 +-
 fs/nfsd/fault_inject.c                          |    6 +-
 fs/nfsd/nfs2acl.c                               |   23 ++++++-
 fs/nfsd/nfs3proc.c                              |    5 +-
 fs/nfsd/nfs3xdr.c                               |   10 ++--
 fs/nfsd/nfs4xdr.c                               |    4 +-
 fs/nfsd/nfsctl.c                                |    2 +-
 fs/nfsd/nfsproc.c                               |   12 +---
 fs/nfsd/nfsxdr.c                                |    7 +-
 fs/nfsd/vfs.c                                   |    6 +-
 fs/nfsd/vfs.h                                   |    8 ++
 fs/nfsd/xdr.h                                   |    2 +-
 fs/nfsd/xdr3.h                                  |    2 +
 fs/nilfs2/dir.c                                 |    2 +-
 fs/nilfs2/file.c                                |    2 +-
 fs/nilfs2/ioctl.c                               |    2 +-
 fs/nilfs2/namei.c                               |    4 +-
 fs/notify/dnotify/dnotify.c                     |    4 +-
 fs/notify/fanotify/fanotify_user.c              |    2 +-
 fs/ntfs/dir.c                                   |    2 +-
 fs/ocfs2/aops.c                                 |    6 +-
 fs/ocfs2/dir.c                                  |    4 +-
 fs/ocfs2/dlm/dlmmaster.c                        |    2 +-
 fs/ocfs2/dlmfs/dlmfs.c                          |    6 +-
 fs/ocfs2/export.c                               |    4 +-
 fs/ocfs2/file.c                                 |   14 ++--
 fs/ocfs2/ioctl.c                                |    4 +-
 fs/ocfs2/mmap.c                                 |   10 ++--
 fs/ocfs2/move_extents.c                         |    2 +-
 fs/ocfs2/refcounttree.c                         |    4 +-
 fs/ocfs2/symlink.c                              |    2 +-
 fs/omfs/dir.c                                   |    4 +-
 fs/open.c                                       |   34 +++++-----
 fs/openpromfs/inode.c                           |    2 +-
 fs/pipe.c                                       |   20 +++---
 fs/proc/base.c                                  |   45 +++++++------
 fs/proc/generic.c                               |   31 ++++------
 fs/proc/inode.c                                 |   43 +++++++------
 fs/proc/nommu.c                                 |    2 +-
 fs/proc/proc_net.c                              |    2 +-
 fs/proc/proc_sysctl.c                           |    4 +-
 fs/proc/task_mmu.c                              |    6 +-
 fs/proc/task_nommu.c                            |    2 +-
 fs/qnx4/dir.c                                   |    2 +-
 fs/qnx6/dir.c                                   |    2 +-
 fs/ramfs/file-nommu.c                           |    2 +-
 fs/read_write.c                                 |    8 +-
 fs/readdir.c                                    |    2 +-
 fs/reiserfs/file.c                              |    2 +-
 fs/reiserfs/inode.c                             |    4 +-
 fs/reiserfs/ioctl.c                             |    2 +-
 fs/reiserfs/procfs.c                            |    2 +-
 fs/romfs/super.c                                |    2 +-
 fs/splice.c                                     |    7 +-
 fs/squashfs/dir.c                               |    2 +-
 fs/stat.c                                       |   13 ++--
 fs/sync.c                                       |    2 +-
 fs/sysfs/bin.c                                  |    6 +-
 fs/sysv/dir.c                                   |    2 +-
 fs/ubifs/dir.c                                  |    2 +-
 fs/ubifs/file.c                                 |    2 +-
 fs/ubifs/ioctl.c                                |    2 +-
 fs/udf/dir.c                                    |    2 +-
 fs/udf/file.c                                   |    6 +-
 fs/udf/namei.c                                  |    4 +-
 fs/ufs/dir.c                                    |    2 +-
 fs/xfs/xfs_dfrag.c                              |    8 +-
 fs/xfs/xfs_export.c                             |    4 +-
 fs/xfs/xfs_file.c                               |    4 +-
 fs/xfs/xfs_ioctl.c                              |    6 +-
 fs/xfs/xfs_ioctl32.c                            |    2 +-
 include/linux/binfmts.h                         |    1 -
 include/linux/dcache.h                          |    8 ++-
 include/linux/elf.h                             |    4 +
 include/linux/fs.h                              |   14 +++--
 include/linux/fsnotify.h                        |    2 +-
 include/linux/hugetlb.h                         |    2 +-
 include/linux/lockd/lockd.h                     |    2 +-
 ipc/mqueue.c                                    |   16 ++--
 ipc/shm.c                                       |   11 ++--
 kernel/acct.c                                   |    2 +-
 kernel/cgroup.c                                 |    6 +-
 kernel/events/core.c                            |    2 +-
 kernel/fork.c                                   |    2 +-
 kernel/irq/proc.c                               |    2 +-
 kernel/module.c                                 |    2 +-
 kernel/nsproxy.c                                |    2 +-
 kernel/relay.c                                  |    4 +-
 kernel/sys.c                                    |    8 +-
 kernel/sysctl_binary.c                          |   39 ++---------
 mm/cleancache.c                                 |    2 +-
 mm/fadvise.c                                    |    2 +-
 mm/filemap.c                                    |    2 +-
 mm/hugetlb.c                                    |    4 +-
 mm/mmap.c                                       |    8 +-
 mm/nommu.c                                      |   12 ++--
 mm/shmem.c                                      |   52 +++++++++------
 mm/swapfile.c                                   |    2 +-
 net/atm/proc.c                                  |    2 +-
 net/core/net_namespace.c                        |    2 +-
 net/ipv4/netfilter/ipt_CLUSTERIP.c              |    2 +-
 net/netfilter/xt_recent.c                       |    2 +-
 net/netlink/af_netlink.c                        |    2 +-
 net/socket.c                                    |    5 +-
 net/sunrpc/auth_gss/auth_gss.c                  |    2 +-
 net/sunrpc/cache.c                              |   28 ++++----
 net/sunrpc/rpc_pipe.c                           |   10 ++--
 net/unix/garbage.c                              |    2 +-
 security/apparmor/domain.c                      |    4 +-
 security/apparmor/file.c                        |    4 +-
 security/apparmor/lsm.c                         |    6 +-
 security/commoncap.c                            |    2 +-
 security/integrity/ima/ima_api.c                |    6 +-
 security/integrity/ima/ima_crypto.c             |    2 +-
 security/integrity/ima/ima_main.c               |    4 +-
 security/selinux/hooks.c                        |   10 ++--
 security/selinux/selinuxfs.c                    |   20 ++----
 security/smack/smack_lsm.c                      |   14 +---
 security/tomoyo/securityfs_if.c                 |    2 +-
 sound/core/info.c                               |    2 +-
 sound/core/pcm_native.c                         |    2 +-
 sound/oss/msnd_pinnacle.c                       |    6 +-
 sound/oss/soundcard.c                           |   10 ++--
 sound/sound_firmware.c                          |    2 +-
 383 files changed, 1277 insertions(+), 1424 deletions(-)

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

* [git pull] vfs pile 1
@ 2012-03-21  3:31 Al Viro
  0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2012-03-21  3:31 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

This is _not_ all; in particular, Miklos' and Jan's stuff is not there
yet.  Please, pull from the usual place -
git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Shortlog:
Al Viro (59):
      vfs: check i_nlink limits in vfs_{mkdir,rename_dir,link}
      vfs: drop_file_write_access() made static
      ecryptfs: don't bother with ->drop_inode()
      vfs: turn generic_drop_inode() into static inline
      clean up the failure exits in cifs_read_super()
      coda: clean failure exits in coda_fill_super()
      ... and the same failure exits cleanup for ocfs2
      procfs: clean proc_fill_super() up
      switch open-coded instances of d_make_root() to new helper
      ntfs: switch to d_make_root()
      fat: switch to d_make_root()
      hfsplus: switch to d_make_root()
      minixfs: switch to d_make_root()
      tidy up after d_make_root() conversion
      vfs: d_alloc_root() gone
      aio: don't bother with async freeing on failure in ioctx_alloc()
      aio: aio_nr decrements don't need to be delayed
      aio: aio_nr_lock is taken only synchronously now
      aio: use cancel_delayed_work_sync()
      aio: don't bother with cancel_delayed_work() in exit_aio()
      aio: fix the comment in aio_kick_handler()
      constify path argument of audit_log_d_path()
      constify path argument of trace_seq_path()
      switch unix_sock to struct path
      switch touch_atime to struct path
      no need to play with fs->seq in exit_fs()
      vfs: take path_get_longterm() out of write_seqcount scope
      take private bits of reiserfs_xattr.h to fs/reiserfs/xattr.h
      move reiserfs_acl.h to fs/reiserfs/acl.h
      kill pointless includes of reiserfs_fs_{i,sb}.h
      move private bits of reiserfs_fs.h to fs/reiserfs/reiserfs.h
      kill reiserfs_fs_{i,sb}.h
      spufs: make register_filesystem the last potential failure exit
      ibmasmfs: make register_filesystem the last failure exit
      make simple_pin_fs() pass MS_KERNMOUNT - it's a kernel-internal one
      usbfs: kill racy detection of simple_pin_fs()
      9p: make register_filesystem() the last failure exit
      anon_inodes: move allocation of anon_inode into ->mount()
      autofs: set things up *before* registering fs type
      __register_binfmt() made void
      configfs: don't bother with checks for mkdir/rmdir/unlink/symlink in root
      configfs: kill configfs_sb
      configfs: sanitize configfs_create()
      configfs: configfs_create_dir() has parent dentry in dentry->d_parent
      make configfs_pin_fs() return root dentry on success
      jfs: mising cleanup on register_filesystem() failure
      logfs: missing cleanup on register_filesystem() failure
      ntfs: forgets to unregister sysctls on register_filesystem() failure
      ecryptfs: make register_filesystem() the last potential failure exit
      ocfs2: fix leaks on failure exits in module_init
      gadgetfs: list_for_each_safe() misuse
      um: embed ->stub_pages[] into mmu_context
      um: uml_dup_mmap() relies on ->mmap_sem being held, but activate_mm() doesn't hold it
      trim includes in inode.c
      take removal of PF_FORKNOEXEC to flush_old_exec()
      qnx4: get rid of qnx4_bread/qnx4_getblk
      qnx4: new helper - try_extent()
      debugfs-related mode_t whack-a-mole
      ext4: initialization of ext4_li_mtx needs to be done earlier

Kai Bankett (2):
      qnx4fs: small cleanup
      fs: initial qnx6fs addition

Matthew Garrett (3):
      hfsplus: initialise userflags
      hfsplus: change finder_info to u32
      hfsplus: add an ioctl to bless files

Diffstat:
 Documentation/filesystems/debugfs.txt             |    2 +-
 Documentation/filesystems/porting                 |    6 +
 Documentation/filesystems/qnx6.txt                |  174 ++
 Documentation/ioctl/ioctl-number.txt              |    1 +
 arch/alpha/kernel/binfmt_loader.c                 |    3 +-
 arch/powerpc/platforms/cell/spufs/inode.c         |   14 +-
 arch/s390/hypfs/inode.c                           |    6 +-
 arch/um/include/asm/mmu.h                         |    2 +-
 arch/um/include/asm/mmu_context.h                 |   11 +-
 arch/um/kernel/skas/mmu.c                         |   25 +-
 arch/x86/ia32/ia32_aout.c                         |    4 +-
 drivers/misc/ibmasm/ibmasmfs.c                    |   16 +-
 drivers/misc/ibmasm/module.c                      |   11 +-
 drivers/mmc/card/block.c                          |    2 +-
 drivers/net/ethernet/brocade/bna/bnad_debugfs.c   |    2 +-
 drivers/oprofile/oprofilefs.c                     |   11 +-
 drivers/usb/core/inode.c                          |   23 +-
 drivers/usb/gadget/f_fs.c                         |    8 +-
 drivers/usb/gadget/inode.c                        |   13 +-
 fs/9p/v9fs.c                                      |   16 +-
 fs/9p/vfs_super.c                                 |    3 +-
 fs/Kconfig                                        |    1 +
 fs/Makefile                                       |    1 +
 fs/adfs/super.c                                   |    3 +-
 fs/affs/super.c                                   |    7 +-
 fs/afs/super.c                                    |    7 +-
 fs/aio.c                                          |   65 +-
 fs/anon_inodes.c                                  |  109 +-
 fs/autofs4/init.c                                 |    6 +-
 fs/autofs4/inode.c                                |   10 +-
 fs/befs/linuxvfs.c                                |    3 +-
 fs/bfs/inode.c                                    |    3 +-
 fs/binfmt_aout.c                                  |    4 +-
 fs/binfmt_elf.c                                   |    5 +-
 fs/binfmt_elf_fdpic.c                             |    6 +-
 fs/binfmt_em86.c                                  |    3 +-
 fs/binfmt_flat.c                                  |    4 +-
 fs/binfmt_misc.c                                  |    7 +-
 fs/binfmt_script.c                                |    3 +-
 fs/binfmt_som.c                                   |    4 +-
 fs/btrfs/super.c                                  |    8 +-
 fs/cachefiles/namei.c                             |    3 +-
 fs/ceph/super.c                                   |    3 +-
 fs/cifs/cifsfs.c                                  |    7 +-
 fs/coda/inode.c                                   |    6 +-
 fs/configfs/configfs_internal.h                   |    7 +-
 fs/configfs/dir.c                                 |   72 +-
 fs/configfs/inode.c                               |   62 +-
 fs/configfs/mount.c                               |   16 +-
 fs/configfs/symlink.c                             |   12 +-
 fs/cramfs/inode.c                                 |    6 +-
 fs/dcache.c                                       |   24 -
 fs/debugfs/file.c                                 |    2 +-
 fs/devpts/inode.c                                 |    3 +-
 fs/ecryptfs/file.c                                |    9 +-
 fs/ecryptfs/main.c                                |   19 +-
 fs/ecryptfs/super.c                               |    1 -
 fs/efs/super.c                                    |    3 +-
 fs/exec.c                                         |    8 +-
 fs/exofs/namei.c                                  |   13 +-
 fs/exofs/super.c                                  |    4 +-
 fs/ext2/namei.c                                   |   13 +-
 fs/ext2/super.c                                   |    4 +-
 fs/ext3/super.c                                   |    3 +-
 fs/ext4/super.c                                   |    8 +-
 fs/fat/inode.c                                    |    8 +-
 fs/file_table.c                                   |    3 +-
 fs/freevxfs/vxfs_super.c                          |    3 +-
 fs/fs_struct.c                                    |   29 +-
 fs/fuse/inode.c                                   |    9 +-
 fs/gfs2/ops_fstype.c                              |    3 +-
 fs/hfs/super.c                                    |    6 +-
 fs/hfsplus/hfsplus_fs.h                           |    5 +
 fs/hfsplus/hfsplus_raw.h                          |    2 +-
 fs/hfsplus/inode.c                                |    2 +
 fs/hfsplus/ioctl.c                                |   34 +
 fs/hfsplus/super.c                                |   17 +-
 fs/hostfs/hostfs_kern.c                           |    4 +-
 fs/hpfs/super.c                                   |    6 +-
 fs/hppfs/hppfs.c                                  |    9 +-
 fs/hugetlbfs/inode.c                              |   13 +-
 fs/inode.c                                        |   28 +-
 fs/isofs/inode.c                                  |    3 +-
 fs/jffs2/fs.c                                     |    6 +-
 fs/jfs/namei.c                                    |   13 -
 fs/jfs/super.c                                    |   12 +-
 fs/libfs.c                                        |    8 +-
 fs/logfs/dir.c                                    |    3 -
 fs/logfs/super.c                                  |   12 +-
 fs/minix/inode.c                                  |   38 +-
 fs/minix/minix.h                                  |    1 -
 fs/minix/namei.c                                  |   14 +-
 fs/namei.c                                        |   15 +-
 fs/ncpfs/inode.c                                  |    6 +-
 fs/nfs/getroot.c                                  |    6 +-
 fs/nfsd/fault_inject.c                            |    2 +-
 fs/nfsd/vfs.c                                     |   11 +-
 fs/nilfs2/namei.c                                 |   11 -
 fs/nilfs2/super.c                                 |    4 +-
 fs/ntfs/super.c                                   |    9 +-
 fs/ocfs2/dlmfs/dlmfs.c                            |   14 +-
 fs/ocfs2/super.c                                  |   51 +-
 fs/omfs/inode.c                                   |    6 +-
 fs/openpromfs/inode.c                             |    3 +-
 fs/proc/inode.c                                   |   16 +-
 fs/pstore/inode.c                                 |   25 +-
 fs/qnx4/inode.c                                   |   88 +-
 fs/qnx4/namei.c                                   |    9 +-
 fs/qnx4/qnx4.h                                    |    2 -
 fs/qnx6/Kconfig                                   |   26 +
 fs/qnx6/Makefile                                  |    7 +
 fs/qnx6/README                                    |    8 +
 fs/qnx6/dir.c                                     |  291 ++
 fs/qnx6/inode.c                                   |  698 +++++
 fs/qnx6/namei.c                                   |   42 +
 fs/qnx6/qnx6.h                                    |  135 +
 fs/qnx6/super_mmi.c                               |  150 ++
 fs/ramfs/inode.c                                  |   30 +-
 include/linux/reiserfs_acl.h => fs/reiserfs/acl.h |    0
 fs/reiserfs/bitmap.c                              |    4 +-
 fs/reiserfs/dir.c                                 |    2 +-
 fs/reiserfs/do_balan.c                            |    2 +-
 fs/reiserfs/file.c                                |    6 +-
 fs/reiserfs/fix_node.c                            |    2 +-
 fs/reiserfs/hashes.c                              |    2 +-
 fs/reiserfs/ibalance.c                            |    2 +-
 fs/reiserfs/inode.c                               |    6 +-
 fs/reiserfs/ioctl.c                               |    2 +-
 fs/reiserfs/item_ops.c                            |    2 +-
 fs/reiserfs/journal.c                             |    2 +-
 fs/reiserfs/lbalance.c                            |    2 +-
 fs/reiserfs/lock.c                                |    2 +-
 fs/reiserfs/namei.c                               |    6 +-
 fs/reiserfs/objectid.c                            |    3 +-
 fs/reiserfs/prints.c                              |    4 +-
 fs/reiserfs/procfs.c                              |    3 +-
 fs/reiserfs/reiserfs.h                            | 2922 +++++++++++++++++++++
 fs/reiserfs/resize.c                              |    3 +-
 fs/reiserfs/stree.c                               |    2 +-
 fs/reiserfs/super.c                               |   12 +-
 fs/reiserfs/tail_conversion.c                     |    2 +-
 fs/reiserfs/xattr.c                               |    6 +-
 fs/reiserfs/xattr.h                               |  122 +
 fs/reiserfs/xattr_acl.c                           |    6 +-
 fs/reiserfs/xattr_security.c                      |    4 +-
 fs/reiserfs/xattr_trusted.c                       |    4 +-
 fs/reiserfs/xattr_user.c                          |    4 +-
 fs/romfs/super.c                                  |    6 +-
 fs/squashfs/super.c                               |    3 +-
 fs/stat.c                                         |    2 +-
 fs/sysfs/mount.c                                  |    3 +-
 fs/sysv/namei.c                                   |   12 +-
 fs/sysv/super.c                                   |   27 +-
 fs/sysv/sysv.h                                    |    1 -
 fs/ubifs/super.c                                  |    6 +-
 fs/udf/namei.c                                    |   13 -
 fs/udf/super.c                                    |    6 +-
 fs/ufs/namei.c                                    |   14 +-
 fs/ufs/super.c                                    |    7 +-
 fs/xfs/xfs_rename.c                               |   11 -
 fs/xfs/xfs_super.c                                |    7 +-
 fs/xfs/xfs_utils.c                                |    2 -
 fs/xfs/xfs_vnodeops.c                             |   16 -
 include/linux/audit.h                             |    2 +-
 include/linux/binfmts.h                           |   10 +-
 include/linux/dcache.h                            |    1 -
 include/linux/debugfs.h                           |    4 +-
 include/linux/file.h                              |    1 -
 include/linux/fs.h                                |   10 +-
 include/linux/magic.h                             |    1 +
 include/linux/qnx6_fs.h                           |  134 +
 include/linux/reiserfs_fs.h                       | 2334 ----------------
 include/linux/reiserfs_fs_i.h                     |   63 -
 include/linux/reiserfs_fs_sb.h                    |  554 ----
 include/linux/reiserfs_xattr.h                    |  128 -
 include/linux/trace_seq.h                         |    4 +-
 include/net/af_unix.h                             |    3 +-
 ipc/mqueue.c                                      |   24 +-
 kernel/audit.c                                    |    2 +-
 kernel/cgroup.c                                   |    8 +-
 kernel/trace/trace_output.c                       |    2 +-
 mm/shmem.c                                        |   10 +-
 net/sunrpc/rpc_pipe.c                             |    8 +-
 net/unix/af_unix.c                                |   37 +-
 net/unix/diag.c                                   |    2 +-
 security/lsm_audit.c                              |    8 +-
 186 files changed, 5360 insertions(+), 4141 deletions(-)
 create mode 100644 Documentation/filesystems/qnx6.txt
 create mode 100644 fs/qnx6/Kconfig
 create mode 100644 fs/qnx6/Makefile
 create mode 100644 fs/qnx6/README
 create mode 100644 fs/qnx6/dir.c
 create mode 100644 fs/qnx6/inode.c
 create mode 100644 fs/qnx6/namei.c
 create mode 100644 fs/qnx6/qnx6.h
 create mode 100644 fs/qnx6/super_mmi.c
 rename include/linux/reiserfs_acl.h => fs/reiserfs/acl.h (100%)
 create mode 100644 fs/reiserfs/reiserfs.h
 create mode 100644 fs/reiserfs/xattr.h
 create mode 100644 include/linux/qnx6_fs.h
 delete mode 100644 include/linux/reiserfs_fs_i.h
 delete mode 100644 include/linux/reiserfs_fs_sb.h

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

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

	Assorted stuff from the last cycle.  That's not all, there will be
another pile tomorrow or on Saturday...  Please, pull from

git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6.git/ for-linus

Shortlog:
Al Viro (2):
      consolidate nameidata_..._drop_rcu()
      merge handle_reval_dot and nameidata_drop_rcu_last

Jan Kara (2):
      vfs: Create __block_page_mkwrite() helper passing error values back
      vfs: Block mmapped writes while the fs is frozen

Jonas Gorski (1):
      exportfs: reallow building as a module

Miklos Szeredi (1):
      vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems

Roman Borisov (1):
      fs/namespace.c: bound mount propagation fix

Sage Weil (18):
      vfs: dentry_unhash immediately prior to rmdir
      vfs: remove dget() from dentry_unhash()
      vfs: push dentry_unhash on rmdir into file systems
      vfs: push dentry_unhash on rename_dir into file systems
      vfs: update dentry_unhash() comment
      libfs: drop unneeded dentry_unhash
      vfs: clean up vfs_rmdir
      vfs: clean up vfs_rename_dir
      vfs: clean up vfs_rename_other
      ceph: remove unnecessary dentry_unhash calls
      btrfs: remove unnecessary dentry_unhash in rmdir/rename_dir
      ext4: remove unnecessary dentry_unhash on rmdir/rename_dir
      ext3: remove unnecessary dentry_unhash on rmdir/rename_dir
      ext2: remove unnecessary dentry_unhash on rmdir/rename_dir
      nfs: remove unnecessary dentry_unhash on rmdir/rename_dir
      exofs: remove unnecessary dentry_unhash on rmdir/rename_dir
      ocfs2: remove unnecessary dentry_unhash on rmdir/rename_dir
      cifs: remove unnecessary dentry_unhash on rmdir/rename_dir

Diffstat:
 fs/9p/vfs_inode.c           |    4 +
 fs/Kconfig                  |    2 +-
 fs/affs/namei.c             |    5 +
 fs/afs/dir.c                |    5 +
 fs/autofs4/root.c           |    2 +
 fs/bfs/dir.c                |    3 +
 fs/buffer.c                 |   59 +++++--
 fs/coda/dir.c               |    5 +
 fs/configfs/dir.c           |    2 +
 fs/ecryptfs/inode.c         |    5 +
 fs/fat/namei_msdos.c        |    5 +
 fs/fat/namei_vfat.c         |    5 +
 fs/fuse/dir.c               |    6 +
 fs/hfs/dir.c                |    6 +
 fs/hfsplus/dir.c            |    8 +-
 fs/hostfs/hostfs_kern.c     |    5 +
 fs/hpfs/namei.c             |    9 +-
 fs/jffs2/dir.c              |    5 +
 fs/jfs/namei.c              |    5 +
 fs/logfs/dir.c              |    5 +
 fs/minix/namei.c            |    5 +
 fs/namei.c                  |  380 ++++++++++++++++---------------------------
 fs/namespace.c              |    2 +-
 fs/ncpfs/dir.c              |    5 +
 fs/nilfs2/namei.c           |    5 +
 fs/omfs/dir.c               |   11 +-
 fs/reiserfs/namei.c         |    5 +
 fs/reiserfs/xattr.c         |    1 -
 fs/sysv/namei.c             |    5 +
 fs/ubifs/dir.c              |    5 +
 fs/udf/namei.c              |    5 +
 fs/ufs/namei.c              |    5 +
 include/linux/buffer_head.h |   16 ++
 33 files changed, 332 insertions(+), 269 deletions(-)

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

* Re: [git pull] vfs pile 1
  2011-01-13  6:25 ` Stephen Rothwell
@ 2011-01-13  8:55   ` Christoph Hellwig
  0 siblings, 0 replies; 33+ messages in thread
From: Christoph Hellwig @ 2011-01-13  8:55 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: Al Viro, Linus Torvalds, linux-kernel, linux-fsdevel

On Thu, Jan 13, 2011 at 05:25:57PM +1100, Stephen Rothwell wrote:
> Merging it into today's linux-next produces conflicts against the
> ecryptfs and cleancache trees.

How did cleancache end up in linux-next again?

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

* Re: [git pull] vfs pile 1
  2011-01-13  5:35 Al Viro
@ 2011-01-13  6:25 ` Stephen Rothwell
  2011-01-13  8:55   ` Christoph Hellwig
  0 siblings, 1 reply; 33+ messages in thread
From: Stephen Rothwell @ 2011-01-13  6:25 UTC (permalink / raw)
  To: Al Viro; +Cc: Linus Torvalds, linux-kernel, linux-fsdevel

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

Hi Al,

On Thu, 13 Jan 2011 05:35:54 +0000 Al Viro <viro@ZenIV.linux.org.uk> wrote:
>
> 	Contains: d_op series on top of Nick's pile, a few other patches
> from various folks.  More tomorrow; there's a huge pending pile here.
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6.git/ for-linus

None of this has been in linux-next.  Some of it seems to date back into
early December and even November ...

Merging it into today's linux-next produces conflicts against the
ecryptfs and cleancache trees.

It would be good in the future (as I have asked in the past) if vfs-wide
changes like these could spend some time in linux-next so people know
what is coming ...

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

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

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

* [git pull] vfs pile 1
@ 2011-01-13  5:35 Al Viro
  2011-01-13  6:25 ` Stephen Rothwell
  0 siblings, 1 reply; 33+ messages in thread
From: Al Viro @ 2011-01-13  5:35 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

	Contains: d_op series on top of Nick's pile, a few other patches
from various folks.  More tomorrow; there's a huge pending pile here.

git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6.git/ for-linus

Note: d_set_d_op() is still there, but most of the callers are gone.
FWIW, there are only 3 non-trivial bunches:
	* procfs - as expected, we have shitloads of ->d_op there
	* autofs4 - tomorrow will be fun; automount series needs to be
dealt with to sort that out
	* ceph - I'd rather deal with that on top of ceph tree.

	Shortlog:
Al Viro (31):
      per-superblock default ->d_op
      fix isofs d_op handling
      switch fat to ->s_d_op, close exportfs races there
      switch jfs to ->s_d_op, close exportfs races
      pohmelfs: double-free and leak
      switch fuse
      switch sysv
      minixfs: kill dead code
      switch hfs
      switch hfsplus
      switch adfs
      switch nfs to ->s_d_op
      switch cifs
      switch gfs2, close races
      switch ocfs2, close races
      switch btrfs, close races
      switch cgroup
      switch hpfs
      convert smbfs
      switch coda
      take coda-private headers out of include/linux
      switch configfs
      switch affs
      switch hostfs
      pass default dentry_operations to mount_pseudo()
      switch 9p
      switch ncpfs
      move internal-only parts of ncpfs headers to fs/ncpfs
      switch afs
      sanitize ecryptfs ->mount()
      fix signedness mess in rw_verify_area() on 64bit architectures

Jeff Layton (1):
      vfs: pass struct file to do_truncate on O_TRUNC opens (try #2)

Josef Bacik (7):
      fs: add hole punching to fallocate
      XFS: handle hole punching via fallocate properly
      Ocfs2: handle hole punching via fallocate properly
      Ext4: fail if we try to use hole punch
      Btrfs: fail if we try to use hole punch
      Gfs2: fail if we try to use hole punch
      fs: add documentation on fallocate hole punching

Randy Dunlap (2):
      fs: fix kernel-doc for dcache::d_validate
      fs: fix kernel-doc for dcache::prepend_path

Diffstat:
 Documentation/filesystems/porting       |    9 ++
 Documentation/magic-number.txt          |    2 +-
 arch/ia64/kernel/perfmon.c              |    6 +-
 drivers/mtd/mtdchar.c                   |    2 +-
 drivers/staging/pohmelfs/net.c          |    2 +-
 drivers/staging/smbfs/dir.c             |   13 ---
 drivers/staging/smbfs/inode.c           |    4 +
 drivers/staging/smbfs/proto.h           |    2 +
 fs/9p/v9fs_vfs.h                        |    1 -
 fs/9p/vfs_dentry.c                      |    2 +-
 fs/9p/vfs_inode.c                       |    5 -
 fs/9p/vfs_super.c                       |    8 +-
 fs/adfs/dir.c                           |    1 -
 fs/adfs/super.c                         |    4 +-
 fs/affs/affs.h                          |    1 +
 fs/affs/namei.c                         |    3 +-
 fs/affs/super.c                         |    6 +-
 fs/afs/dir.c                            |    4 +-
 fs/afs/internal.h                       |    1 +
 fs/afs/super.c                          |    1 +
 fs/anon_inodes.c                        |   21 ++--
 fs/block_dev.c                          |    2 +-
 fs/btrfs/export.c                       |   12 +--
 fs/btrfs/inode.c                        |    6 +-
 fs/btrfs/super.c                        |    1 +
 fs/cifs/cifsfs.c                        |    6 +
 fs/cifs/dir.c                           |   25 +-----
 fs/cifs/inode.c                         |    8 --
 fs/cifs/link.c                          |    4 -
 fs/cifs/readdir.c                       |    5 -
 fs/coda/cache.c                         |    5 +-
 fs/coda/cnode.c                         |    3 +-
 {include/linux => fs/coda}/coda_cache.h |    0 
 {include/linux => fs/coda}/coda_fs_i.h  |    0 
 fs/coda/coda_linux.c                    |    3 +-
 {include/linux => fs/coda}/coda_linux.h |    4 +-
 fs/coda/dir.c                           |    9 +-
 fs/coda/file.c                          |    3 +-
 fs/coda/inode.c                         |    6 +-
 fs/coda/pioctl.c                        |    4 +-
 fs/coda/psdev.c                         |    4 +-
 fs/coda/symlink.c                       |    4 +-
 fs/coda/upcall.c                        |    5 +-
 fs/configfs/configfs_internal.h         |    1 +
 fs/configfs/dir.c                       |    6 +-
 fs/configfs/mount.c                     |    1 +
 fs/dcache.c                             |    9 +-
 fs/ecryptfs/inode.c                     |    1 -
 fs/ecryptfs/main.c                      |  155 ++++++++++++++-----------------
 fs/ext4/extents.c                       |    4 +
 fs/fat/fat.h                            |    3 +-
 fs/fat/inode.c                          |   13 +--
 fs/fat/namei_msdos.c                    |   27 ++----
 fs/fat/namei_vfat.c                     |   27 ++----
 fs/fuse/dir.c                           |    1 -
 fs/fuse/inode.c                         |   10 +-
 fs/gfs2/export.c                        |   13 +--
 fs/gfs2/ops_fstype.c                    |    2 +-
 fs/gfs2/ops_inode.c                     |    6 +-
 fs/hfs/dir.c                            |    2 -
 fs/hfs/super.c                          |    3 +-
 fs/hfsplus/dir.c                        |    1 -
 fs/hfsplus/super.c                      |    2 +-
 fs/hostfs/hostfs_kern.c                 |    2 +-
 fs/hpfs/dentry.c                        |    7 +-
 fs/hpfs/dir.c                           |    1 -
 fs/hpfs/hpfs_fn.h                       |    2 +-
 fs/hpfs/super.c                         |    2 +-
 fs/isofs/inode.c                        |   13 ++-
 fs/isofs/namei.c                        |    2 -
 fs/jfs/namei.c                          |   10 +--
 fs/jfs/super.c                          |    6 +-
 fs/libfs.c                              |    4 +-
 fs/minix/namei.c                        |    2 -
 fs/namei.c                              |    7 +-
 fs/ncpfs/dir.c                          |   19 +---
 fs/ncpfs/file.c                         |    3 +-
 fs/ncpfs/inode.c                        |    6 +-
 fs/ncpfs/ioctl.c                        |    4 +-
 fs/ncpfs/mmap.c                         |    4 +-
 fs/ncpfs/ncp_fs.h                       |   98 +++++++++++++++++++
 {include/linux => fs/ncpfs}/ncp_fs_i.h  |    0 
 {include/linux => fs/ncpfs}/ncp_fs_sb.h |   24 ++++-
 fs/ncpfs/ncplib_kernel.c                |    2 +-
 fs/ncpfs/ncplib_kernel.h                |    2 -
 fs/ncpfs/ncpsign_kernel.c               |    1 +
 fs/ncpfs/ncpsign_kernel.h               |    2 -
 fs/ncpfs/sock.c                         |    2 +-
 fs/ncpfs/symlink.c                      |    4 +-
 fs/nfs/dir.c                            |    4 -
 fs/nfs/getroot.c                        |    6 -
 fs/nfs/super.c                          |    1 +
 fs/ocfs2/export.c                       |    6 +-
 fs/ocfs2/file.c                         |    8 +-
 fs/ocfs2/namei.c                        |    5 -
 fs/ocfs2/super.c                        |    1 +
 fs/open.c                               |    7 +-
 fs/pipe.c                               |    4 +-
 fs/read_write.c                         |   27 ++---
 fs/sysv/namei.c                         |    1 -
 fs/sysv/super.c                         |    8 +-
 fs/xfs/linux-2.6/xfs_iops.c             |    7 +-
 include/linux/falloc.h                  |    1 +
 include/linux/fs.h                      |    5 +-
 include/linux/ncp_fs.h                  |  100 --------------------
 include/linux/ncp_mount.h               |   22 -----
 kernel/cgroup.c                         |   30 ++-----
 net/socket.c                            |   30 +++---
 108 files changed, 424 insertions(+), 582 deletions(-)

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

end of thread, other threads:[~2018-06-04  0:59 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-05  2:23 [git pull] vfs pile 1 Al Viro
2012-01-08 23:04 ` Linus Torvalds
2012-01-08 23:50   ` Al Viro
2012-01-08 23:53     ` Al Viro
2012-01-09  0:11       ` Linus Torvalds
2012-01-09  0:25         ` Al Viro
2012-01-09  0:39           ` Linus Torvalds
2012-01-09  2:12             ` Al Viro
2012-01-09 15:11     ` Ted Ts'o
2012-01-11 11:58   ` Christoph Hellwig
2012-01-11 12:36     ` Miklos Szeredi
2012-01-11 12:40       ` Christoph Hellwig
2012-01-11 13:12         ` Miklos Szeredi
2012-01-11 15:23           ` Ted Ts'o
2012-01-11 16:19             ` Al Viro
2012-01-12 11:41               ` Miklos Szeredi
  -- strict thread matches above, loose matches on Subject: below --
2018-06-04  0:59 [git pull] vfs, " Al Viro
2016-12-16 13:30 [git pull] vfs " Al Viro
2015-09-06  2:55 Al Viro
2015-06-22  6:47 Al Viro
2014-01-27 14:25 Al Viro
2014-01-27 23:05 ` Stephen Rothwell
2014-01-29  3:26 ` Linus Torvalds
2014-01-29 13:37   ` Jan Kara
2014-01-30  2:02     ` Kim Jaegeuk
2014-01-30 15:26       ` Jan Kara
2014-01-30 13:07   ` Christoph Hellwig
2013-02-27  3:24 Al Viro
2012-03-21  3:31 Al Viro
2011-05-26 11:53 Al Viro
2011-01-13  5:35 Al Viro
2011-01-13  6:25 ` Stephen Rothwell
2011-01-13  8:55   ` Christoph Hellwig

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).