xref: /linux/fs/ubifs/misc.c (revision 24bce201d79807b668bf9d9e0aca801c5c0d5f78)
1 // SPDX-License-Identifier: GPL-2.0
2 #include <linux/kernel.h>
3 #include "ubifs.h"
4 
5 /* Normal UBIFS messages */
6 void ubifs_msg(const struct ubifs_info *c, const char *fmt, ...)
7 {
8 	struct va_format vaf;
9 	va_list args;
10 
11 	va_start(args, fmt);
12 
13 	vaf.fmt = fmt;
14 	vaf.va = &args;
15 
16 	pr_notice("UBIFS (ubi%d:%d): %pV\n",
17 		  c->vi.ubi_num, c->vi.vol_id, &vaf);
18 
19 	va_end(args);
20 }								    \
21 
22 /* UBIFS error messages */
23 void ubifs_err(const struct ubifs_info *c, const char *fmt, ...)
24 {
25 	struct va_format vaf;
26 	va_list args;
27 
28 	va_start(args, fmt);
29 
30 	vaf.fmt = fmt;
31 	vaf.va = &args;
32 
33 	pr_err("UBIFS error (ubi%d:%d pid %d): %ps: %pV\n",
34 	       c->vi.ubi_num, c->vi.vol_id, current->pid,
35 	       __builtin_return_address(0),
36 	       &vaf);
37 
38 	va_end(args);
39 }								    \
40 
41 /* UBIFS warning messages */
42 void ubifs_warn(const struct ubifs_info *c, const char *fmt, ...)
43 {
44 	struct va_format vaf;
45 	va_list args;
46 
47 	va_start(args, fmt);
48 
49 	vaf.fmt = fmt;
50 	vaf.va = &args;
51 
52 	pr_warn("UBIFS warning (ubi%d:%d pid %d): %ps: %pV\n",
53 		c->vi.ubi_num, c->vi.vol_id, current->pid,
54 		__builtin_return_address(0),
55 		&vaf);
56 
57 	va_end(args);
58 }
59 
60 static char *assert_names[] = {
61 	[ASSACT_REPORT] = "report",
62 	[ASSACT_RO] = "read-only",
63 	[ASSACT_PANIC] = "panic",
64 };
65 
66 const char *ubifs_assert_action_name(struct ubifs_info *c)
67 {
68 	return assert_names[c->assert_action];
69 }
70