[PATCH] fuse: check O_DIRECT
Check O_DIRECT and return -EINVAL error in open. dentry_open() also checks this but only after the open method is called. This patch optimizes away the unnecessary upcalls in this case. It could be a correctness issue too: if filesystem has open() with side effect, then it should fail before doing the open, not after. Signed-off-by: Miklos Szeredi <miklos@szeredi.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
daa35edc0a
Коммит
dd190d066b
|
@ -23,6 +23,10 @@ int fuse_open_common(struct inode *inode, struct file *file, int isdir)
|
|||
struct fuse_file *ff;
|
||||
int err;
|
||||
|
||||
/* VFS checks this, but only _after_ ->open() */
|
||||
if (file->f_flags & O_DIRECT)
|
||||
return -EINVAL;
|
||||
|
||||
err = generic_file_open(inode, file);
|
||||
if (err)
|
||||
return err;
|
||||
|
|
Загрузка…
Ссылка в новой задаче