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);
}
/*
* 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