Lines Matching refs:psi
267 record->psi = psinfo;
449 ret = record->psi->write(record);
465 int pstore_register(struct pstore_info *psi)
469 if (backend && strcmp(backend, psi->name)) {
471 backend, psi->name);
476 if (!psi->flags) {
478 psi->name);
483 if (!psi->read || !psi->write) {
485 psi->name);
489 new_backend = kstrdup(psi->name, GFP_KERNEL);
496 psinfo->name, psi->name);
502 if (!psi->write_user)
503 psi->write_user = pstore_write_user_compat;
504 psinfo = psi;
508 if (psi->flags & PSTORE_FLAGS_DMESG)
513 if (psi->flags & PSTORE_FLAGS_DMESG) {
517 if (psi->flags & PSTORE_FLAGS_CONSOLE)
519 if (psi->flags & PSTORE_FLAGS_FTRACE)
521 if (psi->flags & PSTORE_FLAGS_PMSG)
533 pr_info("Registered %s as persistent store backend\n", psi->name);
540 void pstore_unregister(struct pstore_info *psi)
543 if (!psi)
549 if (WARN_ON(psi != psinfo)) {
555 if (psi->flags & PSTORE_FLAGS_PMSG)
557 if (psi->flags & PSTORE_FLAGS_FTRACE)
559 if (psi->flags & PSTORE_FLAGS_CONSOLE)
561 if (psi->flags & PSTORE_FLAGS_DMESG)
569 pstore_put_backend_records(psi);
577 pr_info("Unregistered %s as persistent store backend\n", psi->name);
656 void pstore_get_backend_records(struct pstore_info *psi,
663 if (!psi || !root)
672 mutex_lock(&psi->read_mutex);
673 if (psi->open && psi->open(psi))
690 pstore_record_init(record, psi);
692 record->size = psi->read(record);
711 if (psi->close)
712 psi->close(psi);
714 mutex_unlock(&psi->read_mutex);
724 failed, psi->name);
727 psi->name);