indirect.c (a6cbcd4a4a85e2fdb0b3344b88df2e8b3d526b9e) indirect.c (31b140398ce56ab41646eda7f02bcb78d6a4c916)
1/*
2 * linux/fs/ext4/indirect.c
3 *
4 * from
5 *
6 * linux/fs/ext4/inode.c
7 *
8 * Copyright (C) 1992, 1993, 1994, 1995

--- 672 unchanged lines hidden (view full) ---

681 atomic_inc(&inode->i_dio_count);
682 smp_mb();
683 if (unlikely(ext4_test_inode_state(inode,
684 EXT4_STATE_DIOREAD_LOCK))) {
685 inode_dio_done(inode);
686 goto locked;
687 }
688 ret = __blockdev_direct_IO(rw, iocb, inode,
1/*
2 * linux/fs/ext4/indirect.c
3 *
4 * from
5 *
6 * linux/fs/ext4/inode.c
7 *
8 * Copyright (C) 1992, 1993, 1994, 1995

--- 672 unchanged lines hidden (view full) ---

681 atomic_inc(&inode->i_dio_count);
682 smp_mb();
683 if (unlikely(ext4_test_inode_state(inode,
684 EXT4_STATE_DIOREAD_LOCK))) {
685 inode_dio_done(inode);
686 goto locked;
687 }
688 ret = __blockdev_direct_IO(rw, iocb, inode,
689 inode->i_sb->s_bdev, iter->iov,
690 offset, iter->nr_segs,
689 inode->i_sb->s_bdev, iter, offset,
691 ext4_get_block, NULL, NULL, 0);
692 inode_dio_done(inode);
693 } else {
694locked:
690 ext4_get_block, NULL, NULL, 0);
691 inode_dio_done(inode);
692 } else {
693locked:
695 ret = blockdev_direct_IO(rw, iocb, inode, iter->iov,
696 offset, iter->nr_segs, ext4_get_block);
694 ret = blockdev_direct_IO(rw, iocb, inode, iter,
695 offset, ext4_get_block);
697
698 if (unlikely((rw & WRITE) && ret < 0)) {
699 loff_t isize = i_size_read(inode);
700 loff_t end = offset + count;
701
702 if (end > isize)
703 ext4_truncate_failed_write(inode);
704 }

--- 674 unchanged lines hidden ---
696
697 if (unlikely((rw & WRITE) && ret < 0)) {
698 loff_t isize = i_size_read(inode);
699 loff_t end = offset + count;
700
701 if (end > isize)
702 ext4_truncate_failed_write(inode);
703 }

--- 674 unchanged lines hidden ---