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
+12
View File
@@ -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)
{