Merge tag 'ecryptfs-4.0-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / mm / fadvise.c
index fac23ecf8d7229eb0de2a2292f44e4cfcbe88c6f..4a3907cf79f89ac934331006b05636da20d8f319 100644 (file)
@@ -28,6 +28,7 @@
 SYSCALL_DEFINE4(fadvise64_64, int, fd, loff_t, offset, loff_t, len, int, advice)
 {
        struct fd f = fdget(fd);
+       struct inode *inode;
        struct address_space *mapping;
        struct backing_dev_info *bdi;
        loff_t endbyte;                 /* inclusive */
@@ -39,7 +40,8 @@ SYSCALL_DEFINE4(fadvise64_64, int, fd, loff_t, offset, loff_t, len, int, advice)
        if (!f.file)
                return -EBADF;
 
-       if (S_ISFIFO(file_inode(f.file)->i_mode)) {
+       inode = file_inode(f.file);
+       if (S_ISFIFO(inode->i_mode)) {
                ret = -ESPIPE;
                goto out;
        }
@@ -50,7 +52,7 @@ SYSCALL_DEFINE4(fadvise64_64, int, fd, loff_t, offset, loff_t, len, int, advice)
                goto out;
        }
 
-       if (mapping->a_ops->get_xip_mem) {
+       if (IS_DAX(inode)) {
                switch (advice) {
                case POSIX_FADV_NORMAL:
                case POSIX_FADV_RANDOM: