GNU Linux-libre 4.9.308-gnu1
[releases.git] / fs / f2fs / trace.h
1 /*
2  * f2fs IO tracer
3  *
4  * Copyright (c) 2014 Motorola Mobility
5  * Copyright (c) 2014 Jaegeuk Kim <jaegeuk@kernel.org>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation.
10  */
11 #ifndef __F2FS_TRACE_H__
12 #define __F2FS_TRACE_H__
13
14 #ifdef CONFIG_F2FS_IO_TRACE
15 #include <trace/events/f2fs.h>
16
17 enum file_type {
18         __NORMAL_FILE,
19         __DIR_FILE,
20         __NODE_FILE,
21         __META_FILE,
22         __ATOMIC_FILE,
23         __VOLATILE_FILE,
24         __MISC_FILE,
25 };
26
27 struct last_io_info {
28         int major, minor;
29         pid_t pid;
30         enum file_type type;
31         struct f2fs_io_info fio;
32         block_t len;
33 };
34
35 extern void f2fs_trace_pid(struct page *);
36 extern void f2fs_trace_ios(struct f2fs_io_info *, int);
37 extern void f2fs_build_trace_ios(void);
38 extern void f2fs_destroy_trace_ios(void);
39 #else
40 #define f2fs_trace_pid(p)
41 #define f2fs_trace_ios(i, n)
42 #define f2fs_build_trace_ios()
43 #define f2fs_destroy_trace_ios()
44
45 #endif
46 #endif /* __F2FS_TRACE_H__ */