
This adds a counter to the taskstats extended accounting fields, which
tracks the number of times fsync is called, and then plumbs it through
to the uid_sys_stats driver.
Bug: 120442023
Change-Id: I6c138de5b2332eea70f57e098134d1d141247b3f
Signed-off-by: Jin Qian <jinqian@google.com>
[AmitP: Refactored changes to align with changes from upstream commit
9a07000400
("sched/headers: Move CONFIG_TASK_XACCT bits from <linux/sched.h> to <linux/sched/xacct.h>")]
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
[tkjos: Needed for storaged fsync accounting ("storaged --uid" and
"storaged --task").]
[astrachan: This is modifying a userspace interface and should probably
be reworked]
Signed-off-by: Alistair Strachan <astrachan@google.com>
59 lines
995 B
C
59 lines
995 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_SCHED_XACCT_H
|
|
#define _LINUX_SCHED_XACCT_H
|
|
|
|
/*
|
|
* Extended task accounting methods:
|
|
*/
|
|
|
|
#include <linux/sched.h>
|
|
|
|
#ifdef CONFIG_TASK_XACCT
|
|
static inline void add_rchar(struct task_struct *tsk, ssize_t amt)
|
|
{
|
|
tsk->ioac.rchar += amt;
|
|
}
|
|
|
|
static inline void add_wchar(struct task_struct *tsk, ssize_t amt)
|
|
{
|
|
tsk->ioac.wchar += amt;
|
|
}
|
|
|
|
static inline void inc_syscr(struct task_struct *tsk)
|
|
{
|
|
tsk->ioac.syscr++;
|
|
}
|
|
|
|
static inline void inc_syscw(struct task_struct *tsk)
|
|
{
|
|
tsk->ioac.syscw++;
|
|
}
|
|
|
|
static inline void inc_syscfs(struct task_struct *tsk)
|
|
{
|
|
tsk->ioac.syscfs++;
|
|
}
|
|
#else
|
|
static inline void add_rchar(struct task_struct *tsk, ssize_t amt)
|
|
{
|
|
}
|
|
|
|
static inline void add_wchar(struct task_struct *tsk, ssize_t amt)
|
|
{
|
|
}
|
|
|
|
static inline void inc_syscr(struct task_struct *tsk)
|
|
{
|
|
}
|
|
|
|
static inline void inc_syscw(struct task_struct *tsk)
|
|
{
|
|
}
|
|
|
|
static inline void inc_syscfs(struct task_struct *tsk)
|
|
{
|
|
}
|
|
#endif
|
|
|
|
#endif /* _LINUX_SCHED_XACCT_H */
|