f9bbb68233
Orangefs has no open, and orangefs checks file permissions on each file access. Posix requires that file permissions be checked on open and nowhere else. Orangefs-through-the-kernel needs to seem posix compliant. The VFS opens files, even if the filesystem provides no method. We can see if a file was successfully opened for read and or for write by looking at file->f_mode. When writes are flowing from the page cache, file is no longer available. We can trust the VFS to have checked file->f_mode before writing to the page cache. The mode of a file might change between when it is opened and IO commences, or it might be created with an arbitrary mode. We'll make sure we don't hit EACCES during the IO stage by using UID 0. Some of the time we have access without changing to UID 0 - how to check? Signed-off-by: Mike Marshall <hubcap@omnibond.com> |
||
---|---|---|
.. | ||
acl.c | ||
dcache.c | ||
devorangefs-req.c | ||
dir.c | ||
downcall.h | ||
file.c | ||
inode.c | ||
Kconfig | ||
Makefile | ||
namei.c | ||
orangefs-bufmap.c | ||
orangefs-bufmap.h | ||
orangefs-cache.c | ||
orangefs-debug.h | ||
orangefs-debugfs.c | ||
orangefs-debugfs.h | ||
orangefs-dev-proto.h | ||
orangefs-kernel.h | ||
orangefs-mod.c | ||
orangefs-sysfs.c | ||
orangefs-sysfs.h | ||
orangefs-utils.c | ||
protocol.h | ||
super.c | ||
symlink.c | ||
upcall.h | ||
waitqueue.c | ||
xattr.c |