migrate.c (9f30a04d768f64280dc0c40b730746e82f298d88) migrate.c (e2b911c53584a92266943f3b7f2cdbc19c1a4e80)
1/*
2 * Copyright IBM Corporation, 2007
3 * Author Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2.1 of the GNU Lesser General Public License
7 * as published by the Free Software Foundation.
8 *

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

443 unsigned long max_entries;
444 __u32 goal;
445 uid_t owner[2];
446
447 /*
448 * If the filesystem does not support extents, or the inode
449 * already is extent-based, error out.
450 */
1/*
2 * Copyright IBM Corporation, 2007
3 * Author Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2.1 of the GNU Lesser General Public License
7 * as published by the Free Software Foundation.
8 *

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

443 unsigned long max_entries;
444 __u32 goal;
445 uid_t owner[2];
446
447 /*
448 * If the filesystem does not support extents, or the inode
449 * already is extent-based, error out.
450 */
451 if (!EXT4_HAS_INCOMPAT_FEATURE(inode->i_sb,
452 EXT4_FEATURE_INCOMPAT_EXTENTS) ||
451 if (!ext4_has_feature_extents(inode->i_sb) ||
453 (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)))
454 return -EINVAL;
455
456 if (S_ISLNK(inode->i_mode) && inode->i_blocks == 0)
457 /*
458 * don't migrate fast symlink
459 */
460 return retval;

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

620 struct ext4_inode_info *ei = EXT4_I(inode);
621 struct ext4_extent *ex;
622 unsigned int i, len;
623 ext4_lblk_t start, end;
624 ext4_fsblk_t blk;
625 handle_t *handle;
626 int ret;
627
452 (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)))
453 return -EINVAL;
454
455 if (S_ISLNK(inode->i_mode) && inode->i_blocks == 0)
456 /*
457 * don't migrate fast symlink
458 */
459 return retval;

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

619 struct ext4_inode_info *ei = EXT4_I(inode);
620 struct ext4_extent *ex;
621 unsigned int i, len;
622 ext4_lblk_t start, end;
623 ext4_fsblk_t blk;
624 handle_t *handle;
625 int ret;
626
628 if (!EXT4_HAS_INCOMPAT_FEATURE(inode->i_sb,
629 EXT4_FEATURE_INCOMPAT_EXTENTS) ||
627 if (!ext4_has_feature_extents(inode->i_sb) ||
630 (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)))
631 return -EINVAL;
632
628 (!ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)))
629 return -EINVAL;
630
633 if (EXT4_HAS_RO_COMPAT_FEATURE(inode->i_sb,
634 EXT4_FEATURE_RO_COMPAT_BIGALLOC))
631 if (ext4_has_feature_bigalloc(inode->i_sb))
635 return -EOPNOTSUPP;
636
637 /*
638 * In order to get correct extent info, force all delayed allocation
639 * blocks to be allocated, otherwise delayed allocation blocks may not
640 * be reflected and bypass the checks on extent header.
641 */
642 if (test_opt(inode->i_sb, DELALLOC))

--- 41 unchanged lines hidden ---
632 return -EOPNOTSUPP;
633
634 /*
635 * In order to get correct extent info, force all delayed allocation
636 * blocks to be allocated, otherwise delayed allocation blocks may not
637 * be reflected and bypass the checks on extent header.
638 */
639 if (test_opt(inode->i_sb, DELALLOC))

--- 41 unchanged lines hidden ---