port wrapfs to 4.20
authorroot <root@dhcp249.fsl.cs.sunysb.edu>
Fri, 1 Feb 2019 05:20:58 +0000 (00:20 -0500)
committerroot <root@dhcp249.fsl.cs.sunysb.edu>
Fri, 1 Feb 2019 05:20:58 +0000 (00:20 -0500)
fs/wrapfs/file.c
fs/wrapfs/inode.c
fs/wrapfs/lookup.c
fs/wrapfs/mmap.c
fs/wrapfs/super.c

index 9f0541634910ae2fb626a41ae5eec3168f1ca0f9..8583d6f4baed2c226612d288fbc686d7439125b4 100644 (file)
@@ -19,7 +19,7 @@ static ssize_t wrapfs_read(struct file *file, char __user *buf,
        struct dentry *dentry = file->f_path.dentry;
 
        lower_file = wrapfs_lower_file(file);
-       err = vfs_read(lower_file, buf, count, ppos);
+       err = kernel_read(lower_file, buf, count, ppos);
        /* update our inode atime upon a successful lower read */
        if (err >= 0)
                fsstack_copy_attr_atime(d_inode(dentry),
@@ -37,7 +37,7 @@ static ssize_t wrapfs_write(struct file *file, const char __user *buf,
        struct dentry *dentry = file->f_path.dentry;
 
        lower_file = wrapfs_lower_file(file);
-       err = vfs_write(lower_file, buf, count, ppos);
+       err = kernel_write(lower_file, buf, count, ppos);
        /* update our inode times+sizes upon a successful lower write */
        if (err >= 0) {
                fsstack_copy_inode_size(d_inode(dentry),
index 1b7b1c845095afa6fe3c0cc6cad59e2cb784bcc5..b7ee788a72a119258f4528115bb094f206d55f11 100644 (file)
@@ -435,15 +435,16 @@ out_err:
        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);
+       err = vfs_getattr(&lower_path, &lower_stat, request_mask, flags);
        if (err)
                goto out;
        fsstack_copy_attr_all(d_inode(dentry),
index bf86f4daa8ce02bff93aae95f15a6ed2aec32609..237ae60c65c2c17c7fc4f9532028aad03a9d67e9 100644 (file)
@@ -102,7 +102,7 @@ struct inode *wrapfs_iget(struct super_block *sb, struct inode *lower_inode)
        inode->i_ino = lower_inode->i_ino;
        wrapfs_set_lower_inode(inode, lower_inode);
 
-       inode->i_version++;
+       atomic64_inc(&inode->i_version);
 
        /* use different set of inode ops for symlinks & directories */
        if (S_ISDIR(lower_inode->i_mode))
index d139c2547f9e4480c5757ea909f93b0ae762e143..419c403e2c69b1ab87426d5ca0d2d67885d53c34 100644 (file)
 
 #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;
@@ -35,14 +36,14 @@ static int wrapfs_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
         * 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;
@@ -67,7 +68,7 @@ static int wrapfs_page_mkwrite(struct vm_area_struct *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;
 }
index a17fef986181e13eb179a6f401fe353045754e40..871ed6d37295139095a9a834639cb1fe7d1c935a 100644 (file)
@@ -105,7 +105,7 @@ static struct inode *wrapfs_alloc_inode(struct super_block *sb)
        /* memset everything up to the inode to 0 */
        memset(i, 0, offsetof(struct wrapfs_inode_info, vfs_inode));
 
-       i->vfs_inode.i_version = 1;
+        atomic64_set(&i->vfs_inode.i_version, 1);
        return &i->vfs_inode;
 }
 
@@ -161,7 +161,6 @@ const struct super_operations wrapfs_sops = {
        .remount_fs     = wrapfs_remount_fs,
        .evict_inode    = wrapfs_evict_inode,
        .umount_begin   = wrapfs_umount_begin,
-       .show_options   = generic_show_options,
        .alloc_inode    = wrapfs_alloc_inode,
        .destroy_inode  = wrapfs_destroy_inode,
        .drop_inode     = generic_delete_inode,