Now that we have error log page implementation update smart log command
handler to provide number of error log entries in the lifetime of the
controller field.
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
 {
        struct nvme_smart_log *log;
        u16 status = NVME_SC_INTERNAL;
+       unsigned long flags;
 
        if (req->data_len != sizeof(*log))
                goto out;
        if (status)
                goto out_free_log;
 
+       spin_lock_irqsave(&req->sq->ctrl->error_lock, flags);
+       put_unaligned_le64(req->sq->ctrl->err_counter,
+                       &log->num_err_log_entries);
+       spin_unlock_irqrestore(&req->sq->ctrl->error_lock, flags);
+
        status = nvmet_copy_to_sgl(req, 0, log, sizeof(*log));
 out_free_log:
        kfree(log);