-struct file_operations lprocfs_jobstats_seq_fops = {
- .owner = THIS_MODULE,
- .open = lprocfs_jobstats_seq_open,
- .read = seq_read,
- .write = lprocfs_jobstats_seq_write,
- .llseek = seq_lseek,
- .release = lprocfs_seq_release,
+/**
+ * Clean up the seq file state when the /proc file is closed.
+ *
+ * This also expires old job stats from the cache after they have been
+ * printed in case the system is idle and not generating new jobstats.
+ *
+ * \param[in] inode struct inode for seq file being closed
+ * \param[in] file struct file for seq file being closed
+ *
+ * \retval 0 on success
+ * \retval negative errno on failure
+ */
+static int lprocfs_jobstats_seq_release(struct inode *inode, struct file *file)
+{
+ struct seq_file *seq = file->private_data;
+ struct obd_job_stats *stats = seq->private;
+
+ lprocfs_job_cleanup(stats, stats->ojs_cleanup_interval);
+
+ return lprocfs_seq_release(inode, file);
+}
+
+static const struct proc_ops lprocfs_jobstats_seq_fops = {
+ PROC_OWNER(THIS_MODULE)
+ .proc_open = lprocfs_jobstats_seq_open,
+ .proc_read = seq_read,
+ .proc_write = lprocfs_jobstats_seq_write,
+ .proc_lseek = seq_lseek,
+ .proc_release = lprocfs_jobstats_seq_release,