* [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
[parent not found: <20110113214239.1b23b523.sfr@canb.auug.org.au20110113220039.GF31800@thunk.org>]
* 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
@ 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
* [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
* 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
* 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-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: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-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-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: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-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-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-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-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 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 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 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 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
* [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
* [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
@ 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
* 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
* 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-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-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-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
* [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
* [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
@ 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
@ 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
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).