* [git pull] vfs pile 1
@ 2012-01-05 2:23 Al Viro
2012-01-08 23:04 ` Linus Torvalds
0 siblings, 1 reply; 33+ messages in thread
From: Al Viro @ 2012-01-05 2:23 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
That's pile 1 out of at least 4; this one is mostly vfsmount gutting. The
next one will be umode_t stuff... Please, pull from the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
Shortlog:
Al Viro (73):
pull manipulations of rpc_cred inside alloc_nfs_open_context()
trim fs/internal.h
switch a bunch of places to mnt_want_write_file()
new helpers: fh_{want,drop}_write()
vfs: kill pointless helpers in namespace.c
vfs: new internal helper: mnt_has_parent(mnt)
vfs: more mnt_parent cleanups
vfs: add missing parens in pnode.h macros
unexport put_mnt_ns(), make create_mnt_ns() static outright
vfs: dentry_reset_mounted() doesn't use vfsmount argument
tomoyo: stop including hell knows what
btrfs, nfs, apparmor: don't pull mnt_namespace.h for no reason...
vfs: kill ->mnt_devname use in afs printks
make nfs_follow_remote_path() handle ERR_PTR() passed as root_mnt
vfs: convert fs_supers to hlist
vfs: make do_kern_mount() static
constify seq_file stuff
vfs: mnt_drop_write_file()
vfs: fix the stupidity with i_dentry in inode destructors
vfs: pipe.c is really non-modular
get rid of timer in kern/acct.c
vfs: for usbfs, etc. internal vfsmounts ->mnt_sb->s_root == ->mnt_root
vfs: live vfsmounts never have NULL ->mnt_sb
vfs: new helper - vfs_ustat()
vfs: fix the rest of sget() races
vfs: start hiding vfsmount guts series
vfs: spread struct mount - __lookup_mnt() result
vfs: spread struct mount - __propagate_umount() argument
vfs: spread struct mount - namespace.c internal iterators
vfs: spread struct mount - attach_mnt/detach_mnt
vfs: spread struct mount - commit_tree
vfs: spread struct mount - mount group id handling
vfs: spread struct mount - attach_recursive_mnt
vfs: spread struct mount - tree_contains_unbindable
vfs: spread struct mount - alloc_vfsmnt/free_vfsmnt/mnt_alloc_id/mnt_free_id
vfs: spread struct mount - change_mnt_propagation/set_mnt_shared
vfs: spread struct mount - clone_mnt/copy_tree result
vfs: spread struct mount to remaining users of ->mnt_hash
vfs: the first spoils - mnt_hash moved
vfs: spread struct mount - umount_tree argument
vfs: spread struct mount - shrink_submounts/select_submounts
vfs: spread struct mount - clone_mnt/copy_tree argument
vfs: spread struct mount mnt_set_mountpoint child argument
vfs: spread struct mount - do_umount/propagate_mount_busy
vfs: spread struct mount - mnt_has_parent
vfs: spread struct mount - is_path_reachable
vfs: mnt_parent moved to struct mount
vfs: now it can be done - make mnt_parent point to struct mount
vfs: move mnt_mountpoint to struct mount
vfs: spread struct mount - work with counters
vfs: all counters taken to struct mount
vfs: take mnt_child/mnt_mounts to struct mount
vfs: spread struct mount - get_dominating_id / do_make_slave
vfs: spread struct mount - shared subtree iterators
vfs: spread struct mount - propagate_mnt()
vfs: spread struct mount - remaining argument of mnt_set_mountpoint()
vfs: take mnt_master to struct mount
vfs: and now we can make ->mnt_master point to struct mount
vfs: take mnt_share/mnt_slave/mnt_slave_list and mnt_expire to struct mount
vfs: spread struct mount - do_add_mount and graft_tree
vfs: spread struct mount - mntput_no_expire
vfs: mnt_ns moved to struct mount
vfs: mnt_id/mnt_group_id moved
vfs: move the rest of int fields to struct mount
vfs: switch pnode.h macros to struct mount *
vfs: move mnt_list to struct mount
vfs: move mnt_devname
vfs: move fsnotify junk to struct mount
vfs: spread struct mount - remaining argument of next_mnt()
vfs: opencode mntget() mnt_set_mountpoint()
vfs: take /proc/*/mounts and friends to fs/proc_namespace.c
switch mnt_namespace ->root to struct mount
vfs: trim includes a bit
Diffstat:
arch/ia64/kernel/perfmon.c | 2 +-
arch/parisc/hpux/sys_hpux.c | 9 +-
arch/powerpc/platforms/cell/spufs/inode.c | 1 -
drivers/staging/pohmelfs/inode.c | 1 -
drivers/usb/core/inode.c | 11 +-
fs/9p/vfs_inode.c | 1 -
fs/Makefile | 2 +
fs/affs/super.c | 1 -
fs/afs/mntpt.c | 4 +-
fs/afs/super.c | 1 -
fs/befs/linuxvfs.c | 1 -
fs/bfs/inode.c | 1 -
fs/block_dev.c | 8 +-
fs/btrfs/inode.c | 1 -
fs/btrfs/ioctl.c | 22 +-
fs/btrfs/super.c | 1 -
fs/ceph/inode.c | 1 -
fs/coda/inode.c | 1 -
fs/compat.c | 9 +-
fs/configfs/dir.c | 4 +-
fs/dcache.c | 37 +--
fs/debugfs/inode.c | 2 +-
fs/ecryptfs/super.c | 1 -
fs/efs/super.c | 1 -
fs/exec.c | 2 +-
fs/exofs/super.c | 1 -
fs/ext2/ioctl.c | 12 +-
fs/ext2/super.c | 1 -
fs/ext3/ioctl.c | 20 +-
fs/ext3/super.c | 1 -
fs/ext4/ioctl.c | 28 +-
fs/ext4/super.c | 1 -
fs/fat/file.c | 4 +-
fs/fat/inode.c | 1 -
fs/fhandle.c | 4 +-
fs/filesystems.c | 1 -
fs/freevxfs/vxfs_inode.c | 1 -
fs/fuse/inode.c | 1 -
fs/gfs2/file.c | 4 +-
fs/gfs2/super.c | 1 -
fs/hfs/super.c | 1 -
fs/hfsplus/ioctl.c | 4 +-
fs/hfsplus/super.c | 1 -
fs/hostfs/hostfs_kern.c | 1 -
fs/hpfs/super.c | 1 -
fs/hppfs/hppfs.c | 3 +-
fs/hugetlbfs/inode.c | 1 -
fs/inode.c | 5 +-
fs/internal.h | 27 +-
fs/isofs/inode.c | 1 -
fs/jffs2/super.c | 1 -
fs/jfs/ioctl.c | 4 +-
fs/jfs/super.c | 1 -
fs/logfs/inode.c | 1 -
fs/minix/inode.c | 1 -
fs/mount.h | 75 +++
fs/namei.c | 37 +-
fs/namespace.c | 773 +++++++++++------------------
fs/ncpfs/inode.c | 1 -
fs/ncpfs/ioctl.c | 2 +-
fs/nfs/dir.c | 13 +-
fs/nfs/inode.c | 41 +-
fs/nfs/super.c | 19 +-
fs/nfsd/nfs4proc.c | 4 +-
fs/nfsd/nfs4recover.c | 12 +-
fs/nfsd/vfs.c | 34 +-
fs/nfsd/vfs.h | 10 +
fs/nilfs2/ioctl.c | 22 +-
fs/nilfs2/super.c | 2 -
fs/notify/fanotify/fanotify_user.c | 6 +-
fs/notify/fsnotify.c | 9 +-
fs/notify/vfsmount_mark.c | 19 +-
fs/ntfs/inode.c | 1 -
fs/ocfs2/dlmfs/dlmfs.c | 1 -
fs/ocfs2/ioctl.c | 4 +-
fs/ocfs2/move_extents.c | 4 +-
fs/ocfs2/super.c | 1 -
fs/open.c | 2 +-
fs/openpromfs/inode.c | 1 -
fs/pipe.c | 7 -
fs/pnode.c | 120 ++---
fs/pnode.h | 36 +-
fs/proc/base.c | 114 -----
fs/proc/inode.c | 1 -
fs/proc/namespaces.c | 1 -
fs/proc_namespace.c | 331 ++++++++++++
fs/qnx4/inode.c | 1 -
fs/reiserfs/ioctl.c | 8 +-
fs/reiserfs/super.c | 1 -
fs/romfs/super.c | 1 -
fs/seq_file.c | 10 +-
fs/squashfs/super.c | 1 -
fs/statfs.c | 21 +-
fs/super.c | 50 ++-
fs/sysv/inode.c | 1 -
fs/ubifs/ioctl.c | 4 +-
fs/ubifs/super.c | 1 -
fs/udf/super.c | 1 -
fs/ufs/super.c | 1 -
fs/xattr.c | 4 +-
fs/xfs/xfs_iget.c | 1 -
fs/xfs/xfs_ioctl.c | 8 +-
fs/xfs/xfs_ioctl32.c | 8 +-
include/linux/fs.h | 7 +-
include/linux/mnt_namespace.h | 31 +-
include/linux/mount.h | 39 +--
include/linux/nfs_fs.h | 2 +-
include/linux/seq_file.h | 10 +-
ipc/mqueue.c | 1 -
kernel/acct.c | 40 +--
mm/shmem.c | 1 -
net/sunrpc/rpc_pipe.c | 1 -
security/apparmor/path.c | 1 -
security/inode.c | 2 +-
security/tomoyo/realpath.c | 9 +-
115 files changed, 1067 insertions(+), 1161 deletions(-)
create mode 100644 fs/mount.h
create mode 100644 fs/proc_namespace.c
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-05 2:23 [git pull] vfs pile 1 Al Viro
@ 2012-01-08 23:04 ` Linus Torvalds
2012-01-08 23:50 ` Al Viro
2012-01-11 11:58 ` Christoph Hellwig
0 siblings, 2 replies; 33+ messages in thread
From: Linus Torvalds @ 2012-01-08 23:04 UTC (permalink / raw)
To: Al Viro, Miklos Szeredi; +Cc: linux-kernel, linux-fsdevel, Toshiyuki Okajima
Hmm.
Al, Miklos, I just triggered the new inc_link() warning three times in
very close succession by just doing a simple
perf record -f -e cycles:pp make -j
(I don't think the "perf record" part was actually required or
relevant, although it may have been instrumental in triggering just
the right timing)
This was in a fully built tree, I'm just checking
The warning trace looks like this:
[ 6933.446125] ------------[ cut here ]------------
[ 6933.446131] WARNING: at fs/inode.c:349 inc_nlink+0x30/0x40()
[ 6933.446133] Hardware name: System Product Name
[ 6933.446135] Pid: 22955, comm: perf Not tainted
3.2.0-03190-g972b2c719990 #72
[ 6933.446137] Call Trace:
[ 6933.446143] [<ffffffff8102ee15>] warn_slowpath_common+0x75/0xb0
[ 6933.446145] [<ffffffff8102ef15>] warn_slowpath_null+0x15/0x20
[ 6933.446147] [<ffffffff810f1450>] inc_nlink+0x30/0x40
[ 6933.446151] [<ffffffff8116f333>] ext4_symlink+0x113/0x2c0
[ 6933.446154] [<ffffffff810e7b01>] vfs_symlink+0xa1/0xf0
[ 6933.446157] [<ffffffff810e7c03>] sys_symlinkat+0xb3/0xd0
[ 6933.446159] [<ffffffff810e7c31>] sys_symlink+0x11/0x20
[ 6933.446162] [<ffffffff816916a2>] system_call_fastpath+0x16/0x1b
[ 6933.446164] ---[ end trace 550d4b2eb6b8fbc9 ]---
and the three warnings all triggered within 2/100th of a second of
that one (the last one had a timestamp of 6933.465678), so they are
probably all related to the same thing happening.
Any ideas?
Linus
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-08 23:04 ` Linus Torvalds
@ 2012-01-08 23:50 ` Al Viro
2012-01-08 23:53 ` Al Viro
2012-01-09 15:11 ` Ted Ts'o
2012-01-11 11:58 ` Christoph Hellwig
1 sibling, 2 replies; 33+ messages in thread
From: Al Viro @ 2012-01-08 23:50 UTC (permalink / raw)
To: Linus Torvalds
Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Sun, Jan 08, 2012 at 03:04:30PM -0800, Linus Torvalds wrote:
> Hmm.
>
> Al, Miklos, I just triggered the new inc_link() warning three times in
> very close succession by just doing a simple
>
> perf record -f -e cycles:pp make -j
>
> (I don't think the "perf record" part was actually required or
> relevant, although it may have been instrumental in triggering just
> the right timing)
>
> This was in a fully built tree, I'm just checking
>
> The warning trace looks like this:
>
> [ 6933.446125] ------------[ cut here ]------------
> [ 6933.446131] WARNING: at fs/inode.c:349 inc_nlink+0x30/0x40()
> [ 6933.446133] Hardware name: System Product Name
> [ 6933.446135] Pid: 22955, comm: perf Not tainted
> 3.2.0-03190-g972b2c719990 #72
> [ 6933.446137] Call Trace:
> [ 6933.446143] [<ffffffff8102ee15>] warn_slowpath_common+0x75/0xb0
> [ 6933.446145] [<ffffffff8102ef15>] warn_slowpath_null+0x15/0x20
> [ 6933.446147] [<ffffffff810f1450>] inc_nlink+0x30/0x40
> [ 6933.446151] [<ffffffff8116f333>] ext4_symlink+0x113/0x2c0
> [ 6933.446154] [<ffffffff810e7b01>] vfs_symlink+0xa1/0xf0
> [ 6933.446157] [<ffffffff810e7c03>] sys_symlinkat+0xb3/0xd0
> [ 6933.446159] [<ffffffff810e7c31>] sys_symlink+0x11/0x20
> [ 6933.446162] [<ffffffff816916a2>] system_call_fastpath+0x16/0x1b
> [ 6933.446164] ---[ end trace 550d4b2eb6b8fbc9 ]---
>
> and the three warnings all triggered within 2/100th of a second of
> that one (the last one had a timestamp of 6933.465678), so they are
> probably all related to the same thing happening.
WTF is ext4_symlink() doing in case of long symlinks? Look:
drop_nlink(inode);
err = ext4_orphan_add(handle, inode);
ext4_journal_stop(handle);
[write symlink body]
inc_nlink(inode);
err = ext4_orphan_del(handle, inode);
oh, I see... The comment above that re deadlocks and inability to do that
in a single transaction ;-/
OK, try this; that's equivalent to what they are doing and will not WARN_ON();
I hadn't checked other filesystems for similar tricks yet, so this has a good
chance of being incomplete.
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 86edc45..2043f48 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -2315,7 +2315,7 @@ retry:
err = PTR_ERR(handle);
goto err_drop_inode;
}
- inc_nlink(inode);
+ set_nlink(inode, 1);
err = ext4_orphan_del(handle, inode);
if (err) {
ext4_journal_stop(handle);
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-08 23:50 ` Al Viro
@ 2012-01-08 23:53 ` Al Viro
2012-01-09 0:11 ` Linus Torvalds
2012-01-09 15:11 ` Ted Ts'o
1 sibling, 1 reply; 33+ messages in thread
From: Al Viro @ 2012-01-08 23:53 UTC (permalink / raw)
To: Linus Torvalds
Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Sun, Jan 08, 2012 at 11:50:40PM +0000, Al Viro wrote:
> WTF is ext4_symlink() doing in case of long symlinks? Look:
> drop_nlink(inode);
> err = ext4_orphan_add(handle, inode);
> ext4_journal_stop(handle);
> [write symlink body]
> inc_nlink(inode);
> err = ext4_orphan_del(handle, inode);
> oh, I see... The comment above that re deadlocks and inability to do that
> in a single transaction ;-/
>
> OK, try this; that's equivalent to what they are doing and will not WARN_ON();
> I hadn't checked other filesystems for similar tricks yet, so this has a good
> chance of being incomplete.
... and sure enough, ext3 has the same piece of fun.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-08 23:53 ` Al Viro
@ 2012-01-09 0:11 ` Linus Torvalds
2012-01-09 0:25 ` Al Viro
0 siblings, 1 reply; 33+ messages in thread
From: Linus Torvalds @ 2012-01-09 0:11 UTC (permalink / raw)
To: Al Viro; +Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Sun, Jan 8, 2012 at 3:53 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>
> ... and sure enough, ext3 has the same piece of fun.
Hmm. Do we want to have the s_remove_count games for this "temporarily
zero nlink" case? Maybe we don't want to do drop_nlink/set_nlink? Does
it matter?
Anyway, mind sending me a patch with changelog and sign-off?
Linus
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-09 0:11 ` Linus Torvalds
@ 2012-01-09 0:25 ` Al Viro
2012-01-09 0:39 ` Linus Torvalds
0 siblings, 1 reply; 33+ messages in thread
From: Al Viro @ 2012-01-09 0:25 UTC (permalink / raw)
To: Linus Torvalds
Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Sun, Jan 08, 2012 at 04:11:17PM -0800, Linus Torvalds wrote:
> On Sun, Jan 8, 2012 at 3:53 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > ... and sure enough, ext3 has the same piece of fun.
>
> Hmm. Do we want to have the s_remove_count games for this "temporarily
> zero nlink" case? Maybe we don't want to do drop_nlink/set_nlink? Does
> it matter?
The thing is, the total result in case of failure should be drop_nlink
with s_remove_count bumped. We could turn that into
set i_nlink to 0, without touching s_remove_count
write the body
if failed, bump s_remove_count and bugger off
otherwise set i_nlink to 1, without touching s_remove_count
but that's far more intrusive change than what I posted.
> Anyway, mind sending me a patch with changelog and sign-off?
Sure, will do. I have several more fixes in my tree right now (including
such gems as double kfree() in devpts on mount failure ;-/), so I'll send
a pull request in a couple of hours anyway. Would you be OK with having
that patch in the same pile?
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-09 0:25 ` Al Viro
@ 2012-01-09 0:39 ` Linus Torvalds
2012-01-09 2:12 ` Al Viro
0 siblings, 1 reply; 33+ messages in thread
From: Linus Torvalds @ 2012-01-09 0:39 UTC (permalink / raw)
To: Al Viro; +Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Sun, Jan 8, 2012 at 4:25 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>
> Sure, will do. I have several more fixes in my tree right now (including
> such gems as double kfree() in devpts on mount failure ;-/), so I'll send
> a pull request in a couple of hours anyway. Would you be OK with having
> that patch in the same pile?
Sure, no problem.
Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-09 0:39 ` Linus Torvalds
@ 2012-01-09 2:12 ` Al Viro
0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2012-01-09 2:12 UTC (permalink / raw)
To: Linus Torvalds
Cc: Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Sun, Jan 08, 2012 at 04:39:20PM -0800, Linus Torvalds wrote:
> On Sun, Jan 8, 2012 at 4:25 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >
> > Sure, will do. ?I have several more fixes in my tree right now (including
> > such gems as double kfree() in devpts on mount failure ;-/), so I'll send
> > a pull request in a couple of hours anyway. ?Would you be OK with having
> > that patch in the same pile?
>
> Sure, no problem.
OK, there we go, then... This stuff is fixes-only; there'll be another
pile with patches from various folks all over the last cycle. Please,
pull from the usual place -
git://git.kernel.org:/pub/scm/linux/kernel/git/viro/vfs.git for-linus
Shortlog:
Al Viro (5):
functionfs: unfuck failure exits on mount
... and the same for gadgetfs
devpts: fix double-free on mount failure
exofs: oops after late failure in mount
ext[34]: avoid i_nlink warnings triggered by drop_nlink/inc_nlink kludge in symlink()
Diffstat:
drivers/usb/gadget/f_fs.c | 31 +++++++++++--------------------
drivers/usb/gadget/inode.c | 26 +++++++++++---------------
fs/devpts/inode.c | 4 +---
fs/exofs/super.c | 2 ++
fs/ext3/namei.c | 2 +-
fs/ext4/namei.c | 2 +-
6 files changed, 27 insertions(+), 40 deletions(-)
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-08 23:50 ` Al Viro
2012-01-08 23:53 ` Al Viro
@ 2012-01-09 15:11 ` Ted Ts'o
1 sibling, 0 replies; 33+ messages in thread
From: Ted Ts'o @ 2012-01-09 15:11 UTC (permalink / raw)
To: Al Viro
Cc: Linus Torvalds, Miklos Szeredi, linux-kernel, linux-fsdevel,
Toshiyuki Okajima
On Sun, Jan 08, 2012 at 11:50:40PM +0000, Al Viro wrote:
>
> WTF is ext4_symlink() doing in case of long symlinks? Look:
> drop_nlink(inode);
> err = ext4_orphan_add(handle, inode);
> ext4_journal_stop(handle);
> [write symlink body]
> inc_nlink(inode);
> err = ext4_orphan_del(handle, inode);
> oh, I see... The comment above that re deadlocks and inability to do that
> in a single transaction ;-/
>
> OK, try this; that's equivalent to what they are doing and will not WARN_ON();
> I hadn't checked other filesystems for similar tricks yet, so this has a good
> chance of being incomplete.
>
> diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
> index 86edc45..2043f48 100644
> --- a/fs/ext4/namei.c
> +++ b/fs/ext4/namei.c
> @@ -2315,7 +2315,7 @@ retry:
> err = PTR_ERR(handle);
> goto err_drop_inode;
> }
> - inc_nlink(inode);
> + set_nlink(inode, 1);
> err = ext4_orphan_del(handle, inode);
> if (err) {
> ext4_journal_stop(handle);
Thanks, looks good to me.
Acked-by: "Theodore Ts'o" <tytso@mit.edu>
What's there is a bit of kludge, granted. But an attempt to optimize
out placing the inode on and off the orphan list (either by deferring
the start of the ext3/4 journal handle, or by special casing the block
used for the long symlink) would add a lot of complexity, and creating
long symlinks is not common case in most workloads...
- Ted
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-08 23:04 ` Linus Torvalds
2012-01-08 23:50 ` Al Viro
@ 2012-01-11 11:58 ` Christoph Hellwig
2012-01-11 12:36 ` Miklos Szeredi
1 sibling, 1 reply; 33+ messages in thread
From: Christoph Hellwig @ 2012-01-11 11:58 UTC (permalink / raw)
To: Linus Torvalds
Cc: Al Viro, Miklos Szeredi, linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Sun, Jan 08, 2012 at 03:04:30PM -0800, Linus Torvalds wrote:
> Hmm.
>
> Al, Miklos, I just triggered the new inc_link() warning three times in
> very close succession by just doing a simple
Also just as expected the set_nlink warnings triggers during XFS log
recovery (not that I haven't pointed this out multiple times before):
[ 1702.280003] XFS (vdb2): Starting recovery (logdev: internal)
[ 1702.294935] set_nlink() clearing i_nlink on xfs inode 320
[ 1702.297909] set_nlink() clearing i_nlink on xfs inode 256
[ 1702.301082] set_nlink() clearing i_nlink on xfs inode 192
[ 1702.304305] set_nlink() clearing i_nlink on xfs inode 321
[ 1702.306980] set_nlink() clearing i_nlink on xfs inode 257
[ 1702.308204] set_nlink() clearing i_nlink on xfs inode 193
[ 1702.309490] set_nlink() clearing i_nlink on xfs inode 322
[ 1702.311195] set_nlink() clearing i_nlink on xfs inode 258
[ 1702.313156] set_nlink() clearing i_nlink on xfs inode 194
[ 1702.315203] set_nlink() clearing i_nlink on xfs inode 323
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-11 11:58 ` Christoph Hellwig
@ 2012-01-11 12:36 ` Miklos Szeredi
2012-01-11 12:40 ` Christoph Hellwig
0 siblings, 1 reply; 33+ messages in thread
From: Miklos Szeredi @ 2012-01-11 12:36 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Linus Torvalds, Al Viro, linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Wed, 2012-01-11 at 06:58 -0500, Christoph Hellwig wrote:
> On Sun, Jan 08, 2012 at 03:04:30PM -0800, Linus Torvalds wrote:
> > Hmm.
> >
> > Al, Miklos, I just triggered the new inc_link() warning three times in
> > very close succession by just doing a simple
>
> Also just as expected the set_nlink warnings triggers during XFS log
> recovery (not that I haven't pointed this out multiple times before):
>
> [ 1702.280003] XFS (vdb2): Starting recovery (logdev: internal)
> [ 1702.294935] set_nlink() clearing i_nlink on xfs inode 320
> [ 1702.297909] set_nlink() clearing i_nlink on xfs inode 256
> [ 1702.301082] set_nlink() clearing i_nlink on xfs inode 192
> [ 1702.304305] set_nlink() clearing i_nlink on xfs inode 321
> [ 1702.306980] set_nlink() clearing i_nlink on xfs inode 257
> [ 1702.308204] set_nlink() clearing i_nlink on xfs inode 193
> [ 1702.309490] set_nlink() clearing i_nlink on xfs inode 322
> [ 1702.311195] set_nlink() clearing i_nlink on xfs inode 258
> [ 1702.313156] set_nlink() clearing i_nlink on xfs inode 194
> [ 1702.315203] set_nlink() clearing i_nlink on xfs inode 323
There are a couple of options:
a) leave it as it is
b) change that set_nlink() in xfs into a
if (nlink)
set_nlink(nlink);
else
clear_nlink();
c) remove the printk from set_nlink(). This effectively makes
set_nlink(0) an alias of clear_nlink().
IIRC your preference is c. What do others think?
Thanks,
Miklos
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-11 12:36 ` Miklos Szeredi
@ 2012-01-11 12:40 ` Christoph Hellwig
2012-01-11 13:12 ` Miklos Szeredi
0 siblings, 1 reply; 33+ messages in thread
From: Christoph Hellwig @ 2012-01-11 12:40 UTC (permalink / raw)
To: Miklos Szeredi
Cc: Christoph Hellwig, Linus Torvalds, Al Viro, linux-kernel,
linux-fsdevel, Toshiyuki Okajima
On Wed, Jan 11, 2012 at 01:36:22PM +0100, Miklos Szeredi wrote:
> There are a couple of options:
>
> a) leave it as it is
>
> b) change that set_nlink() in xfs into a
>
> if (nlink)
> set_nlink(nlink);
> else
> clear_nlink();
>
> c) remove the printk from set_nlink(). This effectively makes
> set_nlink(0) an alias of clear_nlink().
>
> IIRC your preference is c. What do others think?
Yes. a) really isn't an option - we don't want to spew thousands of
useless messages during a log recovery for an operation that's totally
normal. b) is okay, too - but it's not just xfs that needs to be
covered, but any fs that support the concept of recovering from open
but unlinked inodes after a crash. It's just that no one else seems
to have regular QA for that code path.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-11 12:40 ` Christoph Hellwig
@ 2012-01-11 13:12 ` Miklos Szeredi
2012-01-11 15:23 ` Ted Ts'o
0 siblings, 1 reply; 33+ messages in thread
From: Miklos Szeredi @ 2012-01-11 13:12 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Linus Torvalds, Al Viro, linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Wed, 2012-01-11 at 07:40 -0500, Christoph Hellwig wrote:
> On Wed, Jan 11, 2012 at 01:36:22PM +0100, Miklos Szeredi wrote:
> > There are a couple of options:
> >
> > a) leave it as it is
> >
> > b) change that set_nlink() in xfs into a
> >
> > if (nlink)
> > set_nlink(nlink);
> > else
> > clear_nlink();
> >
> > c) remove the printk from set_nlink(). This effectively makes
> > set_nlink(0) an alias of clear_nlink().
> >
> > IIRC your preference is c. What do others think?
>
> Yes. a) really isn't an option - we don't want to spew thousands of
> useless messages during a log recovery for an operation that's totally
> normal. b) is okay, too - but it's not just xfs that needs to be
> covered, but any fs that support the concept of recovering from open
> but unlinked inodes after a crash. It's just that no one else seems
> to have regular QA for that code path.
Since it's a ratelimited printk there won't be thousands of messages. I
think this is just a cosmetic issue and lack of QA isn't a problem. If
the messages are bothersome it can be fixed.
Thanks,
Miklos
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-11 13:12 ` Miklos Szeredi
@ 2012-01-11 15:23 ` Ted Ts'o
2012-01-11 16:19 ` Al Viro
0 siblings, 1 reply; 33+ messages in thread
From: Ted Ts'o @ 2012-01-11 15:23 UTC (permalink / raw)
To: Miklos Szeredi
Cc: Christoph Hellwig, Linus Torvalds, Al Viro, linux-kernel,
linux-fsdevel, Toshiyuki Okajima
On Wed, Jan 11, 2012 at 02:12:36PM +0100, Miklos Szeredi wrote:
> > Yes. a) really isn't an option - we don't want to spew thousands of
> > useless messages during a log recovery for an operation that's totally
> > normal. b) is okay, too - but it's not just xfs that needs to be
> > covered, but any fs that support the concept of recovering from open
> > but unlinked inodes after a crash. It's just that no one else seems
> > to have regular QA for that code path.
>
> Since it's a ratelimited printk there won't be thousands of messages. I
> think this is just a cosmetic issue and lack of QA isn't a problem. If
> the messages are bothersome it can be fixed.
We're going to spew messages in ext3/4 for orphan inodes as well
(thanks for Cristoph for pointing that out). I can put in a similar
kludge, but maybe there should be a _set_nlink() that skips the check?
We do our own more sophisticated check in and will do appropriate
error handling in ext4_iget() anyway, so it's just a waste in that
particular codepath anyway.
- Ted
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-11 15:23 ` Ted Ts'o
@ 2012-01-11 16:19 ` Al Viro
2012-01-12 11:41 ` Miklos Szeredi
0 siblings, 1 reply; 33+ messages in thread
From: Al Viro @ 2012-01-11 16:19 UTC (permalink / raw)
To: Ted Ts'o, Miklos Szeredi, Christoph Hellwig, Linus Torvalds,
linux-kernel, linux-fsdevel, Toshiyuki Okajima
On Wed, Jan 11, 2012 at 10:23:37AM -0500, Ted Ts'o wrote:
> On Wed, Jan 11, 2012 at 02:12:36PM +0100, Miklos Szeredi wrote:
> > > Yes. a) really isn't an option - we don't want to spew thousands of
> > > useless messages during a log recovery for an operation that's totally
> > > normal. b) is okay, too - but it's not just xfs that needs to be
> > > covered, but any fs that support the concept of recovering from open
> > > but unlinked inodes after a crash. It's just that no one else seems
> > > to have regular QA for that code path.
> >
> > Since it's a ratelimited printk there won't be thousands of messages. I
> > think this is just a cosmetic issue and lack of QA isn't a problem. If
> > the messages are bothersome it can be fixed.
>
> We're going to spew messages in ext3/4 for orphan inodes as well
> (thanks for Cristoph for pointing that out). I can put in a similar
> kludge, but maybe there should be a _set_nlink() that skips the check?
> We do our own more sophisticated check in and will do appropriate
> error handling in ext4_iget() anyway, so it's just a waste in that
> particular codepath anyway.
Looking at the callers, I'm not sure we want that warning in set_nlink()
at all, rate-limited or not. Note that it can trigger on the things
like stale NFS fhandle coming in for something that had been deleted
a while ago - IOW, it's neither a kernel bug nor fs corruption.
inc_nlink - sure, that might catch real bugs, drop_nlink - definitely,
but this...
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2012-01-11 16:19 ` Al Viro
@ 2012-01-12 11:41 ` Miklos Szeredi
0 siblings, 0 replies; 33+ messages in thread
From: Miklos Szeredi @ 2012-01-12 11:41 UTC (permalink / raw)
To: Al Viro
Cc: Ted Ts'o, Christoph Hellwig, Linus Torvalds, linux-kernel,
linux-fsdevel, Toshiyuki Okajima
On Wed, 2012-01-11 at 16:19 +0000, Al Viro wrote:
> Looking at the callers, I'm not sure we want that warning in set_nlink()
> at all, rate-limited or not. Note that it can trigger on the things
> like stale NFS fhandle coming in for something that had been deleted
> a while ago - IOW, it's neither a kernel bug nor fs corruption.
> inc_nlink - sure, that might catch real bugs, drop_nlink - definitely,
> but this...
Patch follows.
Thanks,
Miklos
----
Subject: vfs: remove printk from set_nlink()
From: Miklos Szeredi <mszeredi@suse.cz>
Don't log a message for set_nlink(0).
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
---
fs/inode.c | 3 ---
1 file changed, 3 deletions(-)
Index: linux-2.6/fs/inode.c
===================================================================
--- linux-2.6.orig/fs/inode.c 2012-01-11 10:55:00.000000000 +0100
+++ linux-2.6/fs/inode.c 2012-01-12 12:32:44.000000000 +0100
@@ -322,9 +322,6 @@ EXPORT_SYMBOL(clear_nlink);
void set_nlink(struct inode *inode, unsigned int nlink)
{
if (!nlink) {
- printk_ratelimited(KERN_INFO
- "set_nlink() clearing i_nlink on %s inode %li\n",
- inode->i_sb->s_type->name, inode->i_ino);
clear_nlink(inode);
} else {
/* Yes, some filesystems do change nlink from zero to one */
^ permalink raw reply [flat|nested] 33+ messages in thread
* [git pull] vfs, pile 1
@ 2018-06-04 0:59 Al Viro
0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2018-06-04 0:59 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-fsdevel, linux-kernel
That pile is the first part of dealing with livelocks, etc. around
shrink_dcache_parent().
The following changes since commit 60cc43fc888428bb2f18f08997432d426a243338:
Linux 4.17-rc1 (2018-04-15 18:24:20 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.dcache
for you to fetch changes up to 4fb48871409e2fcd375087d526d07f7600c88f94:
restore cond_resched() in shrink_dcache_parent() (2018-04-19 23:58:48 -0400)
----------------------------------------------------------------
Al Viro (5):
d_invalidate(): unhash immediately
d_walk(): kill 'finish' callback
dcache: move cond_resched() into the end of __dentry_kill()
dput(): turn into explicit while() loop
restore cond_resched() in shrink_dcache_parent()
fs/dcache.c | 122 +++++++++++++++++++++---------------------------------------
1 file changed, 43 insertions(+), 79 deletions(-)
^ permalink raw reply [flat|nested] 33+ messages in thread
* [git pull] vfs pile 1
@ 2016-12-16 13:30 Al Viro
0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2016-12-16 13:30 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
This time there's too many branches to push them one by one,
unfortunately. This pile:
* more ->d_init() stuff (work.dcache)
* pathname resolution cleanups (work.namei)
* a few missing iov_iter primitives - copy_from_iter_full() and
friends. Either copy the full requested amount, advance the iterator and
return true, or fail, return false and do _not_ advance the iterator.
Quite a few open-coded callers converted (and became more readable and
harder to fuck up that way) (work.iov_iter)
* several assorted patches, the big one being logfs removal
Right now there's one trivial conflict in lustre (and a couple even
more trivial ones in logfs).
The following changes since commit e5517c2a5a49ed5e99047008629f1cd60246ea0e:
Linux 4.9-rc7 (2016-11-27 13:08:04 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
for you to fetch changes up to c4364f837caf618c2fdb51a2e132cf29dfd1fffa:
Merge branches 'work.namei', 'work.dcache' and 'work.iov_iter' into for-linus (2016-12-15 01:07:29 -0500)
----------------------------------------------------------------
Al Viro (14):
lustre: switch to use of ->d_init()
ceph: unify dentry_operations instances
ceph: switch to use of ->d_init()
don't open-code file_inode()
[iov_iter] new primitives - copy_from_iter_full() and friends
make skb_add_data,{_nocache}() and skb_copy_to_page_nocache() advance only on success
switch getfrag callbacks to ..._full() primitives
namei.c: get rid of user_path_parent()
namei: saner calling conventions for mountpoint_last()
namei: shift interpretation of LOOKUP_FOLLOW inside should_follow_link()
namei: invert WALK_PUT logics
namei: pass both WALK_GET and WALK_MORE to should_follow_link()
namei: fold should_follow_link() with the step into not-followed link
Merge branches 'work.namei', 'work.dcache' and 'work.iov_iter' into for-linus
Christoph Hellwig (1):
logfs: remove from tree
Li Wang (1):
vfs: fix put_compat_statfs64() does not handle errors
Documentation/filesystems/00-INDEX | 2 -
Documentation/filesystems/logfs.txt | 241 --
MAINTAINERS | 8 -
drivers/bluetooth/hci_vhci.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 20 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 4 +-
drivers/net/macvtap.c | 4 +-
drivers/net/tun.c | 7 +-
drivers/staging/greybus/camera.c | 4 +-
drivers/staging/greybus/es2.c | 6 +-
drivers/staging/greybus/svc.c | 6 +-
drivers/staging/greybus/timesync.c | 2 +-
drivers/staging/lustre/lustre/llite/dcache.c | 33 +-
.../staging/lustre/lustre/llite/llite_internal.h | 17 +-
drivers/staging/lustre/lustre/llite/llite_nfs.c | 22 +-
drivers/staging/lustre/lustre/llite/namei.c | 13 +-
drivers/staging/lustre/lustre/llite/statahead.c | 4 +-
drivers/target/target_core_configfs.c | 2 +-
drivers/usb/gadget/function/f_fs.c | 2 +-
drivers/usb/gadget/legacy/inode.c | 2 +-
drivers/vhost/scsi.c | 3 +-
drivers/vhost/vhost.c | 3 +-
fs/Kconfig | 1 -
fs/Makefile | 1 -
fs/aio.c | 6 +-
fs/autofs4/inode.c | 2 +-
fs/ceph/dir.c | 51 +-
fs/ceph/export.c | 26 +-
fs/ceph/file.c | 4 -
fs/ceph/inode.c | 22 +-
fs/ceph/super.c | 2 +-
fs/ceph/super.h | 10 +-
fs/compat.c | 6 +-
fs/fcntl.c | 2 +-
fs/logfs/Kconfig | 17 -
fs/logfs/Makefile | 13 -
fs/logfs/compr.c | 95 -
fs/logfs/dev_bdev.c | 322 ---
fs/logfs/dev_mtd.c | 274 ---
fs/logfs/dir.c | 801 -------
fs/logfs/file.c | 285 ---
fs/logfs/gc.c | 732 -------
fs/logfs/inode.c | 428 ----
fs/logfs/journal.c | 894 --------
fs/logfs/logfs.h | 735 -------
fs/logfs/logfs_abi.h | 629 ------
fs/logfs/readwrite.c | 2298 --------------------
fs/logfs/segment.c | 961 --------
fs/logfs/super.c | 653 ------
fs/namei.c | 147 +-
fs/ncpfs/file.c | 2 +-
fs/orangefs/devorangefs-req.c | 13 +-
fs/orangefs/file.c | 2 +-
fs/orangefs/orangefs-debugfs.c | 6 +-
fs/overlayfs/copy_up.c | 2 +-
include/linux/skbuff.h | 6 +-
include/linux/uio.h | 3 +
include/net/sock.h | 6 +-
include/net/udplite.h | 2 +-
kernel/audit_watch.c | 4 +-
kernel/events/core.c | 2 +-
kernel/locking/qspinlock_stat.h | 12 +-
kernel/printk/printk.c | 2 +-
lib/iov_iter.c | 98 +-
net/atm/common.c | 2 +-
net/bluetooth/l2cap_core.c | 6 +-
net/ipv4/ip_output.c | 4 +-
net/ipv4/ping.c | 8 +-
net/packet/af_packet.c | 5 +-
net/tipc/msg.c | 4 +-
security/keys/keyctl.c | 2 +-
security/smack/smack_lsm.c | 2 +-
73 files changed, 264 insertions(+), 9755 deletions(-)
delete mode 100644 Documentation/filesystems/logfs.txt
delete mode 100644 fs/logfs/Kconfig
delete mode 100644 fs/logfs/Makefile
delete mode 100644 fs/logfs/compr.c
delete mode 100644 fs/logfs/dev_bdev.c
delete mode 100644 fs/logfs/dev_mtd.c
delete mode 100644 fs/logfs/dir.c
delete mode 100644 fs/logfs/file.c
delete mode 100644 fs/logfs/gc.c
delete mode 100644 fs/logfs/inode.c
delete mode 100644 fs/logfs/journal.c
delete mode 100644 fs/logfs/logfs.h
delete mode 100644 fs/logfs/logfs_abi.h
delete mode 100644 fs/logfs/readwrite.c
delete mode 100644 fs/logfs/segment.c
delete mode 100644 fs/logfs/super.c
^ permalink raw reply [flat|nested] 33+ messages in thread
* [git pull] vfs pile 1
@ 2015-09-06 2:55 Al Viro
0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2015-09-06 2:55 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
In this one: d_move fixes (Eric), UFS fixes (me; locking is mostly sane
now, a bunch of bugs in error handling ought to be fixed), switch of sb_writers
to percpu rwsem (Oleg), superblock scalability (Josef and Dave), swapon(2) race
fix (Hugh). Please, pull from the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
Shortlog:
Al Viro (47):
ufs: kill more lock_ufs() calls
ufs: switch ufs_evict_inode() to trimmed-down variant of ufs_truncate()
ufs: free excessive blocks upon ->write_begin() failure/short copy
ufs: move truncate_setsize() down into ufs_truncate()
ufs: move lock_ufs() down into __ufs_truncate_blocks()
ufs: bforget() indirect blocks before freeing them
ufs: don't use lock_ufs() for block pointers tree protection
ufs: kill lock_ufs()
ufs: ufs_trunc_direct() always returns 0
ufs: ufs_trunc_...() has exclusion with everything that might cause allocations
ufs: no retries are needed on truncate
ufs: move truncate code into inode.c
ufs: the offsets ufs_block_to_path() puts into array are not sector_t
ufs: beginning of __ufs_truncate_block() massage
ufs_trunc_tindirect(): pass the number of blocks to keep
ufs_trunc_indirect(): pass the index of the first pointer to free
ufs_trunc_dindirect(): pass the number of blocks to keep
__ufs_truncate(); find cutoff distances into branches by offsets[] array
ufs_trunc_...indirect(): pass the array of indices instead of offsets
ufs_trunc_..indirect(): more massage towards unifying
unify ufs_trunc_..indirect()
__ufs_truncate_blocks(): unify freeing the full branches
__ufs_trunc_blocks(): turn the part after switch into a loop
ufs_trunc_branch(): never call with offsets != NULL && depth2 == 0
ufs_trunc_branch(): separate the calls with non-NULL offsets
ufs: unify the logics for collecting adjacent data blocks to free
split ufs_truncate_branch() into full- and partial-branch variants
ufs_trunc_branch(): massage towards killing recursion
ufs_trunc_branch(): kill recursion
free_full_branch(): saner calling conventions
move marking inode dirty to the end of __ufs_truncate_blocks()
free_full_branch(): don't bother modifying the block we are going to free
__ufs_truncate_blocks(): avoid excessive dirtying of indirect blocks
ufs_inode_get{frag,block}(): get rid of retries
ufs: move calculation of offsets into ufs_getfrag_block()
ufs: use the branch depth in ufs_getfrag_block()
ufs_inode_get{frag,block}(): consolidate success exits
ufs_getfrag_block(): get rid of macro jungles
ufs_inode_get{frag,block}(): leave sb_getblk() to caller
ufs_inode_getblock(): pass index instead of 'fragment'
ufs_inode_getblock(): pass indirect block number and full index
ufs_inode_getfrag(): split extending the partial blocks off
ufs_inode_getfrag(): pass index instead of 'fragment'
ufs_getfrag_block(): turn following indirects into a loop
ufs_inode_getblock(): failure to read an indirect block is -EIO
ufs_getfrag_block(): tidy up a bit
ufs_inode_get{frag,block}(): get rid of 'phys' argument
Dave Chinner (4):
writeback: plug writeback at a high level
inode: convert inode_sb_list_lock to per-sb
sync: serialise per-superblock sync operations
inode: rename i_wb_list to i_io_list
Eric W. Biederman (3):
dcache: Handle escaped paths in prepend_path
dcache: Reduce the scope of i_lock in d_splice_alias
vfs: Test for and handle paths that are unreachable from their mnt_root
Hugh Dickins (1):
mm: fix potential data race in SyS_swapon
Josef Bacik (2):
inode: add hlist_fake to avoid the inode hash lock in evict
inode: don't softlockup when evicting inodes
Oleg Nesterov (8):
introduce __sb_writers_{acquired,release}() helpers
fix the broken lockdep logic in __sb_start_write()
document rwsem_release() in sb_wait_write()
percpu-rwsem: introduce percpu_down_read_trylock()
percpu-rwsem: introduce percpu_rwsem_release() and percpu_rwsem_acquire()
percpu-rwsem: kill CONFIG_PERCPU_RWSEM
shift percpu_counter_destroy() into destroy_super_work()
change sb_writers to use percpu_rw_semaphore
Diffstat:
arch/Kconfig | 1 -
fs/block_dev.c | 12 +-
fs/btrfs/transaction.c | 8 +-
fs/dcache.c | 14 +-
fs/drop_caches.c | 10 +-
fs/fs-writeback.c | 72 +--
fs/inode.c | 50 ++-
fs/internal.h | 3 +-
fs/namei.c | 27 +-
fs/notify/inode_mark.c | 20 +-
fs/quota/dquot.c | 16 +-
fs/super.c | 175 ++++----
fs/ufs/Makefile | 2 +-
fs/ufs/balloc.c | 4 +
fs/ufs/inode.c | 948 ++++++++++++++++++++++++++-------------
fs/ufs/super.c | 36 +-
fs/ufs/truncate.c | 523 ---------------------
fs/ufs/ufs.h | 13 +-
fs/xfs/xfs_aops.c | 6 +-
include/linux/fs.h | 33 +-
include/linux/fsnotify_backend.h | 4 +-
include/linux/list.h | 5 +
include/linux/percpu-rwsem.h | 20 +
init/Kconfig | 1 -
kernel/locking/Makefile | 3 +-
kernel/locking/percpu-rwsem.c | 13 +
lib/Kconfig | 3 -
mm/backing-dev.c | 8 +-
mm/swapfile.c | 25 +-
29 files changed, 936 insertions(+), 1119 deletions(-)
delete mode 100644 fs/ufs/truncate.c
^ permalink raw reply [flat|nested] 33+ messages in thread
* [git pull] vfs pile 1
@ 2015-06-22 6:47 Al Viro
0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2015-06-22 6:47 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
In this pile: pathname resolution rewrite.
* recursion in link_path_walk() is gone.
* nesting limits on symlinks are gone (the only limit remaining is that
the total amount of symlinks is no more than 40, no matter how nested).
* "fast" (inline) symlinks are handled without leaving rcuwalk mode.
* stack footprint (independent of the nesting) is below kilobyte now -
about on par with what it used to be with one level of nested symlinks
and ~2.8 times lower than it used to be in the worst case.
* struct nameidata is entirely private to fs/namei.c now (not even opaque
pointers are being passed around).
* ->follow_link() and ->put_link() calling conventions had been changed;
all in-tree filesystems converted, out-of-tree should be able to follow
reasonably easy; see Documentation/filesystems/porting for details (and
in-tree filesystems for examples of conversion).
That has sat in -next since mid-May, seems to survive all testing without
regressions and merges clean with v4.1. Please, pull from
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus-1
Shortlog:
Al Viro (123):
9p: don't bother with 4K allocation for 24-byte local array...
9p: don't bother with __getname() in ->follow_link()
ext4: split inode_operations for encrypted symlinks off the rest
libfs: simple_follow_link()
ext2: use simple_follow_link()
befs: switch to simple_follow_link()
ext3: switch to simple_follow_link()
ext4: switch to simple_follow_link()
jffs2: switch to simple_follow_link()
shmem: switch to simple_follow_link()
debugfs: switch to simple_follow_link()
ufs: switch to simple_follow_link()
ubifs: switch to simple_follow_link()
sysv: switch to simple_follow_link()
jfs: switch to simple_follow_link()
freevxfs: switch to simple_follow_link()
exofs: switch to {simple,page}_symlink_inode_operations
ceph: switch to simple_follow_link()
logfs: fix a pagecache leak for symlinks
uninline walk_component()
namei: take O_NOFOLLOW treatment into do_last()
do_last: kill symlink_ok
do_last: regularize the logics around following symlinks
namei: get rid of lookup_hash()
name: shift nameidata down into user_path_walk()
namei: lift nameidata into filename_mountpoint()
new ->follow_link() and ->put_link() calling conventions
namei.c: separate the parts of follow_link() that find the link body
namei: don't bother with ->follow_link() if ->i_link is set
namei: introduce nameidata->link
do_last: move path there from caller's stack frame
namei: expand nested_symlink() in its only caller
namei: expand the call of follow_link() in link_path_walk()
namei: move the calls of may_follow_link() into follow_link()
namei: rename follow_link to trailing_symlink, move it down
link_path_walk: handle get_link() returning ERR_PTR() immediately
link_path_walk: don't bother with walk_component() after jumping link
link_path_walk: turn inner loop into explicit goto
link_path_walk: massage a bit more
link_path_walk: get rid of duplication
link_path_walk: final preparations to killing recursion
link_path_walk: kill the recursion
link_path_walk: split "return from recursive call" path
link_path_walk: cleanup - turn goto start; into continue;
namei: move link/cookie pairs into nameidata
namei: trim redundant arguments of trailing_symlink()
namei: trim redundant arguments of fs/namei.c:put_link()
namei: trim the arguments of get_link()
namei: remove restrictions on nesting depth
link_path_walk: nd->depth massage, part 1
link_path_walk: nd->depth massage, part 2
link_path_walk: nd->depth massage, part 3
link_path_walk: nd->depth massage, part 4
trailing_symlink: nd->depth massage, part 5
get_link: nd->depth massage, part 6
trailing_symlink: nd->depth massage, part 7
put_link: nd->depth massage, part 8
link_path_walk: nd->depth massage, part 9
link_path_walk: nd->depth massage, part 10
link_path_walk: end of nd->depth massage
namei: we never need more than MAXSYMLINKS entries in nd->stack
namei: lift (open-coded) terminate_walk() in follow_dotdot_rcu() into callers
lift terminate_walk() into callers of walk_component()
namei: lift (open-coded) terminate_walk() into callers of get_link()
namei: take put_link() into {lookup,mountpoint,do}_last()
namei: have terminate_walk() do put_link() on everything left
link_path_walk: move the OK: inside the loop
namei: new calling conventions for walk_component()
namei: make should_follow_link() store the link in nd->link
namei: move link count check and stack allocation into pick_link()
lustre: rip the private symlink nesting limit out
namei: simplify the callers of follow_managed()
don't pass nameidata to ->follow_link()
namei: simplify failure exits in get_link()
namei: simpler treatment of symlinks with nothing other that / in the body
namei: take the treatment of absolute symlinks to get_link()
namei: fold put_link() into the failure case of complete_walk()
namei: move bumping the refcount of link->mnt into pick_link()
may_follow_link(): trim arguments
namei: kill nd->link
namei: take increment of nd->depth into pick_link()
namei: may_follow_link() - lift terminate_walk() on failures into caller
namei: split off filename_lookupat() with LOOKUP_PARENT
namei: get rid of nameidata->base
namei: path_init() calling conventions change
namei: lift link_path_walk() call out of trailing_symlink()
namei: lift terminate_walk() all the way up
link_path_walk: use explicit returns for failure exits
namei: explicitly pass seq number to unlazy_walk() when dentry != NULL
namei: don't mangle nd->seq in lookup_fast()
namei: store inode in nd->stack[]
namei: pick_link() callers already have inode
switch ->put_link() from dentry to inode
new helper: free_page_put_link()
namei: make put_link() RCU-safe
namei: make may_follow_link() safe in RCU mode
new helper: __legitimize_mnt()
namei: store seq numbers in nd->stack[]
namei: make unlazy_walk and terminate_walk handle nd->stack, add unlazy_link
namei: don't unlazy until get_link()
enable passing fast relative symlinks without dropping out of RCU mode
namei: handle absolute symlinks without dropping out of RCU mode
update Documentation/filesystems/ regarding the follow_link/put_link changes
namei: unlazy_walk() doesn't need to mess with current->fs anymore
lustre: kill unused macro (LOOKUP_CONTINUE)
lustre: kill unused helper
get rid of assorted nameidata-related debris
namei: be careful with mountpoint crossings in follow_dotdot_rcu()
namei: uninline set_root{,_rcu}()
namei: pass the struct path to store the result down into path_lookupat()
namei: move putname() call into filename_lookup()
namei: shift nameidata inside filename_lookup()
namei: make filename_lookup() reject ERR_PTR() passed as name
namei: shift nameidata down into filename_parentat()
namei: saner calling conventions for filename_create()
namei: saner calling conventions for filename_parentat()
namei: fold path_cleanup() into terminate_walk()
namei: stash dfd and name into nameidata
namei: trim do_last() arguments
inline user_path_parent()
inline user_path_create()
namei: move saved_nd pointer into struct nameidata
turn user_{path_at,path,lpath,path_dir}() into static inlines
David Howells (1):
VFS: Handle lower layer dentry/inode in pathwalk
NeilBrown (7):
ovl: rearrange ovl_follow_link to it doesn't need to call ->put_link
SECURITY: remove nameidata arg from inode_follow_link.
VFS: replace {, total_}link_count in task_struct with pointer to nameidata
security/selinux: pass 'flags' arg to avc_audit() and avc_has_perm_flags()
security: make inode_follow_link RCU-walk aware
VFS/namei: make the use of touch_atime() in get_link() RCU-safe.
Documentation: remove outdated information from automount-support.txt
Diffstat:
Documentation/filesystems/Locking | 4 +-
Documentation/filesystems/automount-support.txt | 51 +-
Documentation/filesystems/porting | 17 +
Documentation/filesystems/vfs.txt | 22 +-
.../lustre/lustre/include/linux/lustre_compat25.h | 15 -
.../staging/lustre/lustre/llite/llite_internal.h | 6 -
drivers/staging/lustre/lustre/llite/symlink.c | 26 +-
fs/9p/v9fs.h | 2 -
fs/9p/vfs_inode.c | 123 +-
fs/9p/vfs_inode_dotl.c | 39 +-
fs/autofs4/symlink.c | 5 +-
fs/befs/linuxvfs.c | 57 +-
fs/ceph/inode.c | 11 +-
fs/cifs/cifsfs.h | 2 +-
fs/cifs/link.c | 28 +-
fs/configfs/symlink.c | 31 +-
fs/debugfs/file.c | 12 -
fs/debugfs/inode.c | 6 +-
fs/ecryptfs/inode.c | 11 +-
fs/exofs/Kbuild | 2 +-
fs/exofs/exofs.h | 4 -
fs/exofs/inode.c | 9 +-
fs/exofs/namei.c | 5 +-
fs/exofs/symlink.c | 55 -
fs/ext2/inode.c | 1 +
fs/ext2/namei.c | 3 +-
fs/ext2/symlink.c | 10 +-
fs/ext3/inode.c | 1 +
fs/ext3/namei.c | 3 +-
fs/ext3/symlink.c | 10 +-
fs/ext4/ext4.h | 1 +
fs/ext4/inode.c | 7 +-
fs/ext4/namei.c | 11 +-
fs/ext4/symlink.c | 48 +-
fs/f2fs/namei.c | 18 +-
fs/freevxfs/vxfs_extern.h | 3 -
fs/freevxfs/vxfs_immed.c | 34 -
fs/freevxfs/vxfs_inode.c | 7 +-
fs/fuse/dir.c | 22 +-
fs/gfs2/inode.c | 10 +-
fs/hostfs/hostfs_kern.c | 15 +-
fs/hppfs/hppfs.c | 13 +-
fs/inode.c | 31 +-
fs/jffs2/dir.c | 1 +
fs/jffs2/fs.c | 1 +
fs/jffs2/symlink.c | 45 +-
fs/jfs/inode.c | 3 +-
fs/jfs/namei.c | 5 +-
fs/jfs/symlink.c | 10 +-
fs/kernfs/symlink.c | 25 +-
fs/libfs.c | 25 +-
fs/logfs/dir.c | 1 +
fs/mount.h | 1 +
fs/namei.c | 1453 ++++++++++----------
fs/namespace.c | 27 +-
fs/nfs/symlink.c | 19 +-
fs/ntfs/namei.c | 2 +-
fs/open.c | 2 +-
fs/overlayfs/inode.c | 35 +-
fs/proc/base.c | 4 +-
fs/proc/inode.c | 9 +-
fs/proc/namespaces.c | 4 +-
fs/proc/self.c | 24 +-
fs/proc/thread_self.c | 22 +-
fs/sysv/Makefile | 2 +-
fs/sysv/inode.c | 5 +-
fs/sysv/symlink.c | 20 -
fs/sysv/sysv.h | 1 -
fs/ubifs/dir.c | 1 +
fs/ubifs/file.c | 11 +-
fs/ubifs/super.c | 1 +
fs/ufs/inode.c | 5 +-
fs/ufs/namei.c | 3 +-
fs/ufs/symlink.c | 13 +-
fs/xfs/xfs_iops.c | 11 +-
include/linux/debugfs.h | 1 -
include/linux/fs.h | 16 +-
include/linux/namei.h | 41 +-
include/linux/sched.h | 3 +-
include/linux/security.h | 13 +-
mm/shmem.c | 32 +-
security/capability.c | 4 +-
security/security.c | 7 +-
security/selinux/avc.c | 18 +-
security/selinux/hooks.c | 18 +-
security/selinux/include/avc.h | 9 +-
86 files changed, 1222 insertions(+), 1522 deletions(-)
delete mode 100644 fs/exofs/symlink.c
delete mode 100644 fs/sysv/symlink.c
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2014-01-30 2:02 ` Kim Jaegeuk
@ 2014-01-30 15:26 ` Jan Kara
0 siblings, 0 replies; 33+ messages in thread
From: Jan Kara @ 2014-01-30 15:26 UTC (permalink / raw)
To: Kim Jaegeuk
Cc: Jan Kara, Linus Torvalds, Al Viro, Christoph Hellwig,
Linux Kernel Mailing List, linux-fsdevel, Jaegeuk Kim
On Thu 30-01-14 11:02:49, Kim Jaegeuk wrote:
> 2014-01-29 Jan Kara <jack@suse.cz>:
> > On Tue 28-01-14 19:26:08, Linus Torvalds wrote:
> >> On Mon, Jan 27, 2014 at 6:25 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >> > Assorted stuff; the biggest pile here is Christoph's ACL series.
> >> > Plus assorted cleanups and fixes all over the place... There will be
> >> > another pile later this week.
> >>
> >> The posix_acl_chmod() code looks wrong.
> >>
> >> Not that it looked right before either, but whatever. The code
> >> basically looks like some variation of this in most setattr()
> >> implementations:
> >>
> >> if (ia_valid & ATTR_MODE)
> >> rc = posix_acl_chmod(inode, inode->i_mode);
> >>
> >> but the mode we're changing to (and what ATTR_MODE guards) is actually
> >> attr->ia_mode, not inode->i_mode.
> > Yes, but posix_acl_chmod() is called after setattr_copy() was done so
> > inode->i_mode should be the same as attr->ia_mode. Whether i_mode or
> > ia_mode is mode logical depends on whether you view posix_acl_chmod() as
> > "sync current i_mode into acls" or "reflect this i_mode change in acls".
> > I agree the function name suggests more the latter semantics.
> >
> >> And quite frankly, passing in inode->i_mode looks stupid, since we're
> >> already passing in the inode pointer, so that's just redundant and
> >> pointless information.
> > Yes, it looks stupid. We could almost drop that argument, except that f2fs
> > tries to play some tricks with i_mode and stores i_mode in a different
> > place when acls are enabled. Huh? Jaegeuk, can you explain why are you
> > doing that?
>
> As described to Christoph before, the reason is for acl consistency
> between on-disk xattr->mode and on-disk inode->mode.
>
> Previously, there are three i_modes managed by:
> inode->mode on-disk xattr->mode on-disk->i_mode
> f2fs_setattr [x] y y
> [update_inode] x y [x]
> [checkpoint] x [y] x
> __f2fs_setxattr x [x] x
>
> In this flow, f2fs is able to break the consistency between on-disk
> xattr->mode and on-disk->i_mode after checkpoint followed by
> sudden-power-off.
>
> So, fi->i_mode was introduced to address the problem.
> The new f2fs_setattr triggers:
> inode->mode fi->i_mode on-disk xattr->mode on-disk->i_mode
> f2fs_setattr y [x] y
> y
> [update_inode] y x y
> y
> [checkpoint] y x y
> y
> __f2fs_setxattr [x] x [x]
> [x]
>
> Finally, __f2fs_setxattr synchronizes inode->mode, on-disk xattr->mode,
> and on-disk inode->i_mode all together.
>
> Am I missing something?
OK, I see. Thanks for explanation.
Honza
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2014-01-29 3:26 ` Linus Torvalds
2014-01-29 13:37 ` Jan Kara
@ 2014-01-30 13:07 ` Christoph Hellwig
1 sibling, 0 replies; 33+ messages in thread
From: Christoph Hellwig @ 2014-01-30 13:07 UTC (permalink / raw)
To: Linus Torvalds
Cc: Al Viro, Jan Kara, Christoph Hellwig, Linux Kernel Mailing List,
linux-fsdevel
On Tue, Jan 28, 2014 at 07:26:08PM -0800, Linus Torvalds wrote:
> but the mode we're changing to (and what ATTR_MODE guards) is actually
> attr->ia_mode, not inode->i_mode. And quite frankly, passing in
> inode->i_mode looks stupid, since we're already passing in the inode
> pointer, so that's just redundant and pointless information.
At this point inode->i_mode has been updated to attra->ia_mode. Passing
in the mode allows fileystems to defer the i_mode update until after
the ACL has been modified, which at this point only f2fs does.
In a perfect world filesystems do both under the same lock for in-core
access and in an transaction for the on-disk change, in which case
the exact order doesn't matter.
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2014-01-29 13:37 ` Jan Kara
@ 2014-01-30 2:02 ` Kim Jaegeuk
2014-01-30 15:26 ` Jan Kara
0 siblings, 1 reply; 33+ messages in thread
From: Kim Jaegeuk @ 2014-01-30 2:02 UTC (permalink / raw)
To: Jan Kara
Cc: Linus Torvalds, Al Viro, Christoph Hellwig,
Linux Kernel Mailing List, linux-fsdevel, Jaegeuk Kim
2014-01-29 Jan Kara <jack@suse.cz>:
> On Tue 28-01-14 19:26:08, Linus Torvalds wrote:
>> On Mon, Jan 27, 2014 at 6:25 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
>> > Assorted stuff; the biggest pile here is Christoph's ACL series.
>> > Plus assorted cleanups and fixes all over the place... There will be
>> > another pile later this week.
>>
>> The posix_acl_chmod() code looks wrong.
>>
>> Not that it looked right before either, but whatever. The code
>> basically looks like some variation of this in most setattr()
>> implementations:
>>
>> if (ia_valid & ATTR_MODE)
>> rc = posix_acl_chmod(inode, inode->i_mode);
>>
>> but the mode we're changing to (and what ATTR_MODE guards) is actually
>> attr->ia_mode, not inode->i_mode.
> Yes, but posix_acl_chmod() is called after setattr_copy() was done so
> inode->i_mode should be the same as attr->ia_mode. Whether i_mode or
> ia_mode is mode logical depends on whether you view posix_acl_chmod() as
> "sync current i_mode into acls" or "reflect this i_mode change in acls".
> I agree the function name suggests more the latter semantics.
>
>> And quite frankly, passing in inode->i_mode looks stupid, since we're
>> already passing in the inode pointer, so that's just redundant and
>> pointless information.
> Yes, it looks stupid. We could almost drop that argument, except that f2fs
> tries to play some tricks with i_mode and stores i_mode in a different
> place when acls are enabled. Huh? Jaegeuk, can you explain why are you
> doing that?
As described to Christoph before, the reason is for acl consistency
between on-disk xattr->mode and on-disk inode->mode.
Previously, there are three i_modes managed by:
inode->mode on-disk xattr->mode on-disk->i_mode
f2fs_setattr [x] y y
[update_inode] x y [x]
[checkpoint] x [y] x
__f2fs_setxattr x [x] x
In this flow, f2fs is able to break the consistency between on-disk
xattr->mode and on-disk->i_mode after checkpoint followed by
sudden-power-off.
So, fi->i_mode was introduced to address the problem.
The new f2fs_setattr triggers:
inode->mode fi->i_mode on-disk xattr->mode on-disk->i_mode
f2fs_setattr y [x] y
y
[update_inode] y x y
y
[checkpoint] y x y
y
__f2fs_setxattr [x] x [x]
[x]
Finally, __f2fs_setxattr synchronizes inode->mode, on-disk xattr->mode,
and on-disk inode->i_mode all together.
Am I missing something?
Thanks,
>
> Honza
> --
> Jan Kara <jack@suse.cz>
> SUSE Labs, CR
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2014-01-29 3:26 ` Linus Torvalds
@ 2014-01-29 13:37 ` Jan Kara
2014-01-30 2:02 ` Kim Jaegeuk
2014-01-30 13:07 ` Christoph Hellwig
1 sibling, 1 reply; 33+ messages in thread
From: Jan Kara @ 2014-01-29 13:37 UTC (permalink / raw)
To: Linus Torvalds
Cc: Al Viro, Jan Kara, Christoph Hellwig, Linux Kernel Mailing List,
linux-fsdevel, Jaegeuk Kim
On Tue 28-01-14 19:26:08, Linus Torvalds wrote:
> On Mon, Jan 27, 2014 at 6:25 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> > Assorted stuff; the biggest pile here is Christoph's ACL series.
> > Plus assorted cleanups and fixes all over the place... There will be
> > another pile later this week.
>
> The posix_acl_chmod() code looks wrong.
>
> Not that it looked right before either, but whatever. The code
> basically looks like some variation of this in most setattr()
> implementations:
>
> if (ia_valid & ATTR_MODE)
> rc = posix_acl_chmod(inode, inode->i_mode);
>
> but the mode we're changing to (and what ATTR_MODE guards) is actually
> attr->ia_mode, not inode->i_mode.
Yes, but posix_acl_chmod() is called after setattr_copy() was done so
inode->i_mode should be the same as attr->ia_mode. Whether i_mode or
ia_mode is mode logical depends on whether you view posix_acl_chmod() as
"sync current i_mode into acls" or "reflect this i_mode change in acls".
I agree the function name suggests more the latter semantics.
> And quite frankly, passing in inode->i_mode looks stupid, since we're
> already passing in the inode pointer, so that's just redundant and
> pointless information.
Yes, it looks stupid. We could almost drop that argument, except that f2fs
tries to play some tricks with i_mode and stores i_mode in a different
place when acls are enabled. Huh? Jaegeuk, can you explain why are you
doing that?
Honza
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2014-01-27 14:25 Al Viro
2014-01-27 23:05 ` Stephen Rothwell
@ 2014-01-29 3:26 ` Linus Torvalds
2014-01-29 13:37 ` Jan Kara
2014-01-30 13:07 ` Christoph Hellwig
1 sibling, 2 replies; 33+ messages in thread
From: Linus Torvalds @ 2014-01-29 3:26 UTC (permalink / raw)
To: Al Viro, Jan Kara, Christoph Hellwig
Cc: Linux Kernel Mailing List, linux-fsdevel
On Mon, Jan 27, 2014 at 6:25 AM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> Assorted stuff; the biggest pile here is Christoph's ACL series.
> Plus assorted cleanups and fixes all over the place... There will be
> another pile later this week.
The posix_acl_chmod() code looks wrong.
Not that it looked right before either, but whatever. The code
basically looks like some variation of this in most setattr()
implementations:
if (ia_valid & ATTR_MODE)
rc = posix_acl_chmod(inode, inode->i_mode);
but the mode we're changing to (and what ATTR_MODE guards) is actually
attr->ia_mode, not inode->i_mode. And quite frankly, passing in
inode->i_mode looks stupid, since we're already passing in the inode
pointer, so that's just redundant and pointless information.
Anyway, I noticed this after doing the (untested, and still un-acked -
hint, hint) ceph conversion. In that, I made ceph use attr->ia_mode.
Maybe that was wrong, but at least it's not insane and stupid like the
other filesystem implementations are.
Comments?
Linus
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2014-01-27 14:25 Al Viro
@ 2014-01-27 23:05 ` Stephen Rothwell
2014-01-29 3:26 ` Linus Torvalds
1 sibling, 0 replies; 33+ messages in thread
From: Stephen Rothwell @ 2014-01-27 23:05 UTC (permalink / raw)
To: Al Viro; +Cc: Linus Torvalds, linux-kernel, linux-fsdevel
[-- Attachment #1: Type: text/plain, Size: 816 bytes --]
Hi Al,
On Mon, 27 Jan 2014 14:25:20 +0000 Al Viro <viro@ZenIV.linux.org.uk> wrote:
>
> Assorted stuff; the biggest pile here is Christoph's ACL series.
> Plus assorted cleanups and fixes all over the place... There will be
> another pile later this week.
>
> There's a couple of conflicts - rcupdate.h and posix_acl.h; proposed resolution
> in vfs.git#conflict-resolution. Please, pull from the usual place -
> git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
Yet again, none of this has been anywhere near linux-next, in fact there
has been nothing in the vfs tree since v3.13-rc1 :-(
Some of these patches are dated last December, yet none of them were
committed to that tree before last Friday.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* [git pull] vfs pile 1
@ 2014-01-27 14:25 Al Viro
2014-01-27 23:05 ` Stephen Rothwell
2014-01-29 3:26 ` Linus Torvalds
0 siblings, 2 replies; 33+ messages in thread
From: Al Viro @ 2014-01-27 14:25 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
Assorted stuff; the biggest pile here is Christoph's ACL series.
Plus assorted cleanups and fixes all over the place... There will be
another pile later this week.
There's a couple of conflicts - rcupdate.h and posix_acl.h; proposed resolution
in vfs.git#conflict-resolution. Please, pull from the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
Shortlog:
Al Viro (13):
ecryptfs: fix failure handling in ->readlink()
xfs: switch to kfree_put_link()
affs: use ->kill_sb() to simplify ->put_super() and failure exits of ->mount()
cramfs: get rid of ->put_super()
cramfs: take headers to fs/cramfs
efs: get rid of ->put_super()
qnx4: clean qnx4_fill_super() up
btrfs: sanitize BTRFS_IOC_FILE_EXTENT_SAME
eventfd_ctx_fdget(): use fdget() instead of fget()
nls: have register_nls() set ->owner
afs: get rid of junk in fs/afs/proc.c
kill reiserfs_bdevname()
__dentry_path() fixes
Christoph Hellwig (21):
reiserfs: prefix ACL symbols with reiserfs_
fs: merge xattr_acl.c into posix_acl.c
fs: add get_acl helper
fs: add a set_acl inode operation
fs: add generic xattr_acl handlers
fs: make posix_acl_chmod more useful
fs: make posix_acl_create more useful
btrfs: use generic posix ACL infrastructure
ext2/3/4: use generic posix ACL infrastructure
f2fs: use generic posix ACL infrastructure
hfsplus: use generic posix ACL infrastructure
jffs2: use generic posix ACL infrastructure
ocfs2: use generic posix ACL infrastructure
reiserfs: use generic posix ACL infrastructure
xfs: use generic posix ACL infrastructure
jfs: use generic posix ACL infrastructure
gfs2: use generic posix ACL infrastructure
nfs: use generic posix ACL infrastructure for v3 Posix ACLs
fs: remove generic_acl
nfsd: use get_acl and ->set_acl
hfsplus: remove can_set_xattr
Eric W. Biederman (2):
vfs: Is mounted should be testing mnt_ns for NULL or error.
vfs: Remove second variable named error in __dentry_path
Oleg Nesterov (5):
introduce __fcheck_files() to fix rcu_dereference_check_fdtable(), kill rcu_my_thread_group_empty()
change close_files() to use rcu_dereference_raw(files->fdt)
fs: factor out common code in fget() and fget_raw()
fs: factor out common code in fget_light() and fget_raw_light()
fs: __fget_light() can use __fget() in slow path
Rakesh Pandit (1):
befs: iget_locked() doesn't return an ERR_PTR
Steven Whitehouse (1):
Fix race when checking i_size on direct i/o read
Diffstat:
arch/blackfin/kernel/setup.c | 2 +-
arch/cris/arch-v32/drivers/axisflashmap.c | 2 -
fs/9p/acl.c | 4 +-
fs/Kconfig | 6 +-
fs/Makefile | 3 +-
fs/affs/super.c | 57 ++-
fs/afs/internal.h | 1 -
fs/afs/proc.c | 122 ++----
fs/befs/linuxvfs.c | 4 +-
fs/btrfs/acl.c | 142 +------
fs/btrfs/ctree.h | 7 +-
fs/btrfs/inode.c | 7 +-
fs/btrfs/ioctl.c | 70 ++--
fs/btrfs/xattr.c | 5 +-
fs/btrfs/xattr.h | 2 -
fs/cramfs/inode.c | 50 ++-
include/linux/cramfs_fs.h => fs/cramfs/internal.h | 6 -
fs/cramfs/uncompress.c | 2 +-
fs/dcache.c | 10 +-
fs/ecryptfs/inode.c | 29 +-
fs/efs/super.c | 39 +-
fs/eventfd.c | 13 +-
fs/ext2/acl.c | 188 +--------
fs/ext2/acl.h | 8 +-
fs/ext2/file.c | 1 +
fs/ext2/inode.c | 2 +-
fs/ext2/namei.c | 2 +
fs/ext2/xattr.c | 8 +-
fs/ext2/xattr.h | 2 -
fs/ext3/acl.c | 223 ++---------
fs/ext3/acl.h | 9 +-
fs/ext3/file.c | 1 +
fs/ext3/inode.c | 2 +-
fs/ext3/namei.c | 2 +
fs/ext3/xattr.c | 8 +-
fs/ext3/xattr.h | 2 -
fs/ext4/acl.c | 223 ++---------
fs/ext4/acl.h | 9 +-
fs/ext4/file.c | 1 +
fs/ext4/inode.c | 2 +-
fs/ext4/namei.c | 2 +
fs/ext4/xattr.c | 8 +-
fs/ext4/xattr.h | 2 -
fs/f2fs/acl.c | 174 +--------
fs/f2fs/acl.h | 7 +-
fs/f2fs/f2fs.h | 4 +
fs/f2fs/file.c | 3 +-
fs/f2fs/namei.c | 2 +
fs/f2fs/xattr.c | 9 +-
fs/f2fs/xattr.h | 2 -
fs/file.c | 98 ++---
fs/fuse/file.c | 3 +
fs/generic_acl.c | 184 ---------
fs/gfs2/acl.c | 234 ++---------
fs/gfs2/acl.h | 4 +-
fs/gfs2/inode.c | 34 +-
fs/gfs2/xattr.c | 4 +-
fs/hfsplus/acl.h | 9 +-
fs/hfsplus/dir.c | 1 +
fs/hfsplus/inode.c | 3 +-
fs/hfsplus/posix_acl.c | 168 +-------
fs/hfsplus/xattr.c | 92 +----
fs/hfsplus/xattr.h | 2 -
fs/jffs2/acl.c | 141 +------
fs/jffs2/acl.h | 7 +-
fs/jffs2/dir.c | 1 +
fs/jffs2/file.c | 1 +
fs/jffs2/fs.c | 7 +-
fs/jffs2/symlink.c | 1 -
fs/jffs2/xattr.c | 9 +-
fs/jfs/acl.c | 105 ++---
fs/jfs/file.c | 4 +-
fs/jfs/jfs_acl.h | 7 +-
fs/jfs/jfs_xattr.h | 2 +
fs/jfs/namei.c | 1 +
fs/jfs/super.c | 2 +
fs/jfs/xattr.c | 108 ++----
fs/mount.h | 2 +-
fs/namei.c | 24 +-
fs/nfs/inode.c | 4 -
fs/nfs/nfs3acl.c | 291 +++-----------
fs/nfs/nfs3proc.c | 76 ++--
fs/nfs/nfs3super.c | 3 +
fs/nfsd/acl.h | 16 +-
fs/nfsd/nfs2acl.c | 72 ++--
fs/nfsd/nfs3acl.c | 62 +--
fs/nfsd/nfs4acl.c | 120 ++++--
fs/nfsd/nfs4proc.c | 1 +
fs/nfsd/vfs.c | 241 ------------
fs/nfsd/vfs.h | 8 -
fs/nls/mac-celtic.c | 1 -
fs/nls/mac-centeuro.c | 1 -
fs/nls/mac-croatian.c | 1 -
fs/nls/mac-cyrillic.c | 1 -
fs/nls/mac-gaelic.c | 1 -
fs/nls/mac-greek.c | 1 -
fs/nls/mac-iceland.c | 1 -
fs/nls/mac-inuit.c | 1 -
fs/nls/mac-roman.c | 1 -
fs/nls/mac-romanian.c | 1 -
fs/nls/mac-turkish.c | 1 -
fs/nls/nls_ascii.c | 1 -
fs/nls/nls_base.c | 5 +-
fs/nls/nls_cp1250.c | 1 -
fs/nls/nls_cp1251.c | 1 -
fs/nls/nls_cp1255.c | 1 -
fs/nls/nls_cp437.c | 1 -
fs/nls/nls_cp737.c | 1 -
fs/nls/nls_cp775.c | 1 -
fs/nls/nls_cp850.c | 1 -
fs/nls/nls_cp852.c | 1 -
fs/nls/nls_cp855.c | 1 -
fs/nls/nls_cp857.c | 1 -
fs/nls/nls_cp860.c | 1 -
fs/nls/nls_cp861.c | 1 -
fs/nls/nls_cp862.c | 1 -
fs/nls/nls_cp863.c | 1 -
fs/nls/nls_cp864.c | 1 -
fs/nls/nls_cp865.c | 1 -
fs/nls/nls_cp866.c | 1 -
fs/nls/nls_cp869.c | 1 -
fs/nls/nls_cp874.c | 1 -
fs/nls/nls_cp932.c | 1 -
fs/nls/nls_cp936.c | 1 -
fs/nls/nls_cp949.c | 1 -
fs/nls/nls_cp950.c | 1 -
fs/nls/nls_euc-jp.c | 1 -
fs/nls/nls_iso8859-1.c | 1 -
fs/nls/nls_iso8859-13.c | 1 -
fs/nls/nls_iso8859-14.c | 1 -
fs/nls/nls_iso8859-15.c | 1 -
fs/nls/nls_iso8859-2.c | 1 -
fs/nls/nls_iso8859-3.c | 1 -
fs/nls/nls_iso8859-4.c | 1 -
fs/nls/nls_iso8859-5.c | 1 -
fs/nls/nls_iso8859-6.c | 1 -
fs/nls/nls_iso8859-7.c | 1 -
fs/nls/nls_iso8859-9.c | 1 -
fs/nls/nls_koi8-r.c | 1 -
fs/nls/nls_koi8-ru.c | 1 -
fs/nls/nls_koi8-u.c | 1 -
fs/nls/nls_utf8.c | 1 -
fs/ocfs2/acl.c | 234 +----------
fs/ocfs2/acl.h | 13 +-
fs/ocfs2/file.c | 4 +-
fs/ocfs2/namei.c | 25 +-
fs/ocfs2/refcounttree.c | 19 +-
fs/ocfs2/xattr.c | 21 +-
fs/ocfs2/xattr.h | 6 +-
fs/posix_acl.c | 428 ++++++++++++++++++++-
fs/qnx4/inode.c | 63 ++-
fs/qnx4/qnx4.h | 2 -
fs/reiserfs/acl.h | 4 +-
fs/reiserfs/file.c | 1 +
fs/reiserfs/namei.c | 4 +-
fs/reiserfs/procfs.c | 4 +-
fs/reiserfs/reiserfs.h | 8 -
fs/reiserfs/super.c | 8 +-
fs/reiserfs/xattr.c | 5 +-
fs/reiserfs/xattr_acl.c | 190 ++-------
fs/xattr_acl.c | 180 ---------
fs/xfs/xfs_acl.c | 151 +-------
fs/xfs/xfs_acl.h | 9 +-
fs/xfs/xfs_iops.c | 55 ++-
fs/xfs/xfs_iops.h | 2 +-
fs/xfs/xfs_xattr.c | 4 +-
include/linux/cramfs_fs_sb.h | 20 -
include/linux/fdtable.h | 35 +-
include/linux/fs.h | 1 +
include/linux/generic_acl.h | 14 -
include/linux/nfs_fs.h | 24 +-
include/linux/nls.h | 3 +-
include/linux/posix_acl.h | 43 ++-
include/linux/posix_acl_xattr.h | 3 +
include/linux/rcupdate.h | 2 -
init/do_mounts_rd.c | 2 +-
kernel/rcu/update.c | 11 -
mm/filemap.c | 42 +-
mm/shmem.c | 57 ++-
179 files changed, 1542 insertions(+), 3852 deletions(-)
rename include/linux/cramfs_fs.h => fs/cramfs/internal.h (70%)
delete mode 100644 fs/generic_acl.c
delete mode 100644 fs/xattr_acl.c
delete mode 100644 include/linux/cramfs_fs_sb.h
delete mode 100644 include/linux/generic_acl.h
^ permalink raw reply [flat|nested] 33+ messages in thread
* [git pull] vfs pile 1
@ 2013-02-27 3:24 Al Viro
0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2013-02-27 3:24 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent
locking violations, etc. The most visible changes here are death of
FS_REVAL_DOT (replaced with "has ->d_weak_revalidate()") and a new helper
getting from struct file to inode. Some bits of preparation to xattr
method interface changes. Misc patches by various people sent this cycle
*and* ocfs2 fixes from several cycles ago that should've been upstream right
then.
Please, pull from
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
PS: the next vfs pile will be xattr stuff.
Shortlog:
Al Viro (33):
mount: consolidate permission checks
new helper: file_inode(file)
propagate error from get_empty_filp() to its callers
clean shmem_file_setup() a bit
link_path_walk(): move assignments to nd->last/nd->last_type up
get rid of name and type arguments of walk_component()
lookup_fast: get rid of name argument
lookup_slow: get rid of name argument
constify __d_lookup() arguments
constify d_lookup() arguments
__d_materialise_unique() is too generic
xenfs: switch to pure simple_fill_super()
hostfs: directory methods have no business in non-directory inode_operations
spufs_mkdir(): don't d_add() on negative parent
oprofilefs: add missing ->i_mutex locking in object creation
shmem_setup_file(): use d_alloc_pseudo() instead of d_alloc()
hugetlb_file_setup(): use d_alloc_pseudo()
lirc: get rid of bogus checks
tegra: don't wank with d_find_alias()
9p: add fid-based variant of v9fs_xattr_set()
9p: lift the call of set_cached_acl() into the callers of v9fs_set_acl()
9p: switch v9fs_set_acl() from dentry to fid
9p: switch v9fs_acl_chmod() from dentry to inode+fid
9p: split dropping the acls from v9fs_set_create_acl()
9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()
d_hash_and_lookup(): export, switch open-coded instances
default SET_PERSONALITY() in linux/elf.h
switch vfs_getattr() to struct path
kill f_vfsmnt
export kernel_write(), convert open-coded instances
target: writev() on single-element vector is pointless
get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero
saner proc_get_inode() calling conventions
Anatol Pomozov (1):
fs: Preserve error code in get_empty_filp(), part 2
Dan Carpenter (1):
ocfs2/dlm: use GFP_ATOMIC inside a spin_lock
J. Bruce Fields (1):
nfsd: handle vfs_getattr errors in acl protocol
Jan Kara (2):
fs: Fix possible use-after-free with AIO
ocfs2: fix possible use-after-free with AIO
Jeff Layton (2):
vfs: remove d_path_with_unreachable
vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op
Maxim Patlasov (1):
proc: avoid extra pde_put() in proc_fill_super()
Namjae Jeon (1):
fs: encode_fh: return FILEID_INVALID if invalid fid_type
Sage Weil (1):
ceph: prepopulate inodes only when request is aborted
Sunil Mushran (1):
ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path
Yuanhan Liu (1):
fs/exec.c: make bprm_mm_init() static
Zhao Hongjiang (1):
fs: change return values from -EACCES to -EPERM
Diffstat:
Documentation/filesystems/Locking | 2 +
Documentation/filesystems/porting | 4 +
Documentation/filesystems/vfs.txt | 24 ++++++-
arch/alpha/kernel/srm_env.c | 2 +-
arch/avr32/include/asm/elf.h | 3 -
arch/blackfin/include/asm/elf.h | 3 -
arch/blackfin/kernel/cplbinfo.c | 2 +-
arch/c6x/include/asm/elf.h | 3 -
arch/cris/arch-v10/drivers/sync_serial.c | 8 +-
arch/cris/arch-v32/drivers/cryptocop.c | 3 +-
arch/cris/arch-v32/drivers/sync_serial.c | 8 +-
arch/cris/include/asm/elf.h | 3 -
arch/frv/include/asm/elf.h | 3 -
arch/h8300/include/asm/elf.h | 3 -
arch/hexagon/include/asm/elf.h | 5 --
arch/ia64/include/asm/elf.h | 3 -
arch/ia64/kernel/perfmon.c | 4 +-
arch/ia64/kernel/salinfo.c | 6 +-
arch/m32r/include/asm/elf.h | 3 -
arch/m68k/include/asm/elf.h | 3 -
arch/mips/kernel/rtlx.c | 13 +---
arch/mips/kernel/vpe.c | 2 +-
arch/mips/lasat/picvue_proc.c | 2 +-
arch/mn10300/include/asm/elf.h | 5 --
arch/openrisc/include/asm/elf.h | 3 -
arch/powerpc/include/asm/elf.h | 2 -
arch/powerpc/kernel/proc_powerpc.c | 6 +-
arch/powerpc/kernel/rtas_flash.c | 16 ++--
arch/powerpc/platforms/cell/spufs/coredump.c | 4 +-
arch/powerpc/platforms/cell/spufs/file.c | 6 +-
arch/powerpc/platforms/cell/spufs/inode.c | 68 +++++++-------------
arch/powerpc/platforms/cell/spufs/syscalls.c | 2 +-
arch/powerpc/platforms/pseries/hvCall_inst.c | 2 +-
arch/powerpc/platforms/pseries/scanlog.c | 8 +--
arch/s390/hypfs/hypfs_dbfs.c | 2 +-
arch/s390/hypfs/inode.c | 2 +-
arch/s390/include/asm/elf.h | 5 +-
arch/s390/kernel/debug.c | 2 +-
arch/s390/pci/pci_debug.c | 4 +-
arch/score/include/asm/elf.h | 5 --
arch/sh/mm/alignment.c | 2 +-
arch/sparc/include/asm/elf_32.h | 3 -
arch/x86/ia32/ia32_aout.c | 6 +-
arch/x86/kernel/cpuid.c | 4 +-
drivers/base/devtmpfs.c | 3 +-
drivers/base/firmware_class.c | 2 +-
drivers/block/DAC960.c | 2 +-
drivers/block/loop.c | 2 +-
drivers/block/nbd.c | 2 +-
drivers/char/dsp56k.c | 8 +-
drivers/char/dtlk.c | 4 +-
drivers/char/lp.c | 8 +-
drivers/char/mem.c | 4 +-
drivers/char/nsc_gpio.c | 4 +-
drivers/char/pcmcia/cm4000_cs.c | 2 +-
drivers/char/ppdev.c | 6 +-
drivers/char/ps3flash.c | 2 +-
drivers/char/raw.c | 2 +-
drivers/char/sonypi.c | 2 +-
drivers/char/tb0219.c | 4 +-
drivers/gpu/drm/gma500/gtt.c | 2 +-
drivers/gpu/drm/i915/i915_gem.c | 10 ++--
drivers/gpu/drm/ttm/ttm_tt.c | 4 +-
drivers/gpu/drm/udl/udl_gem.c | 2 +-
drivers/hid/hid-roccat.c | 2 +-
drivers/hid/hidraw.c | 6 +-
drivers/i2c/i2c-dev.c | 4 +-
drivers/ide/ide-proc.c | 4 +-
drivers/infiniband/core/uverbs_cmd.c | 2 +-
drivers/infiniband/hw/ipath/ipath_file_ops.c | 4 +-
drivers/infiniband/hw/ipath/ipath_fs.c | 6 +-
drivers/infiniband/hw/qib/qib_file_ops.c | 2 +-
drivers/infiniband/hw/qib/qib_fs.c | 4 +-
drivers/iommu/tegra-smmu.c | 16 +----
drivers/isdn/hardware/eicon/divasproc.c | 6 +-
drivers/isdn/hysdn/hysdn_proclog.c | 4 +-
drivers/isdn/i4l/isdn_common.c | 8 +-
drivers/isdn/i4l/isdn_ppp.c | 2 +-
drivers/md/bitmap.c | 4 +-
drivers/media/pci/zoran/zoran_procfs.c | 2 +-
drivers/media/rc/lirc_dev.c | 19 ++----
drivers/media/v4l2-core/v4l2-dev.c | 2 +-
drivers/mtd/nand/nandsim.c | 34 ++++------
drivers/mtd/ubi/cdev.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 2 +-
drivers/net/wan/cosa.c | 4 +-
drivers/net/wireless/ray_cs.c | 2 +-
drivers/oprofile/oprofilefs.c | 16 ++++-
drivers/parisc/led.c | 2 +-
drivers/pci/proc.c | 10 ++--
drivers/platform/x86/sony-laptop.c | 2 +-
drivers/platform/x86/thinkpad_acpi.c | 2 +-
drivers/platform/x86/toshiba_acpi.c | 8 +-
drivers/pnp/isapnp/proc.c | 4 +-
drivers/pnp/pnpbios/proc.c | 2 +-
drivers/s390/char/fs3270.c | 4 +-
drivers/s390/char/tape_char.c | 8 +-
drivers/s390/char/vmur.c | 2 +-
drivers/s390/cio/qdio_debug.c | 4 +-
drivers/sbus/char/display7seg.c | 2 +-
drivers/scsi/3w-9xxx.c | 2 +-
drivers/scsi/3w-sas.c | 2 +-
drivers/scsi/3w-xxxx.c | 2 +-
drivers/scsi/csiostor/csio_init.c | 2 +-
drivers/scsi/dpt_i2o.c | 4 +-
drivers/scsi/st.c | 2 +-
drivers/staging/bcm/Misc.c | 2 +-
drivers/staging/ccg/f_mass_storage.c | 2 +-
drivers/staging/ccg/rndis.c | 2 +-
drivers/staging/ccg/storage_common.c | 2 +-
drivers/staging/dgrp/dgrp_specproc.c | 4 +-
drivers/staging/omapdrm/omap_gem_helpers.c | 2 +-
drivers/staging/usbip/usbip_common.c | 2 +-
drivers/staging/vme/devices/vme_user.c | 8 +-
drivers/target/target_core_alua.c | 35 +++-------
drivers/target/target_core_file.c | 2 +-
drivers/target/target_core_pr.c | 27 ++------
drivers/tty/vt/vc_screen.c | 8 +-
drivers/usb/core/devices.c | 4 +-
drivers/usb/core/devio.c | 6 +-
drivers/usb/gadget/atmel_usba_udc.c | 8 +-
drivers/usb/gadget/f_mass_storage.c | 2 +-
drivers/usb/gadget/printer.c | 2 +-
drivers/usb/gadget/rndis.c | 2 +-
drivers/usb/gadget/storage_common.c | 2 +-
drivers/video/fb_defio.c | 2 +-
drivers/video/fbmem.c | 2 +-
drivers/video/msm/mdp.c | 2 +-
drivers/watchdog/cpwd.c | 4 +-
drivers/xen/xenfs/super.c | 66 +++----------------
drivers/zorro/proc.c | 4 +-
fs/9p/acl.c | 37 ++++++-----
fs/9p/acl.h | 20 ++++--
fs/9p/vfs_dentry.c | 1 +
fs/9p/vfs_file.c | 10 ++--
fs/9p/vfs_inode_dotl.c | 75 +++++++++++-----------
fs/9p/vfs_super.c | 2 +-
fs/9p/xattr.c | 33 +++++----
fs/9p/xattr.h | 2 +
fs/adfs/dir.c | 2 +-
fs/affs/dir.c | 2 +-
fs/afs/dir.c | 4 +-
fs/afs/flock.c | 4 +-
fs/afs/write.c | 7 +-
fs/anon_inodes.c | 10 +--
fs/autofs4/autofs_i.h | 2 +-
fs/autofs4/dev-ioctl.c | 2 +-
fs/autofs4/root.c | 6 +-
fs/befs/linuxvfs.c | 2 +-
fs/bfs/dir.c | 2 +-
fs/binfmt_aout.c | 4 +-
fs/binfmt_elf.c | 2 +-
fs/binfmt_elf_fdpic.c | 4 +-
fs/binfmt_flat.c | 2 +-
fs/binfmt_misc.c | 4 +-
fs/block_dev.c | 2 +-
fs/btrfs/export.c | 4 +-
fs/btrfs/file.c | 8 +-
fs/btrfs/inode.c | 4 +-
fs/btrfs/ioctl.c | 52 +++++++-------
fs/btrfs/send.c | 2 +-
fs/buffer.c | 4 +-
fs/ceph/addr.c | 12 ++--
fs/ceph/dir.c | 6 +-
fs/ceph/export.c | 4 +-
fs/ceph/file.c | 10 ++--
fs/ceph/inode.c | 40 +++++++++++-
fs/ceph/ioctl.c | 16 ++--
fs/ceph/locks.c | 2 +-
fs/cifs/cifsfs.c | 6 +-
fs/cifs/file.c | 26 ++++----
fs/cifs/inode.c | 8 +-
fs/cifs/ioctl.c | 2 +-
fs/cifs/readdir.c | 12 ++--
fs/coda/dir.c | 2 +-
fs/coda/file.c | 12 ++--
fs/coda/inode.c | 2 +-
fs/coda/pioctl.c | 2 +-
fs/compat_ioctl.c | 2 +-
fs/configfs/dir.c | 2 +-
fs/coredump.c | 4 +-
fs/cramfs/inode.c | 2 +-
fs/dcache.c | 80 ++++++-----------------
fs/direct-io.c | 2 +-
fs/dlm/config.c | 2 +-
fs/ecryptfs/ecryptfs_kernel.h | 6 ++
fs/ecryptfs/file.c | 4 +-
fs/ecryptfs/inode.c | 3 +-
fs/ecryptfs/read_write.c | 6 +--
fs/efs/dir.c | 2 +-
fs/exec.c | 10 ++--
fs/exofs/dir.c | 2 +-
fs/ext2/dir.c | 2 +-
fs/ext2/ioctl.c | 2 +-
fs/ext3/dir.c | 8 +-
fs/ext3/ioctl.c | 2 +-
fs/ext3/namei.c | 4 +-
fs/ext4/dir.c | 8 +-
fs/ext4/extents.c | 4 +-
fs/ext4/file.c | 2 +-
fs/ext4/inline.c | 2 +-
fs/ext4/inode.c | 6 +-
fs/ext4/ioctl.c | 2 +-
fs/ext4/move_extent.c | 6 +-
fs/ext4/namei.c | 2 +-
fs/ext4/super.c | 2 +-
fs/f2fs/dir.c | 2 +-
fs/fat/dir.c | 6 +-
fs/fat/file.c | 4 +-
fs/fcntl.c | 2 +-
fs/file_table.c | 31 ++++-----
fs/freevxfs/vxfs_lookup.c | 2 +-
fs/fuse/control.c | 2 +-
fs/fuse/dir.c | 2 +-
fs/fuse/inode.c | 2 +-
fs/gfs2/export.c | 4 +-
fs/gfs2/file.c | 17 ++---
fs/gfs2/rgrp.c | 2 +-
fs/gfs2/sys.c | 18 +++---
fs/hfs/dir.c | 2 +-
fs/hfs/inode.c | 2 +-
fs/hfsplus/dir.c | 2 +-
fs/hfsplus/inode.c | 2 +-
fs/hfsplus/ioctl.c | 4 +-
fs/hostfs/hostfs_kern.c | 10 +---
fs/hpfs/dir.c | 4 +-
fs/hpfs/file.c | 2 +-
fs/hppfs/hppfs.c | 8 +-
fs/hugetlbfs/inode.c | 33 ++++++----
fs/inode.c | 2 +-
fs/ioctl.c | 12 ++--
fs/isofs/compress.c | 2 +-
fs/isofs/dir.c | 2 +-
fs/isofs/export.c | 4 +-
fs/jffs2/dir.c | 4 +-
fs/jfs/ioctl.c | 2 +-
fs/jfs/jfs_dtree.c | 2 +-
fs/lockd/clntlock.c | 2 +-
fs/lockd/clntproc.c | 2 +-
fs/lockd/svclock.c | 16 ++--
fs/lockd/svcsubs.c | 2 +-
fs/locks.c | 24 ++++----
fs/logfs/dir.c | 4 +-
fs/logfs/file.c | 2 +-
fs/minix/dir.c | 2 +-
fs/namei.c | 67 ++++++++-----------
fs/namespace.c | 42 ++----------
fs/ncpfs/dir.c | 10 +--
fs/ncpfs/inode.c | 4 +-
fs/ncpfs/ioctl.c | 4 +-
fs/ncpfs/mmap.c | 2 +-
fs/nfs/dir.c | 48 ++++++++++++-
fs/nfs/file.c | 2 +-
fs/nfs/idmap.c | 2 +-
fs/nfs/inode.c | 4 +-
fs/nfs/nfs3proc.c | 2 +-
fs/nfs/nfs4file.c | 2 +-
fs/nfs/nfs4super.c | 6 +-
fs/nfs/proc.c | 2 +-
fs/nfs/super.c | 6 +-
fs/nfsd/fault_inject.c | 6 +-
fs/nfsd/nfs2acl.c | 23 ++++++-
fs/nfsd/nfs3proc.c | 5 +-
fs/nfsd/nfs3xdr.c | 10 ++--
fs/nfsd/nfs4xdr.c | 4 +-
fs/nfsd/nfsctl.c | 2 +-
fs/nfsd/nfsproc.c | 12 +---
fs/nfsd/nfsxdr.c | 7 +-
fs/nfsd/vfs.c | 6 +-
fs/nfsd/vfs.h | 8 ++
fs/nfsd/xdr.h | 2 +-
fs/nfsd/xdr3.h | 2 +
fs/nilfs2/dir.c | 2 +-
fs/nilfs2/file.c | 2 +-
fs/nilfs2/ioctl.c | 2 +-
fs/nilfs2/namei.c | 4 +-
fs/notify/dnotify/dnotify.c | 4 +-
fs/notify/fanotify/fanotify_user.c | 2 +-
fs/ntfs/dir.c | 2 +-
fs/ocfs2/aops.c | 6 +-
fs/ocfs2/dir.c | 4 +-
fs/ocfs2/dlm/dlmmaster.c | 2 +-
fs/ocfs2/dlmfs/dlmfs.c | 6 +-
fs/ocfs2/export.c | 4 +-
fs/ocfs2/file.c | 14 ++--
fs/ocfs2/ioctl.c | 4 +-
fs/ocfs2/mmap.c | 10 ++--
fs/ocfs2/move_extents.c | 2 +-
fs/ocfs2/refcounttree.c | 4 +-
fs/ocfs2/symlink.c | 2 +-
fs/omfs/dir.c | 4 +-
fs/open.c | 34 +++++-----
fs/openpromfs/inode.c | 2 +-
fs/pipe.c | 20 +++---
fs/proc/base.c | 45 +++++++------
fs/proc/generic.c | 31 ++++------
fs/proc/inode.c | 43 +++++++------
fs/proc/nommu.c | 2 +-
fs/proc/proc_net.c | 2 +-
fs/proc/proc_sysctl.c | 4 +-
fs/proc/task_mmu.c | 6 +-
fs/proc/task_nommu.c | 2 +-
fs/qnx4/dir.c | 2 +-
fs/qnx6/dir.c | 2 +-
fs/ramfs/file-nommu.c | 2 +-
fs/read_write.c | 8 +-
fs/readdir.c | 2 +-
fs/reiserfs/file.c | 2 +-
fs/reiserfs/inode.c | 4 +-
fs/reiserfs/ioctl.c | 2 +-
fs/reiserfs/procfs.c | 2 +-
fs/romfs/super.c | 2 +-
fs/splice.c | 7 +-
fs/squashfs/dir.c | 2 +-
fs/stat.c | 13 ++--
fs/sync.c | 2 +-
fs/sysfs/bin.c | 6 +-
fs/sysv/dir.c | 2 +-
fs/ubifs/dir.c | 2 +-
fs/ubifs/file.c | 2 +-
fs/ubifs/ioctl.c | 2 +-
fs/udf/dir.c | 2 +-
fs/udf/file.c | 6 +-
fs/udf/namei.c | 4 +-
fs/ufs/dir.c | 2 +-
fs/xfs/xfs_dfrag.c | 8 +-
fs/xfs/xfs_export.c | 4 +-
fs/xfs/xfs_file.c | 4 +-
fs/xfs/xfs_ioctl.c | 6 +-
fs/xfs/xfs_ioctl32.c | 2 +-
include/linux/binfmts.h | 1 -
include/linux/dcache.h | 8 ++-
include/linux/elf.h | 4 +
include/linux/fs.h | 14 +++--
include/linux/fsnotify.h | 2 +-
include/linux/hugetlb.h | 2 +-
include/linux/lockd/lockd.h | 2 +-
ipc/mqueue.c | 16 ++--
ipc/shm.c | 11 ++--
kernel/acct.c | 2 +-
kernel/cgroup.c | 6 +-
kernel/events/core.c | 2 +-
kernel/fork.c | 2 +-
kernel/irq/proc.c | 2 +-
kernel/module.c | 2 +-
kernel/nsproxy.c | 2 +-
kernel/relay.c | 4 +-
kernel/sys.c | 8 +-
kernel/sysctl_binary.c | 39 ++---------
mm/cleancache.c | 2 +-
mm/fadvise.c | 2 +-
mm/filemap.c | 2 +-
mm/hugetlb.c | 4 +-
mm/mmap.c | 8 +-
mm/nommu.c | 12 ++--
mm/shmem.c | 52 +++++++++------
mm/swapfile.c | 2 +-
net/atm/proc.c | 2 +-
net/core/net_namespace.c | 2 +-
net/ipv4/netfilter/ipt_CLUSTERIP.c | 2 +-
net/netfilter/xt_recent.c | 2 +-
net/netlink/af_netlink.c | 2 +-
net/socket.c | 5 +-
net/sunrpc/auth_gss/auth_gss.c | 2 +-
net/sunrpc/cache.c | 28 ++++----
net/sunrpc/rpc_pipe.c | 10 ++--
net/unix/garbage.c | 2 +-
security/apparmor/domain.c | 4 +-
security/apparmor/file.c | 4 +-
security/apparmor/lsm.c | 6 +-
security/commoncap.c | 2 +-
security/integrity/ima/ima_api.c | 6 +-
security/integrity/ima/ima_crypto.c | 2 +-
security/integrity/ima/ima_main.c | 4 +-
security/selinux/hooks.c | 10 ++--
security/selinux/selinuxfs.c | 20 ++----
security/smack/smack_lsm.c | 14 +---
security/tomoyo/securityfs_if.c | 2 +-
sound/core/info.c | 2 +-
sound/core/pcm_native.c | 2 +-
sound/oss/msnd_pinnacle.c | 6 +-
sound/oss/soundcard.c | 10 ++--
sound/sound_firmware.c | 2 +-
383 files changed, 1277 insertions(+), 1424 deletions(-)
^ permalink raw reply [flat|nested] 33+ messages in thread
* [git pull] vfs pile 1
@ 2012-03-21 3:31 Al Viro
0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2012-03-21 3:31 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
This is _not_ all; in particular, Miklos' and Jan's stuff is not there
yet. Please, pull from the usual place -
git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus
Shortlog:
Al Viro (59):
vfs: check i_nlink limits in vfs_{mkdir,rename_dir,link}
vfs: drop_file_write_access() made static
ecryptfs: don't bother with ->drop_inode()
vfs: turn generic_drop_inode() into static inline
clean up the failure exits in cifs_read_super()
coda: clean failure exits in coda_fill_super()
... and the same failure exits cleanup for ocfs2
procfs: clean proc_fill_super() up
switch open-coded instances of d_make_root() to new helper
ntfs: switch to d_make_root()
fat: switch to d_make_root()
hfsplus: switch to d_make_root()
minixfs: switch to d_make_root()
tidy up after d_make_root() conversion
vfs: d_alloc_root() gone
aio: don't bother with async freeing on failure in ioctx_alloc()
aio: aio_nr decrements don't need to be delayed
aio: aio_nr_lock is taken only synchronously now
aio: use cancel_delayed_work_sync()
aio: don't bother with cancel_delayed_work() in exit_aio()
aio: fix the comment in aio_kick_handler()
constify path argument of audit_log_d_path()
constify path argument of trace_seq_path()
switch unix_sock to struct path
switch touch_atime to struct path
no need to play with fs->seq in exit_fs()
vfs: take path_get_longterm() out of write_seqcount scope
take private bits of reiserfs_xattr.h to fs/reiserfs/xattr.h
move reiserfs_acl.h to fs/reiserfs/acl.h
kill pointless includes of reiserfs_fs_{i,sb}.h
move private bits of reiserfs_fs.h to fs/reiserfs/reiserfs.h
kill reiserfs_fs_{i,sb}.h
spufs: make register_filesystem the last potential failure exit
ibmasmfs: make register_filesystem the last failure exit
make simple_pin_fs() pass MS_KERNMOUNT - it's a kernel-internal one
usbfs: kill racy detection of simple_pin_fs()
9p: make register_filesystem() the last failure exit
anon_inodes: move allocation of anon_inode into ->mount()
autofs: set things up *before* registering fs type
__register_binfmt() made void
configfs: don't bother with checks for mkdir/rmdir/unlink/symlink in root
configfs: kill configfs_sb
configfs: sanitize configfs_create()
configfs: configfs_create_dir() has parent dentry in dentry->d_parent
make configfs_pin_fs() return root dentry on success
jfs: mising cleanup on register_filesystem() failure
logfs: missing cleanup on register_filesystem() failure
ntfs: forgets to unregister sysctls on register_filesystem() failure
ecryptfs: make register_filesystem() the last potential failure exit
ocfs2: fix leaks on failure exits in module_init
gadgetfs: list_for_each_safe() misuse
um: embed ->stub_pages[] into mmu_context
um: uml_dup_mmap() relies on ->mmap_sem being held, but activate_mm() doesn't hold it
trim includes in inode.c
take removal of PF_FORKNOEXEC to flush_old_exec()
qnx4: get rid of qnx4_bread/qnx4_getblk
qnx4: new helper - try_extent()
debugfs-related mode_t whack-a-mole
ext4: initialization of ext4_li_mtx needs to be done earlier
Kai Bankett (2):
qnx4fs: small cleanup
fs: initial qnx6fs addition
Matthew Garrett (3):
hfsplus: initialise userflags
hfsplus: change finder_info to u32
hfsplus: add an ioctl to bless files
Diffstat:
Documentation/filesystems/debugfs.txt | 2 +-
Documentation/filesystems/porting | 6 +
Documentation/filesystems/qnx6.txt | 174 ++
Documentation/ioctl/ioctl-number.txt | 1 +
arch/alpha/kernel/binfmt_loader.c | 3 +-
arch/powerpc/platforms/cell/spufs/inode.c | 14 +-
arch/s390/hypfs/inode.c | 6 +-
arch/um/include/asm/mmu.h | 2 +-
arch/um/include/asm/mmu_context.h | 11 +-
arch/um/kernel/skas/mmu.c | 25 +-
arch/x86/ia32/ia32_aout.c | 4 +-
drivers/misc/ibmasm/ibmasmfs.c | 16 +-
drivers/misc/ibmasm/module.c | 11 +-
drivers/mmc/card/block.c | 2 +-
drivers/net/ethernet/brocade/bna/bnad_debugfs.c | 2 +-
drivers/oprofile/oprofilefs.c | 11 +-
drivers/usb/core/inode.c | 23 +-
drivers/usb/gadget/f_fs.c | 8 +-
drivers/usb/gadget/inode.c | 13 +-
fs/9p/v9fs.c | 16 +-
fs/9p/vfs_super.c | 3 +-
fs/Kconfig | 1 +
fs/Makefile | 1 +
fs/adfs/super.c | 3 +-
fs/affs/super.c | 7 +-
fs/afs/super.c | 7 +-
fs/aio.c | 65 +-
fs/anon_inodes.c | 109 +-
fs/autofs4/init.c | 6 +-
fs/autofs4/inode.c | 10 +-
fs/befs/linuxvfs.c | 3 +-
fs/bfs/inode.c | 3 +-
fs/binfmt_aout.c | 4 +-
fs/binfmt_elf.c | 5 +-
fs/binfmt_elf_fdpic.c | 6 +-
fs/binfmt_em86.c | 3 +-
fs/binfmt_flat.c | 4 +-
fs/binfmt_misc.c | 7 +-
fs/binfmt_script.c | 3 +-
fs/binfmt_som.c | 4 +-
fs/btrfs/super.c | 8 +-
fs/cachefiles/namei.c | 3 +-
fs/ceph/super.c | 3 +-
fs/cifs/cifsfs.c | 7 +-
fs/coda/inode.c | 6 +-
fs/configfs/configfs_internal.h | 7 +-
fs/configfs/dir.c | 72 +-
fs/configfs/inode.c | 62 +-
fs/configfs/mount.c | 16 +-
fs/configfs/symlink.c | 12 +-
fs/cramfs/inode.c | 6 +-
fs/dcache.c | 24 -
fs/debugfs/file.c | 2 +-
fs/devpts/inode.c | 3 +-
fs/ecryptfs/file.c | 9 +-
fs/ecryptfs/main.c | 19 +-
fs/ecryptfs/super.c | 1 -
fs/efs/super.c | 3 +-
fs/exec.c | 8 +-
fs/exofs/namei.c | 13 +-
fs/exofs/super.c | 4 +-
fs/ext2/namei.c | 13 +-
fs/ext2/super.c | 4 +-
fs/ext3/super.c | 3 +-
fs/ext4/super.c | 8 +-
fs/fat/inode.c | 8 +-
fs/file_table.c | 3 +-
fs/freevxfs/vxfs_super.c | 3 +-
fs/fs_struct.c | 29 +-
fs/fuse/inode.c | 9 +-
fs/gfs2/ops_fstype.c | 3 +-
fs/hfs/super.c | 6 +-
fs/hfsplus/hfsplus_fs.h | 5 +
fs/hfsplus/hfsplus_raw.h | 2 +-
fs/hfsplus/inode.c | 2 +
fs/hfsplus/ioctl.c | 34 +
fs/hfsplus/super.c | 17 +-
fs/hostfs/hostfs_kern.c | 4 +-
fs/hpfs/super.c | 6 +-
fs/hppfs/hppfs.c | 9 +-
fs/hugetlbfs/inode.c | 13 +-
fs/inode.c | 28 +-
fs/isofs/inode.c | 3 +-
fs/jffs2/fs.c | 6 +-
fs/jfs/namei.c | 13 -
fs/jfs/super.c | 12 +-
fs/libfs.c | 8 +-
fs/logfs/dir.c | 3 -
fs/logfs/super.c | 12 +-
fs/minix/inode.c | 38 +-
fs/minix/minix.h | 1 -
fs/minix/namei.c | 14 +-
fs/namei.c | 15 +-
fs/ncpfs/inode.c | 6 +-
fs/nfs/getroot.c | 6 +-
fs/nfsd/fault_inject.c | 2 +-
fs/nfsd/vfs.c | 11 +-
fs/nilfs2/namei.c | 11 -
fs/nilfs2/super.c | 4 +-
fs/ntfs/super.c | 9 +-
fs/ocfs2/dlmfs/dlmfs.c | 14 +-
fs/ocfs2/super.c | 51 +-
fs/omfs/inode.c | 6 +-
fs/openpromfs/inode.c | 3 +-
fs/proc/inode.c | 16 +-
fs/pstore/inode.c | 25 +-
fs/qnx4/inode.c | 88 +-
fs/qnx4/namei.c | 9 +-
fs/qnx4/qnx4.h | 2 -
fs/qnx6/Kconfig | 26 +
fs/qnx6/Makefile | 7 +
fs/qnx6/README | 8 +
fs/qnx6/dir.c | 291 ++
fs/qnx6/inode.c | 698 +++++
fs/qnx6/namei.c | 42 +
fs/qnx6/qnx6.h | 135 +
fs/qnx6/super_mmi.c | 150 ++
fs/ramfs/inode.c | 30 +-
include/linux/reiserfs_acl.h => fs/reiserfs/acl.h | 0
fs/reiserfs/bitmap.c | 4 +-
fs/reiserfs/dir.c | 2 +-
fs/reiserfs/do_balan.c | 2 +-
fs/reiserfs/file.c | 6 +-
fs/reiserfs/fix_node.c | 2 +-
fs/reiserfs/hashes.c | 2 +-
fs/reiserfs/ibalance.c | 2 +-
fs/reiserfs/inode.c | 6 +-
fs/reiserfs/ioctl.c | 2 +-
fs/reiserfs/item_ops.c | 2 +-
fs/reiserfs/journal.c | 2 +-
fs/reiserfs/lbalance.c | 2 +-
fs/reiserfs/lock.c | 2 +-
fs/reiserfs/namei.c | 6 +-
fs/reiserfs/objectid.c | 3 +-
fs/reiserfs/prints.c | 4 +-
fs/reiserfs/procfs.c | 3 +-
fs/reiserfs/reiserfs.h | 2922 +++++++++++++++++++++
fs/reiserfs/resize.c | 3 +-
fs/reiserfs/stree.c | 2 +-
fs/reiserfs/super.c | 12 +-
fs/reiserfs/tail_conversion.c | 2 +-
fs/reiserfs/xattr.c | 6 +-
fs/reiserfs/xattr.h | 122 +
fs/reiserfs/xattr_acl.c | 6 +-
fs/reiserfs/xattr_security.c | 4 +-
fs/reiserfs/xattr_trusted.c | 4 +-
fs/reiserfs/xattr_user.c | 4 +-
fs/romfs/super.c | 6 +-
fs/squashfs/super.c | 3 +-
fs/stat.c | 2 +-
fs/sysfs/mount.c | 3 +-
fs/sysv/namei.c | 12 +-
fs/sysv/super.c | 27 +-
fs/sysv/sysv.h | 1 -
fs/ubifs/super.c | 6 +-
fs/udf/namei.c | 13 -
fs/udf/super.c | 6 +-
fs/ufs/namei.c | 14 +-
fs/ufs/super.c | 7 +-
fs/xfs/xfs_rename.c | 11 -
fs/xfs/xfs_super.c | 7 +-
fs/xfs/xfs_utils.c | 2 -
fs/xfs/xfs_vnodeops.c | 16 -
include/linux/audit.h | 2 +-
include/linux/binfmts.h | 10 +-
include/linux/dcache.h | 1 -
include/linux/debugfs.h | 4 +-
include/linux/file.h | 1 -
include/linux/fs.h | 10 +-
include/linux/magic.h | 1 +
include/linux/qnx6_fs.h | 134 +
include/linux/reiserfs_fs.h | 2334 ----------------
include/linux/reiserfs_fs_i.h | 63 -
include/linux/reiserfs_fs_sb.h | 554 ----
include/linux/reiserfs_xattr.h | 128 -
include/linux/trace_seq.h | 4 +-
include/net/af_unix.h | 3 +-
ipc/mqueue.c | 24 +-
kernel/audit.c | 2 +-
kernel/cgroup.c | 8 +-
kernel/trace/trace_output.c | 2 +-
mm/shmem.c | 10 +-
net/sunrpc/rpc_pipe.c | 8 +-
net/unix/af_unix.c | 37 +-
net/unix/diag.c | 2 +-
security/lsm_audit.c | 8 +-
186 files changed, 5360 insertions(+), 4141 deletions(-)
create mode 100644 Documentation/filesystems/qnx6.txt
create mode 100644 fs/qnx6/Kconfig
create mode 100644 fs/qnx6/Makefile
create mode 100644 fs/qnx6/README
create mode 100644 fs/qnx6/dir.c
create mode 100644 fs/qnx6/inode.c
create mode 100644 fs/qnx6/namei.c
create mode 100644 fs/qnx6/qnx6.h
create mode 100644 fs/qnx6/super_mmi.c
rename include/linux/reiserfs_acl.h => fs/reiserfs/acl.h (100%)
create mode 100644 fs/reiserfs/reiserfs.h
create mode 100644 fs/reiserfs/xattr.h
create mode 100644 include/linux/qnx6_fs.h
delete mode 100644 include/linux/reiserfs_fs_i.h
delete mode 100644 include/linux/reiserfs_fs_sb.h
^ permalink raw reply [flat|nested] 33+ messages in thread
* [git pull] vfs pile 1
@ 2011-05-26 11:53 Al Viro
0 siblings, 0 replies; 33+ messages in thread
From: Al Viro @ 2011-05-26 11:53 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
Assorted stuff from the last cycle. That's not all, there will be
another pile tomorrow or on Saturday... Please, pull from
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6.git/ for-linus
Shortlog:
Al Viro (2):
consolidate nameidata_..._drop_rcu()
merge handle_reval_dot and nameidata_drop_rcu_last
Jan Kara (2):
vfs: Create __block_page_mkwrite() helper passing error values back
vfs: Block mmapped writes while the fs is frozen
Jonas Gorski (1):
exportfs: reallow building as a module
Miklos Szeredi (1):
vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems
Roman Borisov (1):
fs/namespace.c: bound mount propagation fix
Sage Weil (18):
vfs: dentry_unhash immediately prior to rmdir
vfs: remove dget() from dentry_unhash()
vfs: push dentry_unhash on rmdir into file systems
vfs: push dentry_unhash on rename_dir into file systems
vfs: update dentry_unhash() comment
libfs: drop unneeded dentry_unhash
vfs: clean up vfs_rmdir
vfs: clean up vfs_rename_dir
vfs: clean up vfs_rename_other
ceph: remove unnecessary dentry_unhash calls
btrfs: remove unnecessary dentry_unhash in rmdir/rename_dir
ext4: remove unnecessary dentry_unhash on rmdir/rename_dir
ext3: remove unnecessary dentry_unhash on rmdir/rename_dir
ext2: remove unnecessary dentry_unhash on rmdir/rename_dir
nfs: remove unnecessary dentry_unhash on rmdir/rename_dir
exofs: remove unnecessary dentry_unhash on rmdir/rename_dir
ocfs2: remove unnecessary dentry_unhash on rmdir/rename_dir
cifs: remove unnecessary dentry_unhash on rmdir/rename_dir
Diffstat:
fs/9p/vfs_inode.c | 4 +
fs/Kconfig | 2 +-
fs/affs/namei.c | 5 +
fs/afs/dir.c | 5 +
fs/autofs4/root.c | 2 +
fs/bfs/dir.c | 3 +
fs/buffer.c | 59 +++++--
fs/coda/dir.c | 5 +
fs/configfs/dir.c | 2 +
fs/ecryptfs/inode.c | 5 +
fs/fat/namei_msdos.c | 5 +
fs/fat/namei_vfat.c | 5 +
fs/fuse/dir.c | 6 +
fs/hfs/dir.c | 6 +
fs/hfsplus/dir.c | 8 +-
fs/hostfs/hostfs_kern.c | 5 +
fs/hpfs/namei.c | 9 +-
fs/jffs2/dir.c | 5 +
fs/jfs/namei.c | 5 +
fs/logfs/dir.c | 5 +
fs/minix/namei.c | 5 +
fs/namei.c | 380 ++++++++++++++++---------------------------
fs/namespace.c | 2 +-
fs/ncpfs/dir.c | 5 +
fs/nilfs2/namei.c | 5 +
fs/omfs/dir.c | 11 +-
fs/reiserfs/namei.c | 5 +
fs/reiserfs/xattr.c | 1 -
fs/sysv/namei.c | 5 +
fs/ubifs/dir.c | 5 +
fs/udf/namei.c | 5 +
fs/ufs/namei.c | 5 +
include/linux/buffer_head.h | 16 ++
33 files changed, 332 insertions(+), 269 deletions(-)
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2011-01-13 6:25 ` Stephen Rothwell
@ 2011-01-13 8:55 ` Christoph Hellwig
0 siblings, 0 replies; 33+ messages in thread
From: Christoph Hellwig @ 2011-01-13 8:55 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Al Viro, Linus Torvalds, linux-kernel, linux-fsdevel
On Thu, Jan 13, 2011 at 05:25:57PM +1100, Stephen Rothwell wrote:
> Merging it into today's linux-next produces conflicts against the
> ecryptfs and cleancache trees.
How did cleancache end up in linux-next again?
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [git pull] vfs pile 1
2011-01-13 5:35 Al Viro
@ 2011-01-13 6:25 ` Stephen Rothwell
2011-01-13 8:55 ` Christoph Hellwig
0 siblings, 1 reply; 33+ messages in thread
From: Stephen Rothwell @ 2011-01-13 6:25 UTC (permalink / raw)
To: Al Viro; +Cc: Linus Torvalds, linux-kernel, linux-fsdevel
[-- Attachment #1: Type: text/plain, Size: 804 bytes --]
Hi Al,
On Thu, 13 Jan 2011 05:35:54 +0000 Al Viro <viro@ZenIV.linux.org.uk> wrote:
>
> Contains: d_op series on top of Nick's pile, a few other patches
> from various folks. More tomorrow; there's a huge pending pile here.
>
> git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6.git/ for-linus
None of this has been in linux-next. Some of it seems to date back into
early December and even November ...
Merging it into today's linux-next produces conflicts against the
ecryptfs and cleancache trees.
It would be good in the future (as I have asked in the past) if vfs-wide
changes like these could spend some time in linux-next so people know
what is coming ...
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply [flat|nested] 33+ messages in thread
* [git pull] vfs pile 1
@ 2011-01-13 5:35 Al Viro
2011-01-13 6:25 ` Stephen Rothwell
0 siblings, 1 reply; 33+ messages in thread
From: Al Viro @ 2011-01-13 5:35 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel
Contains: d_op series on top of Nick's pile, a few other patches
from various folks. More tomorrow; there's a huge pending pile here.
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6.git/ for-linus
Note: d_set_d_op() is still there, but most of the callers are gone.
FWIW, there are only 3 non-trivial bunches:
* procfs - as expected, we have shitloads of ->d_op there
* autofs4 - tomorrow will be fun; automount series needs to be
dealt with to sort that out
* ceph - I'd rather deal with that on top of ceph tree.
Shortlog:
Al Viro (31):
per-superblock default ->d_op
fix isofs d_op handling
switch fat to ->s_d_op, close exportfs races there
switch jfs to ->s_d_op, close exportfs races
pohmelfs: double-free and leak
switch fuse
switch sysv
minixfs: kill dead code
switch hfs
switch hfsplus
switch adfs
switch nfs to ->s_d_op
switch cifs
switch gfs2, close races
switch ocfs2, close races
switch btrfs, close races
switch cgroup
switch hpfs
convert smbfs
switch coda
take coda-private headers out of include/linux
switch configfs
switch affs
switch hostfs
pass default dentry_operations to mount_pseudo()
switch 9p
switch ncpfs
move internal-only parts of ncpfs headers to fs/ncpfs
switch afs
sanitize ecryptfs ->mount()
fix signedness mess in rw_verify_area() on 64bit architectures
Jeff Layton (1):
vfs: pass struct file to do_truncate on O_TRUNC opens (try #2)
Josef Bacik (7):
fs: add hole punching to fallocate
XFS: handle hole punching via fallocate properly
Ocfs2: handle hole punching via fallocate properly
Ext4: fail if we try to use hole punch
Btrfs: fail if we try to use hole punch
Gfs2: fail if we try to use hole punch
fs: add documentation on fallocate hole punching
Randy Dunlap (2):
fs: fix kernel-doc for dcache::d_validate
fs: fix kernel-doc for dcache::prepend_path
Diffstat:
Documentation/filesystems/porting | 9 ++
Documentation/magic-number.txt | 2 +-
arch/ia64/kernel/perfmon.c | 6 +-
drivers/mtd/mtdchar.c | 2 +-
drivers/staging/pohmelfs/net.c | 2 +-
drivers/staging/smbfs/dir.c | 13 ---
drivers/staging/smbfs/inode.c | 4 +
drivers/staging/smbfs/proto.h | 2 +
fs/9p/v9fs_vfs.h | 1 -
fs/9p/vfs_dentry.c | 2 +-
fs/9p/vfs_inode.c | 5 -
fs/9p/vfs_super.c | 8 +-
fs/adfs/dir.c | 1 -
fs/adfs/super.c | 4 +-
fs/affs/affs.h | 1 +
fs/affs/namei.c | 3 +-
fs/affs/super.c | 6 +-
fs/afs/dir.c | 4 +-
fs/afs/internal.h | 1 +
fs/afs/super.c | 1 +
fs/anon_inodes.c | 21 ++--
fs/block_dev.c | 2 +-
fs/btrfs/export.c | 12 +--
fs/btrfs/inode.c | 6 +-
fs/btrfs/super.c | 1 +
fs/cifs/cifsfs.c | 6 +
fs/cifs/dir.c | 25 +-----
fs/cifs/inode.c | 8 --
fs/cifs/link.c | 4 -
fs/cifs/readdir.c | 5 -
fs/coda/cache.c | 5 +-
fs/coda/cnode.c | 3 +-
{include/linux => fs/coda}/coda_cache.h | 0
{include/linux => fs/coda}/coda_fs_i.h | 0
fs/coda/coda_linux.c | 3 +-
{include/linux => fs/coda}/coda_linux.h | 4 +-
fs/coda/dir.c | 9 +-
fs/coda/file.c | 3 +-
fs/coda/inode.c | 6 +-
fs/coda/pioctl.c | 4 +-
fs/coda/psdev.c | 4 +-
fs/coda/symlink.c | 4 +-
fs/coda/upcall.c | 5 +-
fs/configfs/configfs_internal.h | 1 +
fs/configfs/dir.c | 6 +-
fs/configfs/mount.c | 1 +
fs/dcache.c | 9 +-
fs/ecryptfs/inode.c | 1 -
fs/ecryptfs/main.c | 155 ++++++++++++++-----------------
fs/ext4/extents.c | 4 +
fs/fat/fat.h | 3 +-
fs/fat/inode.c | 13 +--
fs/fat/namei_msdos.c | 27 ++----
fs/fat/namei_vfat.c | 27 ++----
fs/fuse/dir.c | 1 -
fs/fuse/inode.c | 10 +-
fs/gfs2/export.c | 13 +--
fs/gfs2/ops_fstype.c | 2 +-
fs/gfs2/ops_inode.c | 6 +-
fs/hfs/dir.c | 2 -
fs/hfs/super.c | 3 +-
fs/hfsplus/dir.c | 1 -
fs/hfsplus/super.c | 2 +-
fs/hostfs/hostfs_kern.c | 2 +-
fs/hpfs/dentry.c | 7 +-
fs/hpfs/dir.c | 1 -
fs/hpfs/hpfs_fn.h | 2 +-
fs/hpfs/super.c | 2 +-
fs/isofs/inode.c | 13 ++-
fs/isofs/namei.c | 2 -
fs/jfs/namei.c | 10 +--
fs/jfs/super.c | 6 +-
fs/libfs.c | 4 +-
fs/minix/namei.c | 2 -
fs/namei.c | 7 +-
fs/ncpfs/dir.c | 19 +---
fs/ncpfs/file.c | 3 +-
fs/ncpfs/inode.c | 6 +-
fs/ncpfs/ioctl.c | 4 +-
fs/ncpfs/mmap.c | 4 +-
fs/ncpfs/ncp_fs.h | 98 +++++++++++++++++++
{include/linux => fs/ncpfs}/ncp_fs_i.h | 0
{include/linux => fs/ncpfs}/ncp_fs_sb.h | 24 ++++-
fs/ncpfs/ncplib_kernel.c | 2 +-
fs/ncpfs/ncplib_kernel.h | 2 -
fs/ncpfs/ncpsign_kernel.c | 1 +
fs/ncpfs/ncpsign_kernel.h | 2 -
fs/ncpfs/sock.c | 2 +-
fs/ncpfs/symlink.c | 4 +-
fs/nfs/dir.c | 4 -
fs/nfs/getroot.c | 6 -
fs/nfs/super.c | 1 +
fs/ocfs2/export.c | 6 +-
fs/ocfs2/file.c | 8 +-
fs/ocfs2/namei.c | 5 -
fs/ocfs2/super.c | 1 +
fs/open.c | 7 +-
fs/pipe.c | 4 +-
fs/read_write.c | 27 ++---
fs/sysv/namei.c | 1 -
fs/sysv/super.c | 8 +-
fs/xfs/linux-2.6/xfs_iops.c | 7 +-
include/linux/falloc.h | 1 +
include/linux/fs.h | 5 +-
include/linux/ncp_fs.h | 100 --------------------
include/linux/ncp_mount.h | 22 -----
kernel/cgroup.c | 30 ++-----
net/socket.c | 30 +++---
108 files changed, 424 insertions(+), 582 deletions(-)
^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2018-06-04 0:59 UTC | newest]
Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-05 2:23 [git pull] vfs pile 1 Al Viro
2012-01-08 23:04 ` Linus Torvalds
2012-01-08 23:50 ` Al Viro
2012-01-08 23:53 ` Al Viro
2012-01-09 0:11 ` Linus Torvalds
2012-01-09 0:25 ` Al Viro
2012-01-09 0:39 ` Linus Torvalds
2012-01-09 2:12 ` Al Viro
2012-01-09 15:11 ` Ted Ts'o
2012-01-11 11:58 ` Christoph Hellwig
2012-01-11 12:36 ` Miklos Szeredi
2012-01-11 12:40 ` Christoph Hellwig
2012-01-11 13:12 ` Miklos Szeredi
2012-01-11 15:23 ` Ted Ts'o
2012-01-11 16:19 ` Al Viro
2012-01-12 11:41 ` Miklos Szeredi
-- strict thread matches above, loose matches on Subject: below --
2018-06-04 0:59 [git pull] vfs, " Al Viro
2016-12-16 13:30 [git pull] vfs " Al Viro
2015-09-06 2:55 Al Viro
2015-06-22 6:47 Al Viro
2014-01-27 14:25 Al Viro
2014-01-27 23:05 ` Stephen Rothwell
2014-01-29 3:26 ` Linus Torvalds
2014-01-29 13:37 ` Jan Kara
2014-01-30 2:02 ` Kim Jaegeuk
2014-01-30 15:26 ` Jan Kara
2014-01-30 13:07 ` Christoph Hellwig
2013-02-27 3:24 Al Viro
2012-03-21 3:31 Al Viro
2011-05-26 11:53 Al Viro
2011-01-13 5:35 Al Viro
2011-01-13 6:25 ` Stephen Rothwell
2011-01-13 8:55 ` Christoph Hellwig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).