root/fs/ubifs/misc.c
// SPDX-License-Identifier: GPL-2.0
#include <linux/kernel.h>
#include "ubifs.h"

/* Normal UBIFS messages */
void ubifs_msg(const struct ubifs_info *c, const char *fmt, ...)
{
        struct va_format vaf;
        va_list args;

        va_start(args, fmt);

        vaf.fmt = fmt;
        vaf.va = &args;

        pr_notice("UBIFS (ubi%d:%d): %pV\n",
                  c->vi.ubi_num, c->vi.vol_id, &vaf);

        va_end(args);
}                                                                   \

/* UBIFS error messages */
void ubifs_err(const struct ubifs_info *c, const char *fmt, ...)
{
        struct va_format vaf;
        va_list args;

        va_start(args, fmt);

        vaf.fmt = fmt;
        vaf.va = &args;

        pr_err("UBIFS error (ubi%d:%d pid %d): %ps: %pV\n",
               c->vi.ubi_num, c->vi.vol_id, current->pid,
               __builtin_return_address(0),
               &vaf);

        va_end(args);
}                                                                   \

/* UBIFS warning messages */
void ubifs_warn(const struct ubifs_info *c, const char *fmt, ...)
{
        struct va_format vaf;
        va_list args;

        va_start(args, fmt);

        vaf.fmt = fmt;
        vaf.va = &args;

        pr_warn("UBIFS warning (ubi%d:%d pid %d): %ps: %pV\n",
                c->vi.ubi_num, c->vi.vol_id, current->pid,
                __builtin_return_address(0),
                &vaf);

        va_end(args);
}

static char *assert_names[] = {
        [ASSACT_REPORT] = "report",
        [ASSACT_RO] = "read-only",
        [ASSACT_PANIC] = "panic",
};

const char *ubifs_assert_action_name(struct ubifs_info *c)
{
        return assert_names[c->assert_action];
}