20 Jul, 2011
40 commits
-
... and give it a namespace where devtmpfs would be mounted on root,
thus avoiding abuses of vfs_path_lookup() (it was never intended to
be used with LOOKUP_PARENT). Games with credentials are also gone.Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
combination of kern_path_parent() and lookup_create(). Does *not*
expose struct nameidata to caller. Syscalls converted to that...Signed-off-by: Al Viro
-
LOOKUP_PARENT is equivalent to it now
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
... it will be set in nd->flag for all cases with non-NULL nd
(i.e. when called from do_last()).Signed-off-by: Al Viro
-
Instead of playing with removal of LOOKUP_OPEN, mangling (and
restoring) nd->path, just pass NULL to vfs_create(). The whole
point of what's being done there is to suppress any attempts
to open file by underlying fs, which is what nd == NULL indicates.Signed-off-by: Al Viro
-
->create() instances are much happier that way...
Signed-off-by: Al Viro
-
All instances can cope with that now (and ceph one actually
starts working properly).Signed-off-by: Al Viro
-
a) check the right flags in ->create() (LOOKUP_OPEN, not LOOKUP_CREATE)
b) default (!LOOKUP_OPEN) open_flags is O_CREAT|O_EXCL|FMODE_READ, not 0
c) lookup_instantiate_filp() should be done only with LOOKUP_OPEN;
otherwise we need to issue CLOSE, lest we leak stateid on server.Signed-off-by: Al Viro
-
just open flags; switched to passing just those and
renamed to create_nfs_open_context()Signed-off-by: Al Viro
-
just dentry, please...
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
instead of path_get()/path_put(), we can just use nfs_sb_{,de}active()
to pin the superblock down.Signed-off-by: Al Viro
-
... and get rid of a bogus typecast, while we are at it; it's not
just that we want a function returning int and not void, but cast
to pointer to function taking void * and returning void would be
(void (*)(void *)) and not (void *)(void *), TYVM...Signed-off-by: Al Viro
-
... now that inode_permission() can take MAY_NOT_BLOCK and handle it
properly.Signed-off-by: Al Viro
-
not used anymore
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
cache footprint alone makes it a bad idea...
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
pass mask instead; kill security_inode_exec_permission() since we can use
security_inode_permission() instead.Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
pass that via mask instead.
Signed-off-by: Al Viro
-
not used by the instances anymore.
Signed-off-by: Al Viro
-
redundant; all callers get it duplicated in mask & MAY_NOT_BLOCK and none of
them removes that bit.Signed-off-by: Al Viro
-
not used in the instances anymore.
Signed-off-by: Al Viro
-
Signed-off-by: Al Viro
-
Duplicate the flags argument into mask bitmap.
Signed-off-by: Al Viro
-
its value depends only on inode and does not change; we might as
well store it in ->i_op->check_acl and be done with that.Signed-off-by: Al Viro
-
new helpers: atomic_inc_unless_negative()/atomic_dec_unless_positive()
Signed-off-by: Al Viro
-
... and convert the comment before it into linuxdoc form.
Signed-off-by: Al Viro
-
convert the last remaining caller to inode_permission()
Signed-off-by: Al Viro
-
new helper: would_dump(bprm, file). Checks if we are allowed to
read the file and if we are not - sets ENFORCE_NODUMP. Exported,
used in places that previously open-coded the same logics.Signed-off-by: Al Viro
-
Signed-off-by: Al Viro