GNU Linux-libre 4.19.211-gnu1
[releases.git] / fs / ubifs / misc.c
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 }