summaryrefslogtreecommitdiff
path: root/trim.h
diff options
context:
space:
mode:
authorJens Axboe <jaxboe@fusionio.com>2010-09-01 13:54:15 +0200
committerJens Axboe <jaxboe@fusionio.com>2010-09-01 13:54:15 +0200
commit0d29de831183dfd049c97a03008d425ce21e2fa4 (patch)
treef73008037436dddd072b8b858b2462ac7eb0b4ac /trim.h
parentd1c46c049cfba2028abc45246e2609bcee52d0f3 (diff)
downloadfio-0d29de831183dfd049c97a03008d425ce21e2fa4.tar.gz
fio-0d29de831183dfd049c97a03008d425ce21e2fa4.tar.bz2
Add verify trim support
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'trim.h')
-rw-r--r--trim.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/trim.h b/trim.h
new file mode 100644
index 00000000..d0d7a8dc
--- /dev/null
+++ b/trim.h
@@ -0,0 +1,37 @@
+#ifndef FIO_TRIM_H
+#define FIO_TRIM_H
+
+#include "fio.h"
+
+#ifdef FIO_HAVE_TRIM
+extern int __must_check get_next_trim(struct thread_data *td, struct io_u *io_u);
+extern int io_u_should_trim(struct thread_data *td, struct io_u *io_u);
+
+/*
+ * Determine whether a given io_u should be logged for verify or
+ * for discard
+ */
+static inline void remove_trim_entry(struct thread_data *td, struct io_piece *ipo)
+{
+ if (!flist_empty(&ipo->trim_list)) {
+ flist_del_init(&ipo->trim_list);
+ td->trim_entries--;
+ }
+}
+
+#else
+static inline int get_next_trim(struct thread_data *td, struct io_u *io_u)
+{
+ return 1;
+}
+static inline int io_u_should_trim(struct thread_data *td, struct io_u *io_u)
+{
+ return 0;
+}
+static inline void remove_trim_entry(struct thread_data *td, struct io_piece *ipo)
+{
+}
+#error foo
+#endif
+
+#endif