23 Jul, 2012
5 commits
-
task_work and rcu_head are identical now; merge them (calling the result
struct callback_head, rcu_head #define'd to it), kill separate allocation
in security/keys since we can just use cred->rcu now.Signed-off-by: Al Viro
-
layout based on Oleg's suggestion; single-linked list,
task->task_works points to the last element, forward pointer
from said last element points to head. I'd still prefer
much more regular scheme with two pointers in task_work,
but...Signed-off-by: Al Viro
-
get rid of the only user of ->data; this is _not_ the final variant - in the
end we'll have task_work and rcu_head identical and just use cred->rcu,
at which point the separate allocation will be gone completely.Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
No need to bother with lookup_one_len() here - it's an overkill
Signed-off-by Al Viro
14 Jul, 2012
35 commits
-
Split inode_permission() into inode- and superblock-dependent parts.
This is aimed at unionmounts where the superblock from the upper layer has to
be checked rather than the superblock from the lower layer as the upper layer
may be writable, thus allowing an unwritable file from the lower layer to be
copied up and modified.Original-author: Valerie Aurora
Signed-off-by: David Howells (Further development)
Signed-off-by: Al Viro -
Pass mount flags to sget() so that it can use them in initialising a new
superblock before the set function is called. They could also be passed to the
compare function.Signed-off-by: David Howells
Signed-off-by: Al Viro -
Add comments describing what the directions "up" and "down" mean and ref count
handling to the VFS mount following family of functions.Signed-off-by: Valerie Aurora (Original author)
Signed-off-by: David Howells
Signed-off-by: Al Viro -
copy_tree() can theoretically fail in a case other than ENOMEM, but always
returns NULL which is interpreted by callers as -ENOMEM. Change it to return
an explicit error.Also change clone_mnt() for consistency and because union mounts will add new
error cases.Thanks to Andreas Gruenbacher for a bug fix.
[AV: folded braino fix by Dan Carpenter]Original-author: Valerie Aurora
Signed-off-by: David Howells
Cc: Valerie Aurora
Cc: Andreas Gruenbacher
Signed-off-by: Al Viro -
Make the chown() and lchown() syscalls jump to the fchownat() syscall with the
appropriate extra arguments.Signed-off-by: David Howells
Signed-off-by: Al Viro -
we want to take it out of mark_files_ro() reach *before* we start
checking if we ought to drop write access.Signed-off-by: Al Viro
-
mnt_drop_write_file() is safe under any lock
Signed-off-by: Al Viro
-
Cc: Djalal Harouni
Cc: Al Viro
Signed-off-by: Andrew Morton
Signed-off-by: Al Viro -
Add a helper that abstracts out the jump to an already parsed struct path
from ->follow_link operation from procfs. Not only does this clean up
the code by moving the two sides of this game into a single helper, but
it also prepares for making struct nameidata private to namei.cSigned-off-by: Christoph Hellwig
Signed-off-by: Al Viro -
Currently the non-nd_set_link based versions of ->follow_link are expected
to do a path_put(&nd->path) on failure. This calling convention is unexpected,
undocumented and doesn't match what the nd_set_link-based instances do.Move the path_put out of the only non-nd_set_link based ->follow_link
instance into the caller.Signed-off-by: Christoph Hellwig
Signed-off-by: Al Viro -
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
It, debugfs_create_dir() and debugfs_create_link() use the common helper
now.Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
same as for nfs et.al.
Signed-off-by: Al Viro
-
a) ->d_iput() is wrong here - what we do to inode is completely usual, it's
dentry->d_fsdata that we want to drop. Just use ->d_release().b) switch to ->s_d_op - no need to play with d_set_d_op()
Signed-off-by: Al Viro
-
all callers want the same thing, actually - a kinda-sorta analog of
kern_path_create(). I.e. they want parent vfsmount/dentry (with
->i_mutex held, to make sure the child dentry is still their child)
+ the child dentry.Signed-off-by Al Viro
-
Since commit 197e37d9, the banner comment on lookup_open() no longer matches
what the function returns. It used to return a struct file pointer or NULL and
now it returns an integer and is passed the struct file pointer it is to use
amongst its arguments. Update the comment to reflect this.Also add a banner comment to atomic_open().
Signed-off-by: David Howells
Signed-off-by: Al Viro -
all we want is a boolean flag, same as the method gets now
Signed-off-by: Al Viro
-
boolean "does it have to be exclusive?" flag is passed instead;
Local filesystem should just ignore it - the object is guaranteed
not to be there yet.Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Just the flags; only NFS cares even about that, but there are
legitimate uses for such argument. And getting rid of that
completely would require splitting ->lookup() into a couple
of methods (at least), so let's leave that alone for now...Signed-off-by: Al Viro
-
just the flags...
Signed-off-by: Al Viro
-
since the method wrapped by it doesn't need that anymore...
Signed-off-by: Al Viro
-
Just the lookup flags. Die, bastard, die...
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
just pass the flags
Signed-off-by: Al Viro
-
... and get rid of a couple of arguments and a pointless reassignment
in finish_open() case.Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
namely, 1 ;-) That's what we want to return from ->atomic_open()
instances after finish_no_open().Signed-off-by: Al Viro
-
Same conventions as for ->atomic_open(). Trimmed the
forest of labels a bit, while we are at it...Signed-off-by: Al Viro
-
Just pass struct file *. Methods are happier that way...
There's no need to return struct file * from finish_open() now,
so let it return int. Next: saner prototypes for parts in
namei.cSigned-off-by: Al Viro
-
->filp->f_path is there for purpose...
Signed-off-by: Al Viro