mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 01:32:21 +02:00
ima: Introduce _ima_measurements_start() and _ima_measurements_next()
Introduce _ima_measurements_start() and _ima_measurements_next(), renamed from ima_measurements_start() and ima_measurements_next(), to include the list head as an additional parameter, so that iteration on different lists can be implemented by calling those functions. No functional change: ima_measurements_start() and ima_measurements_next() pass the ima_measurements list head, used before. They become wrappers for the new functions. Link: https://github.com/linux-integrity/linux/issues/1 Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
This commit is contained in:
parent
8f19da70f7
commit
cb431ff6a9
|
|
@ -72,14 +72,15 @@ static const struct file_operations ima_measurements_count_ops = {
|
|||
};
|
||||
|
||||
/* returns pointer to hlist_node */
|
||||
static void *ima_measurements_start(struct seq_file *m, loff_t *pos)
|
||||
static void *_ima_measurements_start(struct seq_file *m, loff_t *pos,
|
||||
struct list_head *head)
|
||||
{
|
||||
loff_t l = *pos;
|
||||
struct ima_queue_entry *qe;
|
||||
|
||||
/* we need a lock since pos could point beyond last element */
|
||||
rcu_read_lock();
|
||||
list_for_each_entry_rcu(qe, &ima_measurements, later) {
|
||||
list_for_each_entry_rcu(qe, head, later) {
|
||||
if (!l--) {
|
||||
rcu_read_unlock();
|
||||
return qe;
|
||||
|
|
@ -89,7 +90,13 @@ static void *ima_measurements_start(struct seq_file *m, loff_t *pos)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void *ima_measurements_next(struct seq_file *m, void *v, loff_t *pos)
|
||||
static void *ima_measurements_start(struct seq_file *m, loff_t *pos)
|
||||
{
|
||||
return _ima_measurements_start(m, pos, &ima_measurements);
|
||||
}
|
||||
|
||||
static void *_ima_measurements_next(struct seq_file *m, void *v, loff_t *pos,
|
||||
struct list_head *head)
|
||||
{
|
||||
struct ima_queue_entry *qe = v;
|
||||
|
||||
|
|
@ -101,7 +108,12 @@ static void *ima_measurements_next(struct seq_file *m, void *v, loff_t *pos)
|
|||
rcu_read_unlock();
|
||||
(*pos)++;
|
||||
|
||||
return (&qe->later == &ima_measurements) ? NULL : qe;
|
||||
return (&qe->later == head) ? NULL : qe;
|
||||
}
|
||||
|
||||
static void *ima_measurements_next(struct seq_file *m, void *v, loff_t *pos)
|
||||
{
|
||||
return _ima_measurements_next(m, v, pos, &ima_measurements);
|
||||
}
|
||||
|
||||
static void ima_measurements_stop(struct seq_file *m, void *v)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user