From: Al Viro <viro@xxxxxxxxxxxxxxxxxx> An ->open() instances really, really should not be doing that. There's a lot of places e.g. around atomic_open() that could be confused by that, so let's catch that early. Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> --- fs/open.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/open.c b/fs/open.c index 76c56966e297..558802e66e00 100644 --- a/fs/open.c +++ b/fs/open.c @@ -812,6 +812,10 @@ static int do_dentry_open(struct file *f, return 0; cleanup_all: + if (unlikely(error > 0)) { + WARN_ON(1); + error = -EINVAL; + } fops_put(f->f_op); if (f->f_mode & FMODE_WRITER) { put_write_access(inode); -- 2.11.0