Whamcloud - gitweb
resize2fs: add support for new in-kernel online resize ioctl
[tools/e2fsprogs.git] / resize / online.c
index 1d8d4ec..1b3589b 100644 (file)
@@ -51,7 +51,7 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
                                  fs->super->s_first_data_block,
                                  EXT2_BLOCKS_PER_GROUP(fs->super)),
                EXT2_DESC_PER_BLOCK(fs->super));
-       printf("old desc_blocks = %lu, new_desc_blocks = %lu\n",
+       printf("old_desc_blocks = %lu, new_desc_blocks = %lu\n",
               fs->desc_blocks, new_desc_blocks);
        if (!(fs->super->s_feature_compat &
              EXT2_FEATURE_COMPAT_RESIZE_INODE) &&
@@ -69,6 +69,23 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
        }
 
        size=ext2fs_blocks_count(sb);
+
+       if (ioctl(fd, EXT4_IOC_RESIZE_FS, new_size)) {
+               if (errno != ENOTTY) {
+                       if (errno == EPERM)
+                               com_err(program_name, 0,
+                               _("Permission denied to resize filesystem"));
+                       else
+                               com_err(program_name, errno,
+                               _("While checking for on-line resizing "
+                                 "support"));
+                       exit(1);
+               }
+       } else {
+               close(fd);
+               return 0;
+       }
+
        if (ioctl(fd, EXT2_IOC_GROUP_EXTEND, &size)) {
                if (errno == EPERM)
                        com_err(program_name, 0,