return err;
}
-static int wrapfs_getattr(struct vfsmount *mnt, struct dentry *dentry,
- struct kstat *stat)
+static int wrapfs_getattr(const struct path *path, struct kstat *stat,
+ u32 request_mask, unsigned int flags)
{
int err;
+ struct dentry *dentry = path->dentry;
struct kstat lower_stat;
struct path lower_path;
wrapfs_get_lower_path(dentry, &lower_path);
- err = vfs_getattr(&lower_path, &lower_stat, STATX_TYPE, AT_STATX_SYNC_AS_STAT);
+ err = vfs_getattr(&lower_path, &lower_stat, request_mask, flags);
if (err)
goto out;
fsstack_copy_attr_all(d_inode(dentry),
#include "wrapfs.h"
-static int wrapfs_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+static int wrapfs_fault(struct vm_fault *vmf)
{
int err;
+ struct vm_area_struct *vma = vmf->vma;
struct file *file, *lower_file;
const struct vm_operations_struct *lower_vm_ops;
struct vm_area_struct lower_vma;
* take an explicit file pointer.
*/
lower_vma.vm_file = lower_file;
- err = lower_vm_ops->fault(/*&lower_vma, */vmf);
+ err = lower_vm_ops->fault(vmf);
return err;
}
-static int wrapfs_page_mkwrite(struct vm_area_struct *vma,
- struct vm_fault *vmf)
+static int wrapfs_page_mkwrite(struct vm_fault *vmf)
{
int err = 0;
+ struct vm_area_struct *vma = vmf->vma;
struct file *file, *lower_file;
const struct vm_operations_struct *lower_vm_ops;
struct vm_area_struct lower_vma;
* ->page_mkwrite to take an explicit file pointer.
*/
lower_vma.vm_file = lower_file;
- err = lower_vm_ops->page_mkwrite(/*&lower_vma, */vmf);
+ err = lower_vm_ops->page_mkwrite(vmf);
out:
return err;
}