Linux-libre 5.4.49-gnu
[librecmc/linux-libre.git] / fs / f2fs / trace.h
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * f2fs IO tracer
4  *
5  * Copyright (c) 2014 Motorola Mobility
6  * Copyright (c) 2014 Jaegeuk Kim <jaegeuk@kernel.org>
7  */
8 #ifndef __F2FS_TRACE_H__
9 #define __F2FS_TRACE_H__
10
11 #ifdef CONFIG_F2FS_IO_TRACE
12 #include <trace/events/f2fs.h>
13
14 enum file_type {
15         __NORMAL_FILE,
16         __DIR_FILE,
17         __NODE_FILE,
18         __META_FILE,
19         __ATOMIC_FILE,
20         __VOLATILE_FILE,
21         __MISC_FILE,
22 };
23
24 struct last_io_info {
25         int major, minor;
26         pid_t pid;
27         enum file_type type;
28         struct f2fs_io_info fio;
29         block_t len;
30 };
31
32 extern void f2fs_trace_pid(struct page *);
33 extern void f2fs_trace_ios(struct f2fs_io_info *, int);
34 extern void f2fs_build_trace_ios(void);
35 extern void f2fs_destroy_trace_ios(void);
36 #else
37 #define f2fs_trace_pid(p)
38 #define f2fs_trace_ios(i, n)
39 #define f2fs_build_trace_ios()
40 #define f2fs_destroy_trace_ios()
41
42 #endif
43 #endif /* __F2FS_TRACE_H__ */