root/fs/verity/init.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. fsverity_msg
  2. fsverity_init

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * fs/verity/init.c: fs-verity module initialization and logging
   4  *
   5  * Copyright 2019 Google LLC
   6  */
   7 
   8 #include "fsverity_private.h"
   9 
  10 #include <linux/ratelimit.h>
  11 
  12 void fsverity_msg(const struct inode *inode, const char *level,
  13                   const char *fmt, ...)
  14 {
  15         static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL,
  16                                       DEFAULT_RATELIMIT_BURST);
  17         struct va_format vaf;
  18         va_list args;
  19 
  20         if (!__ratelimit(&rs))
  21                 return;
  22 
  23         va_start(args, fmt);
  24         vaf.fmt = fmt;
  25         vaf.va = &args;
  26         if (inode)
  27                 printk("%sfs-verity (%s, inode %lu): %pV\n",
  28                        level, inode->i_sb->s_id, inode->i_ino, &vaf);
  29         else
  30                 printk("%sfs-verity: %pV\n", level, &vaf);
  31         va_end(args);
  32 }
  33 
  34 static int __init fsverity_init(void)
  35 {
  36         int err;
  37 
  38         fsverity_check_hash_algs();
  39 
  40         err = fsverity_init_info_cache();
  41         if (err)
  42                 return err;
  43 
  44         err = fsverity_init_workqueue();
  45         if (err)
  46                 goto err_exit_info_cache;
  47 
  48         err = fsverity_init_signature();
  49         if (err)
  50                 goto err_exit_workqueue;
  51 
  52         pr_debug("Initialized fs-verity\n");
  53         return 0;
  54 
  55 err_exit_workqueue:
  56         fsverity_exit_workqueue();
  57 err_exit_info_cache:
  58         fsverity_exit_info_cache();
  59         return err;
  60 }
  61 late_initcall(fsverity_init)

/* [<][>][^][v][top][bottom][index][help] */