This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / include / linux / task_io_accounting.h
diff --git a/include/linux/task_io_accounting.h b/include/linux/task_io_accounting.h
new file mode 100644 (file)
index 0000000..44d00e9
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * task_io_accounting: a structure which is used for recording a single task's
+ * IO statistics.
+ *
+ * Don't include this header file directly - it is designed to be dragged in via
+ * sched.h.
+ *
+ * Blame akpm@osdl.org for all this.
+ */
+
+#ifdef CONFIG_TASK_IO_ACCOUNTING
+struct task_io_accounting {
+       /*
+        * The number of bytes which this task has caused to be read from
+        * storage.
+        */
+       u64 read_bytes;
+
+       /*
+        * The number of bytes which this task has caused, or shall cause to be
+        * written to disk.
+        */
+       u64 write_bytes;
+
+       /*
+        * A task can cause "negative" IO too.  If this task truncates some
+        * dirty pagecache, some IO which another task has been accounted for
+        * (in its write_bytes) will not be happening.  We _could_ just
+        * subtract that from the truncating task's write_bytes, but there is
+        * information loss in doing that.
+        */
+       u64 cancelled_write_bytes;
+};
+#else
+struct task_io_accounting {
+};
+#endif