Perform open_check_o_direct() in a common place in do_last after opening the
file.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
         * here.
         */
        error = may_open(&filp->f_path, acc_mode, open_flag);
-       if (error)
-               goto out_fput;
-
-       error = open_check_o_direct(filp);
-       if (error)
-               goto out_fput;
+       if (error) {
+               fput(filp);
+               filp = ERR_PTR(error);
+       }
 
 out:
        dput(dentry);
        return filp;
 
-out_fput:
-       fput(filp);
-       filp = ERR_PTR(error);
-       goto out;
-
 no_open:
        if (need_lookup) {
                dentry = lookup_real(dir, dentry, nd);
                        goto stale_open;
                goto out;
        }
+opened:
        error = open_check_o_direct(filp);
        if (error)
                goto exit_fput;
-opened:
        error = ima_file_check(filp, op->acc_mode);
        if (error)
                goto exit_fput;