extents.c (0d9c2ff1c9f7f8b339fc42ac9763b28c71f1c115) | extents.c (51e3ae81ec58e95f10a98ef3dd6d7bce5d8e35a2) |
---|---|
1/* 2 * Copyright (c) 2003-2006, Cluster File Systems, Inc, info@clusterfs.com 3 * Written by Alex Tomas <alex@clusterfs.com> 4 * 5 * Architecture independence: 6 * Copyright (c) 2005, Bull S.A. 7 * Written by Pierre Peiffer <pierre.peiffer@bull.net> 8 * --- 4780 unchanged lines hidden (view full) --- 4789 * Indirect files do not support unwritten extnets 4790 */ 4791 if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) { 4792 ret = -EOPNOTSUPP; 4793 goto out_mutex; 4794 } 4795 4796 if (!(mode & FALLOC_FL_KEEP_SIZE) && | 1/* 2 * Copyright (c) 2003-2006, Cluster File Systems, Inc, info@clusterfs.com 3 * Written by Alex Tomas <alex@clusterfs.com> 4 * 5 * Architecture independence: 6 * Copyright (c) 2005, Bull S.A. 7 * Written by Pierre Peiffer <pierre.peiffer@bull.net> 8 * --- 4780 unchanged lines hidden (view full) --- 4789 * Indirect files do not support unwritten extnets 4790 */ 4791 if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) { 4792 ret = -EOPNOTSUPP; 4793 goto out_mutex; 4794 } 4795 4796 if (!(mode & FALLOC_FL_KEEP_SIZE) && |
4797 offset + len > i_size_read(inode)) { | 4797 (offset + len > i_size_read(inode) || 4798 offset + len > EXT4_I(inode)->i_disksize)) { |
4798 new_size = offset + len; 4799 ret = inode_newsize_ok(inode, new_size); 4800 if (ret) 4801 goto out_mutex; 4802 } 4803 4804 flags = EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT; 4805 if (mode & FALLOC_FL_KEEP_SIZE) --- 154 unchanged lines hidden (view full) --- 4960 * We only support preallocation for extent-based files only 4961 */ 4962 if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) { 4963 ret = -EOPNOTSUPP; 4964 goto out; 4965 } 4966 4967 if (!(mode & FALLOC_FL_KEEP_SIZE) && | 4799 new_size = offset + len; 4800 ret = inode_newsize_ok(inode, new_size); 4801 if (ret) 4802 goto out_mutex; 4803 } 4804 4805 flags = EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT; 4806 if (mode & FALLOC_FL_KEEP_SIZE) --- 154 unchanged lines hidden (view full) --- 4961 * We only support preallocation for extent-based files only 4962 */ 4963 if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) { 4964 ret = -EOPNOTSUPP; 4965 goto out; 4966 } 4967 4968 if (!(mode & FALLOC_FL_KEEP_SIZE) && |
4968 offset + len > i_size_read(inode)) { | 4969 (offset + len > i_size_read(inode) || 4970 offset + len > EXT4_I(inode)->i_disksize)) { |
4969 new_size = offset + len; 4970 ret = inode_newsize_ok(inode, new_size); 4971 if (ret) 4972 goto out; 4973 } 4974 4975 /* Wait all existing dio workers, newcomers will block on i_mutex */ 4976 ext4_inode_block_unlocked_dio(inode); --- 973 unchanged lines hidden --- | 4971 new_size = offset + len; 4972 ret = inode_newsize_ok(inode, new_size); 4973 if (ret) 4974 goto out; 4975 } 4976 4977 /* Wait all existing dio workers, newcomers will block on i_mutex */ 4978 ext4_inode_block_unlocked_dio(inode); --- 973 unchanged lines hidden --- |