forked from Minki/linux
nvme: directly cache command effects log
Remove the struct used for tracking known command effects logs in a list. This is now saved in an xarray that doesn't use these elements. Instead, store the log directly instead of the wrapper struct. Signed-off-by: Keith Busch <kbusch@kernel.org> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
0f0d2c876c
commit
f6224b8681
@ -2929,7 +2929,7 @@ int nvme_get_log(struct nvme_ctrl *ctrl, u32 nsid, u8 log_page, u8 lsp, u8 csi,
|
|||||||
static int nvme_get_effects_log(struct nvme_ctrl *ctrl, u8 csi,
|
static int nvme_get_effects_log(struct nvme_ctrl *ctrl, u8 csi,
|
||||||
struct nvme_effects_log **log)
|
struct nvme_effects_log **log)
|
||||||
{
|
{
|
||||||
struct nvme_cel *cel = xa_load(&ctrl->cels, csi);
|
struct nvme_effects_log *cel = xa_load(&ctrl->cels, csi);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (cel)
|
if (cel)
|
||||||
@ -2940,16 +2940,15 @@ static int nvme_get_effects_log(struct nvme_ctrl *ctrl, u8 csi,
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
ret = nvme_get_log(ctrl, 0x00, NVME_LOG_CMD_EFFECTS, 0, csi,
|
ret = nvme_get_log(ctrl, 0x00, NVME_LOG_CMD_EFFECTS, 0, csi,
|
||||||
&cel->log, sizeof(cel->log), 0);
|
cel, sizeof(*cel), 0);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
kfree(cel);
|
kfree(cel);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
cel->csi = csi;
|
xa_store(&ctrl->cels, csi, cel, GFP_KERNEL);
|
||||||
xa_store(&ctrl->cels, cel->csi, cel, GFP_KERNEL);
|
|
||||||
out:
|
out:
|
||||||
*log = &cel->log;
|
*log = cel;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -226,12 +226,6 @@ struct nvme_fault_inject {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
struct nvme_cel {
|
|
||||||
struct list_head entry;
|
|
||||||
struct nvme_effects_log log;
|
|
||||||
u8 csi;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct nvme_ctrl {
|
struct nvme_ctrl {
|
||||||
bool comp_seen;
|
bool comp_seen;
|
||||||
enum nvme_ctrl_state state;
|
enum nvme_ctrl_state state;
|
||||||
|
Loading…
Reference in New Issue
Block a user