else
                        flags = O_WRONLY|O_LARGEFILE;
        }
 -      *filp = dentry_open(&path, flags, current_cred());
 -      if (IS_ERR(*filp)) {
 -              host_err = PTR_ERR(*filp);
 -              *filp = NULL;
 -      } else {
 -              host_err = ima_file_check(*filp, may_flags, 0);
  
 -              if (may_flags & NFSD_MAY_64BIT_COOKIE)
 -                      (*filp)->f_mode |= FMODE_64BITHASH;
 -              else
 -                      (*filp)->f_mode |= FMODE_32BITHASH;
 +      file = dentry_open(&path, flags, current_cred());
 +      if (IS_ERR(file)) {
 +              host_err = PTR_ERR(file);
 +              goto out_nfserr;
        }
  
-       host_err = ima_file_check(file, may_flags);
++      host_err = ima_file_check(file, may_flags, 0);
 +      if (host_err) {
 +              nfsd_close(file);
 +              goto out_nfserr;
 +      }
 +
 +      if (may_flags & NFSD_MAY_64BIT_COOKIE)
 +              file->f_mode |= FMODE_64BITHASH;
 +      else
 +              file->f_mode |= FMODE_32BITHASH;
 +
 +      *filp = file;
  out_nfserr:
        err = nfserrno(host_err);
  out:
 
        return buf;
  }
  
 -static inline char * __deprecated pack_hex_byte(char *buf, u8 byte)
 -{
 -      return hex_byte_pack(buf, byte);
 -}
 -
  extern int hex_to_bin(char ch);
  extern int __must_check hex2bin(u8 *dst, const char *src, size_t count);
+ extern char *bin2hex(char *dst, const void *src, size_t count);
  
 -int mac_pton(const char *s, u8 *mac);
 +bool mac_pton(const char *s, u8 *mac);
  
  /*
   * General tracing related utility functions - trace_printk(),