linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [git pull] vfs pile 1
@ 2011-01-13  5:35 Al Viro
  2011-01-13  6:25 ` Stephen Rothwell
  0 siblings, 1 reply; 39+ 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] 39+ messages in thread

* Re: [git pull] vfs pile 1
  2011-01-13  5:35 [git pull] vfs pile 1 Al Viro
@ 2011-01-13  6:25 ` Stephen Rothwell
  2011-01-13  8:55   ` Christoph Hellwig
  0 siblings, 1 reply; 39+ 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] 39+ messages in thread

* Re: [git pull] vfs pile 1
  2011-01-13  6:25 ` Stephen Rothwell
@ 2011-01-13  8:55   ` Christoph Hellwig
       [not found]     ` <20110113214239.1b23b523.sfr@canb.auug.org.au20110113220039.GF31800@thunk.org>
  2011-01-13 10:42     ` clearcache (Was: Re: [git pull] vfs pile 1) Stephen Rothwell
  0 siblings, 2 replies; 39+ 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] 39+ messages in thread

* clearcache (Was: Re: [git pull] vfs pile 1)
  2011-01-13  8:55   ` Christoph Hellwig
       [not found]     ` <20110113214239.1b23b523.sfr@canb.auug.org.au20110113220039.GF31800@thunk.org>
@ 2011-01-13 10:42     ` Stephen Rothwell
  2011-01-13 16:08       ` Dan Magenheimer
  2011-01-13 22:00       ` Ted Ts'o
  1 sibling, 2 replies; 39+ messages in thread
From: Stephen Rothwell @ 2011-01-13 10:42 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Dan Magenheimer, Al Viro, Linus Torvalds, linux-kernel, linux-fsdevel

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

Hi Christoph,

On Thu, 13 Jan 2011 03:55:47 -0500 Christoph Hellwig <hch@infradead.org> wrote:
>
> How did cleancache end up in linux-next again?

Um, I asked after the last merge window (on November 17, cc'ing you, Al
and Linus) and the only reply I got was from Dan saying that he was
hoping to work more on it with some chance of being ready for 2.6.38 ...

So, let me ask again:

"I didn't really follow the discussion at Kernel Summit, but there seemed
to be some question as to whether the cleancache stuff will be merged or
not.  It missed 2.6.37 (obviously), but my question now is do I keep in
in linux-next in the hope that it will be merged in 2.6.38?  Or is that
not going to happen?"

(The cleancache tree has not changed since October 9 last year.)
-- 
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] 39+ messages in thread

* RE: clearcache (Was: Re: [git pull] vfs pile 1)
  2011-01-13 10:42     ` clearcache (Was: Re: [git pull] vfs pile 1) Stephen Rothwell
@ 2011-01-13 16:08       ` Dan Magenheimer
  2011-01-13 22:00       ` Ted Ts'o
  1 sibling, 0 replies; 39+ messages in thread
From: Dan Magenheimer @ 2011-01-13 16:08 UTC (permalink / raw)
  To: Stephen Rothwell, Christoph Hellwig
  Cc: Al Viro, Linus Torvalds, linux-kernel, linux-fsdevel

> On Thu, 13 Jan 2011 03:55:47 -0500 Christoph Hellwig
> <hch@infradead.org> wrote:
> >
> > How did cleancache end up in linux-next again?
> 
> Um, I asked after the last merge window (on November 17, cc'ing you, Al
> and Linus) and the only reply I got was from Dan saying that he was
> hoping to work more on it with some chance of being ready for 2.6.38
> ...
> 
> So, let me ask again:
> 
> "I didn't really follow the discussion at Kernel Summit, but there
> seemed
> to be some question as to whether the cleancache stuff will be merged
> or
> not.  It missed 2.6.37 (obviously), but my question now is do I keep in
> in linux-next in the hope that it will be merged in 2.6.38?  Or is that
> not going to happen?"
> 
> (The cleancache tree has not changed since October 9 last year.)

Hi Stephen --

Today or tomorrow, I will post a fully-functional in-kernel non-virtualization
user for cleancache (and frontswap), called kztmem, which is proposed
initially as a staging driver.  It will be up to Linus, Andrew, and
GregKH to determine if this is acceptable and a sufficient second user
of cleancache.  Assuming it is, because of the dependency (staging driver
dependent on as-yet-unmerged core kernel functionality), I'm not clear
yet if/how cleancache should go through linux-next.  (Linus's last
email on the topic indicated he thought cleancache should go through Andrew.)

So please stay tuned for the next episode in this continuing drama. ;-)

Thanks,
Dan


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

* Re: clearcache (Was: Re: [git pull] vfs pile 1)
  2011-01-13 10:42     ` clearcache (Was: Re: [git pull] vfs pile 1) Stephen Rothwell
  2011-01-13 16:08       ` Dan Magenheimer
@ 2011-01-13 22:00       ` Ted Ts'o
  2011-01-14 21:11         ` Dan Magenheimer
  1 sibling, 1 reply; 39+ messages in thread
From: Ted Ts'o @ 2011-01-13 22:00 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Christoph Hellwig, Dan Magenheimer, Al Viro, Linus Torvalds,
	linux-kernel, linux-fsdevel

On Thu, Jan 13, 2011 at 09:42:39PM +1100, Stephen Rothwell wrote:
> 
> "I didn't really follow the discussion at Kernel Summit, but there seemed
> to be some question as to whether the cleancache stuff will be merged or
> not.  It missed 2.6.37 (obviously), but my question now is do I keep in
> in linux-next in the hope that it will be merged in 2.6.38?  Or is that
> not going to happen?"

The real problem is I don't think anyone is really paying attention to
cleancache.

Dan, something that might be useful to drive interest would be a
demonstration of this improves performance on, say, a netbook using
cleancache and zram, and how it is better than just using zram
directly as a swap device.  With maybe some numbers?  That might get
some interest from the community desktop distributions...

     	      	       		 	 - Ted

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

* RE: clearcache (Was: Re: [git pull] vfs pile 1)
  2011-01-13 22:00       ` Ted Ts'o
@ 2011-01-14 21:11         ` Dan Magenheimer
  2011-01-14 22:35           ` Ted Ts'o
  0 siblings, 1 reply; 39+ messages in thread
From: Dan Magenheimer @ 2011-01-14 21:11 UTC (permalink / raw)
  To: Ted Ts'o, Stephen Rothwell
  Cc: Christoph Hellwig, Al Viro, Linus Torvalds, linux-kernel, linux-fsdevel

Hi Ted --

Thanks for taking the time to reply.

> The real problem is I don't think anyone is really paying attention to
> cleancache.

It's a bit more complicated than that.  There ARE a lot of people
interested in it, but there is a bit of a deadlock.  I've heard from
many people that would love to use Xen transcendent memory as
a great solution for memory overcommitment in the cloud, but they
get skittish when I tell them it requires kernel changes that haven't
been accepted upstream.  But key Linux maintainers don't consider
the Xen base interesting enough to allow merging of cleancache
(and frontswap), despite its simplicity and negligible impact,
without at least a second (and preferably in-kernel) user.

> Dan, something that might be useful to drive interest would be a
> demonstration of this improves performance on, say, a netbook using
> cleancache and zram, and how it is better than just using zram
> directly as a swap device.  With maybe some numbers?  That might get
> some interest from the community desktop distributions...

Indeed.  I was hoping that Nitin's work on zcache (the page cache
version of zram) would serve that purpose but GregKH declined to
merge it because it was dependent on unmerged cleancache... thus a
chicken-and-egg problem; and Nitin has apparently now moved on to
other (non-Linux-kernel) things.  As a result, I've spent most of my
free time over the last three months working on kztmem, which will
hopefully serve the purpose.  (I had hoped to post V1 of kztmem
by today but ran into a problem in an overnight test run.  So
stay tuned.)

Dan

P.S. The numbers look pretty good.
P.P.S. kztmem should also be easily adaptable to KVM, but I haven't
 the KVM expertise to make it happen

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

* Re: clearcache (Was: Re: [git pull] vfs pile 1)
  2011-01-14 21:11         ` Dan Magenheimer
@ 2011-01-14 22:35           ` Ted Ts'o
  2011-01-14 23:28             ` Dan Magenheimer
  0 siblings, 1 reply; 39+ messages in thread
From: Ted Ts'o @ 2011-01-14 22:35 UTC (permalink / raw)
  To: Dan Magenheimer
  Cc: Stephen Rothwell, Christoph Hellwig, Al Viro, Linus Torvalds,
	linux-kernel, linux-fsdevel

On Fri, Jan 14, 2011 at 01:11:02PM -0800, Dan Magenheimer wrote:
> As a result, I've spent most of my
> free time over the last three months working on kztmem, which will
> hopefully serve the purpose.

You'll have to forgive me, but I have absolutely no idea what kztmem
is or what it does.  Is it just compressed tmem, and hence, something
that is only of interest to people using Xen?  If so, it's not clear
to me how it will help non-Xen people become interested in these
patches.

Regards,

					- Ted

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

* RE: clearcache (Was: Re: [git pull] vfs pile 1)
  2011-01-14 22:35           ` Ted Ts'o
@ 2011-01-14 23:28             ` Dan Magenheimer
  0 siblings, 0 replies; 39+ messages in thread
From: Dan Magenheimer @ 2011-01-14 23:28 UTC (permalink / raw)
  To: Ted Ts'o
  Cc: Stephen Rothwell, Christoph Hellwig, Al Viro, Linus Torvalds,
	linux-kernel, linux-fsdevel

> > As a result, I've spent most of my
> > free time over the last three months working on kztmem, which will
> > hopefully serve the purpose.
> 
> You'll have to forgive me, but I have absolutely no idea what kztmem
> is or what it does.  Is it just compressed tmem, and hence, something
> that is only of interest to people using Xen?  If so, it's not clear
> to me how it will help non-Xen people become interested in these
> patches.

Ah, sorry, processing too much email backlog and left out some context...

Kztmem is entirely in-kernel, no virtualization required (neither
Xen nor KVM).  I'll cc you when I post V1 soon but, yes, it is
compressed *in-kernel* tmem, a more flexible/dynamic replacement for
zcache and possibly also for zram as well, architected and designed
to more easily (than zcache/zram) exploit some other directions
I plan to take with tmem concepts, including (but not limited to)
page-addressable memory (http://marc.info/?l=linux-mm&m=127811271605009).
Kztmem is coded (at least for now) as a staging driver, but uses
exactly the proposed cleancache (and frontswap) patches.

Hope that helps!
Dan

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

* [git pull] vfs, pile 1
@ 2018-06-04  0:59 Al Viro
  0 siblings, 0 replies; 39+ 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] 39+ messages in thread

* [git pull] vfs pile 1
@ 2016-12-16 13:30 Al Viro
  0 siblings, 0 replies; 39+ 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] 39+ messages in thread

* [git pull] vfs pile 1
@ 2015-09-06  2:55 Al Viro
  0 siblings, 0 replies; 39+ 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] 39+ messages in thread

* [git pull] vfs pile 1
@ 2015-06-22  6:47 Al Viro
  0 siblings, 0 replies; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ messages in thread

* [git pull] vfs pile 1
@ 2013-02-27  3:24 Al Viro
  0 siblings, 0 replies; 39+ 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] 39+ messages in thread

* [git pull] vfs pile 1
@ 2012-03-21  3:31 Al Viro
  0 siblings, 0 replies; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ 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; 39+ 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] 39+ messages in thread

* Re: [git pull] vfs pile 1
  2012-01-05  2:23 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; 39+ 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] 39+ messages in thread

* [git pull] vfs pile 1
@ 2012-01-05  2:23 Al Viro
  2012-01-08 23:04 ` Linus Torvalds
  0 siblings, 1 reply; 39+ 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] 39+ messages in thread

* [git pull] vfs pile 1
@ 2011-05-26 11:53 Al Viro
  0 siblings, 0 replies; 39+ 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] 39+ messages in thread

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

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-13  5:35 [git pull] vfs pile 1 Al Viro
2011-01-13  6:25 ` Stephen Rothwell
2011-01-13  8:55   ` Christoph Hellwig
     [not found]     ` <20110113214239.1b23b523.sfr@canb.auug.org.au20110113220039.GF31800@thunk.org>
2011-01-13 10:42     ` clearcache (Was: Re: [git pull] vfs pile 1) Stephen Rothwell
2011-01-13 16:08       ` Dan Magenheimer
2011-01-13 22:00       ` Ted Ts'o
2011-01-14 21:11         ` Dan Magenheimer
2011-01-14 22:35           ` Ted Ts'o
2011-01-14 23:28             ` Dan Magenheimer
2011-05-26 11:53 [git pull] vfs pile 1 Al Viro
2012-01-05  2:23 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
2012-03-21  3:31 Al Viro
2013-02-27  3:24 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
2015-06-22  6:47 Al Viro
2015-09-06  2:55 Al Viro
2016-12-16 13:30 Al Viro
2018-06-04  0:59 [git pull] vfs, " Al Viro

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