Lines Matching refs:nvfd
754 e_fwrite_nvlist(nvfd_t *nvfd, nvlist_t *nvl) in e_fwrite_nvlist() argument
758 if ((err = fwrite_nvlist(nvfd->nvf_cache_path, nvl)) == 0) in e_fwrite_nvlist()
762 NVF_MARK_READONLY(nvfd); in e_fwrite_nvlist()
782 fread_nvp_list(nvfd_t *nvfd) in fread_nvp_list() argument
791 ASSERT(RW_WRITE_HELD(&(nvfd->nvf_lock))); in fread_nvp_list()
793 rval = fread_nvlist(nvfd->nvf_cache_path, &nvl); in fread_nvp_list()
817 ASSERT(RW_WRITE_HELD(&(nvfd->nvf_lock))); in fread_nvp_list()
818 rv = (nvfd->nvf_unpack_nvlist) in fread_nvp_list()
819 ((nvf_handle_t)nvfd, sublist, name); in fread_nvp_list()
820 ASSERT(RW_WRITE_HELD(&(nvfd->nvf_lock))); in fread_nvp_list()
824 nvfd->nvf_cache_path, name); in fread_nvp_list()
832 nvfd->nvf_cache_path, name, nvpair_type(nvp)); in fread_nvp_list()
844 nvp_list_free(nvfd); in fread_nvp_list()
852 nvfd_t *nvfd = (nvfd_t *)nvf_handle; in nvf_read_file() local
855 ASSERT(RW_WRITE_HELD(&nvfd->nvf_lock)); in nvf_read_file()
860 KFDEBUG((CE_CONT, "reading %s\n", nvfd->nvf_cache_path)); in nvf_read_file()
862 rval = fread_nvp_list(nvfd); in nvf_read_file()
866 nvfd->nvf_flags |= NVF_F_REBUILD_MSG; in nvf_read_file()
868 nvfd->nvf_cache_path); in nvf_read_file()
871 nvfd->nvf_flags |= NVF_F_CREATE_MSG; in nvf_read_file()
873 nvfd->nvf_cache_path); in nvf_read_file()
877 nvfd->nvf_flags |= NVF_F_REBUILD_MSG; in nvf_read_file()
879 nvfd->nvf_cache_path); in nvf_read_file()
955 nvpflush_one(nvfd_t *nvfd) in nvpflush_one() argument
960 rw_enter(&nvfd->nvf_lock, RW_READER); in nvpflush_one()
962 ASSERT((nvfd->nvf_flags & NVF_F_FLUSHING) == 0); in nvpflush_one()
964 if (!NVF_IS_DIRTY(nvfd) || in nvpflush_one()
965 NVF_IS_READONLY(nvfd) || kfio_disable_write || sys_shutdown) { in nvpflush_one()
966 NVF_CLEAR_DIRTY(nvfd); in nvpflush_one()
967 rw_exit(&nvfd->nvf_lock); in nvpflush_one()
971 if (rw_tryupgrade(&nvfd->nvf_lock) == 0) { in nvpflush_one()
973 "%s rw upgrade failed\n", nvfd->nvf_cache_path); in nvpflush_one()
974 rw_exit(&nvfd->nvf_lock); in nvpflush_one()
977 if (((nvfd->nvf_pack_list) in nvpflush_one()
978 ((nvf_handle_t)nvfd, &nvl)) != DDI_SUCCESS) { in nvpflush_one()
980 "%s nvlist construction failed\n", nvfd->nvf_cache_path); in nvpflush_one()
981 ASSERT(RW_WRITE_HELD(&nvfd->nvf_lock)); in nvpflush_one()
982 rw_exit(&nvfd->nvf_lock); in nvpflush_one()
985 ASSERT(RW_WRITE_HELD(&nvfd->nvf_lock)); in nvpflush_one()
987 NVF_CLEAR_DIRTY(nvfd); in nvpflush_one()
988 nvfd->nvf_flags |= NVF_F_FLUSHING; in nvpflush_one()
989 rw_exit(&nvfd->nvf_lock); in nvpflush_one()
991 rval = e_fwrite_nvlist(nvfd, nvl); in nvpflush_one()
994 rw_enter(&nvfd->nvf_lock, RW_WRITER); in nvpflush_one()
995 nvfd->nvf_flags &= ~NVF_F_FLUSHING; in nvpflush_one()
997 if (NVF_IS_READONLY(nvfd)) { in nvpflush_one()
999 nvfd->nvf_flags &= ~(NVF_F_ERROR | NVF_F_DIRTY); in nvpflush_one()
1000 } else if ((nvfd->nvf_flags & NVF_F_ERROR) == 0) { in nvpflush_one()
1002 "%s: update failed\n", nvfd->nvf_cache_path); in nvpflush_one()
1003 nvfd->nvf_flags |= NVF_F_ERROR | NVF_F_DIRTY; in nvpflush_one()
1006 if (nvfd->nvf_flags & NVF_F_CREATE_MSG) { in nvpflush_one()
1008 "!Creating %s\n", nvfd->nvf_cache_path); in nvpflush_one()
1009 nvfd->nvf_flags &= ~NVF_F_CREATE_MSG; in nvpflush_one()
1011 if (nvfd->nvf_flags & NVF_F_REBUILD_MSG) { in nvpflush_one()
1013 "!Rebuilding %s\n", nvfd->nvf_cache_path); in nvpflush_one()
1014 nvfd->nvf_flags &= ~NVF_F_REBUILD_MSG; in nvpflush_one()
1016 if (nvfd->nvf_flags & NVF_F_ERROR) { in nvpflush_one()
1018 "%s: update now ok\n", nvfd->nvf_cache_path); in nvpflush_one()
1019 nvfd->nvf_flags &= ~NVF_F_ERROR; in nvpflush_one()
1025 if (NVF_IS_DIRTY(nvfd)) in nvpflush_one()
1029 rw_exit(&nvfd->nvf_lock); in nvpflush_one()