diff options
author | Eric Biggers <ebiggers@google.com> | 2019-07-22 19:26:21 +0300 |
---|---|---|
committer | Eric Biggers <ebiggers@google.com> | 2019-07-29 02:59:16 +0300 |
commit | 671e67b47e9fffd12c8f69eda853a202cb5b3fc5 (patch) | |
tree | f91a0c50797934610997014c30c5d3384444b24d /fs/verity/init.c | |
parent | fe9918d3b228b3e8c726849d1486933f46b9069e (diff) | |
download | linux-671e67b47e9fffd12c8f69eda853a202cb5b3fc5.tar.xz |
fs-verity: add Kconfig and the helper functions for hashing
Add the beginnings of the fs/verity/ support layer, including the
Kconfig option and various helper functions for hashing. To start, only
SHA-256 is supported, but other hash algorithms can easily be added.
Reviewed-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Diffstat (limited to 'fs/verity/init.c')
-rw-r--r-- | fs/verity/init.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/fs/verity/init.c b/fs/verity/init.c new file mode 100644 index 000000000000..40076bbe452a --- /dev/null +++ b/fs/verity/init.c @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * fs/verity/init.c: fs-verity module initialization and logging + * + * Copyright 2019 Google LLC + */ + +#include "fsverity_private.h" + +#include <linux/ratelimit.h> + +void fsverity_msg(const struct inode *inode, const char *level, + const char *fmt, ...) +{ + static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL, + DEFAULT_RATELIMIT_BURST); + struct va_format vaf; + va_list args; + + if (!__ratelimit(&rs)) + return; + + va_start(args, fmt); + vaf.fmt = fmt; + vaf.va = &args; + if (inode) + printk("%sfs-verity (%s, inode %lu): %pV\n", + level, inode->i_sb->s_id, inode->i_ino, &vaf); + else + printk("%sfs-verity: %pV\n", level, &vaf); + va_end(args); +} + +static int __init fsverity_init(void) +{ + fsverity_check_hash_algs(); + + pr_debug("Initialized fs-verity\n"); + return 0; +} +late_initcall(fsverity_init) |