arm: rockchip: rk3228: dts: add DMAC support
[firefly-linux-kernel-4.4.55.git] / fs / direct-io.c
index 6e5dd6f5df1a096b9dd55ab486b080314e9114da..08a8c037396252df1ef279c984b144a27c75ab3f 100644 (file)
@@ -262,7 +262,9 @@ static ssize_t dio_complete(struct dio *dio, loff_t offset, ssize_t ret, bool is
                dio->end_io(dio->iocb, offset, transferred,
                            dio->private, ret, is_async);
        } else {
-               inode_dio_done(dio->inode);
+               if (!(dio->flags & DIO_SKIP_DIO_COUNT))
+                       inode_dio_end(dio->inode);
+
                if (is_async)
                        aio_complete(dio->iocb, ret, 0);
        }
@@ -1135,7 +1137,8 @@ do_blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode,
        /*
         * Will be decremented at I/O completion time.
         */
-       atomic_inc(&inode->i_dio_count);
+       if (!(dio->flags & DIO_SKIP_DIO_COUNT))
+               inode_dio_begin(inode);
 
        /*
         * For file extending writes updating i_size before data