aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk.kim@samsung.com>2013-04-25 13:24:33 +0900
committerJaegeuk Kim <jaegeuk.kim@samsung.com>2013-04-29 10:52:01 +0900
commitd70b4f53b950676228297f0b204f2e1512c1ff6c (patch)
tree1996ac697866902378e357a52bd54eb7fd1fe0b4
parentf2fs: check nid == 0 in add_free_nid (diff)
downloadlinux-dev-d70b4f53b950676228297f0b204f2e1512c1ff6c.tar.xz
linux-dev-d70b4f53b950676228297f0b204f2e1512c1ff6c.zip
f2fs: add a tracepoint on f2fs_new_inode
This can help when debugging the free nid allocation flows. Reviewed-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
-rw-r--r--fs/f2fs/namei.c3
-rw-r--r--include/trace/events/f2fs.h7
2 files changed, 9 insertions, 1 deletions
diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index c57fd18b769d..4aa26e53c935 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -63,7 +63,7 @@ static struct inode *f2fs_new_inode(struct inode *dir, umode_t mode)
nid_free = true;
goto out;
}
-
+ trace_f2fs_new_inode(inode, 0);
mark_inode_dirty(inode);
return inode;
@@ -71,6 +71,7 @@ out:
clear_nlink(inode);
unlock_new_inode(inode);
fail:
+ trace_f2fs_new_inode(inode, err);
iput(inode);
if (nid_free)
alloc_nid_failed(sbi, ino);
diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
index b2b2f72a023d..52ae54828eda 100644
--- a/include/trace/events/f2fs.h
+++ b/include/trace/events/f2fs.h
@@ -197,6 +197,13 @@ DEFINE_EVENT(f2fs__inode, f2fs_evict_inode,
TP_ARGS(inode)
);
+DEFINE_EVENT(f2fs__inode_exit, f2fs_new_inode,
+
+ TP_PROTO(struct inode *inode, int ret),
+
+ TP_ARGS(inode, ret)
+);
+
TRACE_EVENT(f2fs_unlink_enter,
TP_PROTO(struct inode *dir, struct dentry *dentry),