Loading fs/f2fs/super.c +2 −0 Original line number Diff line number Diff line Loading @@ -1222,6 +1222,8 @@ static int __init init_f2fs_fs(void) { int err; f2fs_build_trace_ios(); err = init_inodecache(); if (err) goto fail; Loading fs/f2fs/trace.c +15 −3 Original line number Diff line number Diff line Loading @@ -15,7 +15,8 @@ #include "f2fs.h" #include "trace.h" RADIX_TREE(pids, GFP_NOIO); RADIX_TREE(pids, GFP_ATOMIC); spinlock_t pids_lock; struct last_io_info last_io; static inline void __print_last_io(void) Loading Loading @@ -58,9 +59,13 @@ void f2fs_trace_pid(struct page *page) page->private = pid; if (radix_tree_preload(GFP_NOFS)) return; spin_lock(&pids_lock); p = radix_tree_lookup(&pids, pid); if (p == current) return; goto out; if (p) radix_tree_delete(&pids, pid); Loading @@ -69,7 +74,9 @@ void f2fs_trace_pid(struct page *page) trace_printk("%3x:%3x %4x %-16s\n", MAJOR(inode->i_sb->s_dev), MINOR(inode->i_sb->s_dev), pid, current->comm); out: spin_unlock(&pids_lock); radix_tree_preload_end(); } void f2fs_trace_ios(struct page *page, struct f2fs_io_info *fio, int flush) Loading Loading @@ -108,3 +115,8 @@ void f2fs_trace_ios(struct page *page, struct f2fs_io_info *fio, int flush) last_io.len = 1; return; } void f2fs_build_trace_ios(void) { spin_lock_init(&pids_lock); } fs/f2fs/trace.h +2 −0 Original line number Diff line number Diff line Loading @@ -34,9 +34,11 @@ struct last_io_info { extern void f2fs_trace_pid(struct page *); extern void f2fs_trace_ios(struct page *, struct f2fs_io_info *, int); extern void f2fs_build_trace_ios(void); #else #define f2fs_trace_pid(p) #define f2fs_trace_ios(p, i, n) #define f2fs_build_trace_ios() #endif #endif /* __F2FS_TRACE_H__ */ Loading
fs/f2fs/super.c +2 −0 Original line number Diff line number Diff line Loading @@ -1222,6 +1222,8 @@ static int __init init_f2fs_fs(void) { int err; f2fs_build_trace_ios(); err = init_inodecache(); if (err) goto fail; Loading
fs/f2fs/trace.c +15 −3 Original line number Diff line number Diff line Loading @@ -15,7 +15,8 @@ #include "f2fs.h" #include "trace.h" RADIX_TREE(pids, GFP_NOIO); RADIX_TREE(pids, GFP_ATOMIC); spinlock_t pids_lock; struct last_io_info last_io; static inline void __print_last_io(void) Loading Loading @@ -58,9 +59,13 @@ void f2fs_trace_pid(struct page *page) page->private = pid; if (radix_tree_preload(GFP_NOFS)) return; spin_lock(&pids_lock); p = radix_tree_lookup(&pids, pid); if (p == current) return; goto out; if (p) radix_tree_delete(&pids, pid); Loading @@ -69,7 +74,9 @@ void f2fs_trace_pid(struct page *page) trace_printk("%3x:%3x %4x %-16s\n", MAJOR(inode->i_sb->s_dev), MINOR(inode->i_sb->s_dev), pid, current->comm); out: spin_unlock(&pids_lock); radix_tree_preload_end(); } void f2fs_trace_ios(struct page *page, struct f2fs_io_info *fio, int flush) Loading Loading @@ -108,3 +115,8 @@ void f2fs_trace_ios(struct page *page, struct f2fs_io_info *fio, int flush) last_io.len = 1; return; } void f2fs_build_trace_ios(void) { spin_lock_init(&pids_lock); }
fs/f2fs/trace.h +2 −0 Original line number Diff line number Diff line Loading @@ -34,9 +34,11 @@ struct last_io_info { extern void f2fs_trace_pid(struct page *); extern void f2fs_trace_ios(struct page *, struct f2fs_io_info *, int); extern void f2fs_build_trace_ios(void); #else #define f2fs_trace_pid(p) #define f2fs_trace_ios(p, i, n) #define f2fs_build_trace_ios() #endif #endif /* __F2FS_TRACE_H__ */