1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- * Task I/O accounting operations
- */
- #ifndef __TASK_IO_ACCOUNTING_OPS_INCLUDED
- #define __TASK_IO_ACCOUNTING_OPS_INCLUDED
- #include <linux/sched.h>
- #ifdef CONFIG_TASK_IO_ACCOUNTING
- static inline void task_io_account_read(size_t bytes)
- {
- current->ioac.read_bytes += bytes;
- }
- /*
- * We approximate number of blocks, because we account bytes only.
- * A 'block' is 512 bytes
- */
- static inline unsigned long task_io_get_inblock(const struct task_struct *p)
- {
- return p->ioac.read_bytes >> 9;
- }
- static inline void task_io_account_write(size_t bytes)
- {
- current->ioac.write_bytes += bytes;
- }
- /*
- * We approximate number of blocks, because we account bytes only.
- * A 'block' is 512 bytes
- */
- static inline unsigned long task_io_get_oublock(const struct task_struct *p)
- {
- return p->ioac.write_bytes >> 9;
- }
- static inline void task_io_account_cancelled_write(size_t bytes)
- {
- current->ioac.cancelled_write_bytes += bytes;
- }
- static inline void task_io_accounting_init(struct task_struct *tsk)
- {
- memset(&tsk->ioac, 0, sizeof(tsk->ioac));
- }
- #else
- static inline void task_io_account_read(size_t bytes)
- {
- }
- static inline unsigned long task_io_get_inblock(const struct task_struct *p)
- {
- return 0;
- }
- static inline void task_io_account_write(size_t bytes)
- {
- }
- static inline unsigned long task_io_get_oublock(const struct task_struct *p)
- {
- return 0;
- }
- static inline void task_io_account_cancelled_write(size_t bytes)
- {
- }
- static inline void task_io_accounting_init(struct task_struct *tsk)
- {
- }
- #endif /* CONFIG_TASK_IO_ACCOUNTING */
- #endif /* __TASK_IO_ACCOUNTING_OPS_INCLUDED */
|