Use file_dentry and file_inode wrappers

Fix bugs due to kernel change in torvalds/linux@4bacc9c923 ("overlayfs:
Make f_path always point to the overlay and f_inode to the underlay").

This problem crashes system when use zfs as a layer of overlayfs.

Signed-off-by: Chen Haiquan <oc@yunify.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #4914
Closes #4935
This commit is contained in:
Chen Haiquan
2016-08-04 23:57:35 +08:00
committed by Brian Behlendorf
parent d5884c3453
commit d9c97ec08b
6 changed files with 41 additions and 9 deletions
+2 -2
View File
@@ -156,14 +156,14 @@ static inline bool
dir_emit_dot(struct file *file, struct dir_context *ctx)
{
return (ctx->actor(ctx->dirent, ".", 1, ctx->pos,
file->f_path.dentry->d_inode->i_ino, DT_DIR) == 0);
file_inode(file)->i_ino, DT_DIR) == 0);
}
static inline bool
dir_emit_dotdot(struct file *file, struct dir_context *ctx)
{
return (ctx->actor(ctx->dirent, "..", 2, ctx->pos,
parent_ino(file->f_path.dentry), DT_DIR) == 0);
parent_ino(file_dentry(file)), DT_DIR) == 0);
}
static inline bool