mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 02:44:41 +03:00
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:
committed by
Brian Behlendorf
parent
d5884c3453
commit
d9c97ec08b
@@ -352,6 +352,18 @@ static inline struct inode *file_inode(const struct file *f)
|
||||
}
|
||||
#endif /* HAVE_FILE_INODE */
|
||||
|
||||
/*
|
||||
* 4.1 API change
|
||||
* struct access file->f_path.dentry was replaced by accessor function
|
||||
* file_dentry(f)
|
||||
*/
|
||||
#ifndef HAVE_FILE_DENTRY
|
||||
static inline struct dentry *file_dentry(const struct file *f)
|
||||
{
|
||||
return (f->f_path.dentry);
|
||||
}
|
||||
#endif /* HAVE_FILE_DENTRY */
|
||||
|
||||
#ifdef HAVE_KUID_HELPERS
|
||||
static inline uid_t zfs_uid_read_impl(struct inode *ip)
|
||||
{
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user