diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/vfs_compat.h | 12 | ||||
-rw-r--r-- | include/sys/zpl.h | 4 |
2 files changed, 14 insertions, 2 deletions
diff --git a/include/linux/vfs_compat.h b/include/linux/vfs_compat.h index 820647d39..8a64cabef 100644 --- a/include/linux/vfs_compat.h +++ b/include/linux/vfs_compat.h @@ -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) { diff --git a/include/sys/zpl.h b/include/sys/zpl.h index c6085481b..386cf6d09 100644 --- a/include/sys/zpl.h +++ b/include/sys/zpl.h @@ -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 |