1 // SPDX-License-Identifier: GPL-2.0
2 #include <linux/kernel.h>
3 #include "ubifs.h"
4
5 /* Normal UBIFS messages */
ubifs_msg(const struct ubifs_info * c,const char * fmt,...)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 */
ubifs_err(const struct ubifs_info * c,const char * fmt,...)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 */
ubifs_warn(const struct ubifs_info * c,const char * fmt,...)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
ubifs_assert_action_name(struct ubifs_info * c)66 const char *ubifs_assert_action_name(struct ubifs_info *c)
67 {
68 return assert_names[c->assert_action];
69 }
70