Whamcloud - gitweb
Merge branch 'maint' into next
authorTheodore Ts'o <tytso@mit.edu>
Fri, 26 Dec 2014 04:43:10 +0000 (23:43 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 26 Dec 2014 04:43:10 +0000 (23:43 -0500)
Conflicts:
lib/ext2fs/inode.c

1  2 
lib/ext2fs/inode.c

@@@ -180,9 -148,13 +180,12 @@@ errcode_t ext2fs_open_inode_scan(ext2_f
                                                     scan->current_group);
        scan->inodes_left = EXT2_INODES_PER_GROUP(scan->fs->super);
        scan->blocks_left = scan->fs->inode_blocks_per_group;
 -      if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
 -                                     EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
 +      if (ext2fs_has_group_desc_csum(fs)) {
-               scan->inodes_left -=
-                       ext2fs_bg_itable_unused(fs, scan->current_group);
+               __u32 unused = ext2fs_bg_itable_unused(fs, scan->current_group);
+               if (scan->inodes_left > unused)
+                       scan->inodes_left -= unused;
+               else
+                       scan->inodes_left = 0;
                scan->blocks_left =
                        (scan->inodes_left +
                         (fs->blocksize / scan->inode_size - 1)) *
@@@ -273,9 -244,13 +276,12 @@@ static errcode_t get_next_blockgroup(ex
        scan->bytes_left = 0;
        scan->inodes_left = EXT2_INODES_PER_GROUP(fs->super);
        scan->blocks_left = fs->inode_blocks_per_group;
 -      if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
 -                                     EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
 +      if (ext2fs_has_group_desc_csum(fs)) {
-               scan->inodes_left -=
-                       ext2fs_bg_itable_unused(fs, scan->current_group);
+               __u32 unused = ext2fs_bg_itable_unused(fs, scan->current_group);
+               if (scan->inodes_left > unused)
+                       scan->inodes_left -= unused;
+               else
+                       scan->inodes_left = 0;
                scan->blocks_left =
                        (scan->inodes_left +
                         (fs->blocksize / scan->inode_size - 1)) *