f2fs: allocate trace path buffer from names_cache
It would be better to use the dedicated slab to store path. Signed-off-by: Wu Bo <bo.wu@vivo.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
c1660d88a0
commit
5584785080
|
@ -3347,6 +3347,19 @@ static inline void *f2fs_kmalloc(struct f2fs_sb_info *sbi,
|
||||||
return kmalloc(size, flags);
|
return kmalloc(size, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void *f2fs_getname(struct f2fs_sb_info *sbi)
|
||||||
|
{
|
||||||
|
if (time_to_inject(sbi, FAULT_KMALLOC))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return __getname();
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void f2fs_putname(char *buf)
|
||||||
|
{
|
||||||
|
__putname(buf);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void *f2fs_kzalloc(struct f2fs_sb_info *sbi,
|
static inline void *f2fs_kzalloc(struct f2fs_sb_info *sbi,
|
||||||
size_t size, gfp_t flags)
|
size_t size, gfp_t flags)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4372,7 +4372,7 @@ static void f2fs_trace_rw_file_path(struct kiocb *iocb, size_t count, int rw)
|
||||||
struct inode *inode = file_inode(iocb->ki_filp);
|
struct inode *inode = file_inode(iocb->ki_filp);
|
||||||
char *buf, *path;
|
char *buf, *path;
|
||||||
|
|
||||||
buf = f2fs_kmalloc(F2FS_I_SB(inode), PATH_MAX, GFP_KERNEL);
|
buf = f2fs_getname(F2FS_I_SB(inode));
|
||||||
if (!buf)
|
if (!buf)
|
||||||
return;
|
return;
|
||||||
path = dentry_path_raw(file_dentry(iocb->ki_filp), buf, PATH_MAX);
|
path = dentry_path_raw(file_dentry(iocb->ki_filp), buf, PATH_MAX);
|
||||||
|
@ -4385,7 +4385,7 @@ static void f2fs_trace_rw_file_path(struct kiocb *iocb, size_t count, int rw)
|
||||||
trace_f2fs_dataread_start(inode, iocb->ki_pos, count,
|
trace_f2fs_dataread_start(inode, iocb->ki_pos, count,
|
||||||
current->pid, path, current->comm);
|
current->pid, path, current->comm);
|
||||||
free_buf:
|
free_buf:
|
||||||
kfree(buf);
|
f2fs_putname(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t f2fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
|
static ssize_t f2fs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
|
||||||
|
|
Loading…
Reference in New Issue