[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAGBYx2YvZWy-ZXtXjMaZGV=ohON8RskjSdvskHTVGHvPqa-C2w@mail.gmail.com>
Date: Fri, 12 Aug 2011 16:43:24 +0800
From: Yongqiang Yang <xiaoqiangnk@...il.com>
To: Andreas Dilger <adilger@...ger.ca>
Cc: linux-ext4@...r.kernel.org, tytso@....edu
Subject: Re: [PATCH] e2fsprogs: add 64bit-online-resize support
On Thu, Aug 11, 2011 at 3:42 PM, Andreas Dilger <adilger@...ger.ca> wrote:
> On 2011-08-11, at 1:10 AM, Yongqiang Yang wrote:
>> This patch adds 64bit-resize support to e2fsprogs.
>>
>> Signed-off-by: Yongqiang Yang <xiaoqiangnk@...il.com>
>> ---
>> lib/ext2fs/ext2_fs.h | 1 +
>> resize/online.c | 22 +++++++++++++++++++++-
>> 2 files changed, 22 insertions(+), 1 deletions(-)
>>
>> diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h
>> index 54cb3d4..4fec5db 100644
>> --- a/lib/ext2fs/ext2_fs.h
>> +++ b/lib/ext2fs/ext2_fs.h
>> @@ -327,6 +327,7 @@ struct ext4_new_group_input {
>> #define EXT2_IOC_GROUP_EXTEND _IOW('f', 7, unsigned long)
>> #define EXT2_IOC_GROUP_ADD _IOW('f', 8,struct ext2_new_group_input)
>> #define EXT4_IOC_GROUP_ADD _IOW('f', 8,struct ext4_new_group_input)
>> +#define EXT4_IOC_RESIZE_FS _IOW('f', 16, __u64)
>>
>> /*
>> * Structure of an inode on the disk
>> diff --git a/resize/online.c b/resize/online.c
>> index 1d8d4ec..53ad852 100644
>> --- a/resize/online.c
>> +++ b/resize/online.c
>> @@ -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,26 @@ 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) {
>> + printf("Kernel does not support 64bit-online resizing, "
>> + "tring the old style online resizing\n");
>
> s/tring/trying/
>
> In any case, I don't think users care about which ioctl is in use, just
> that it works correctly on the kernel they are using. IMHO it should just
> silently try both ioctls() without any extra warnings.
Thanks, it will be fixed.
Yongqiang.
>
>> + } else {
>> + 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,
>> --
>> 1.7.5.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
>> the body of a message to majordomo@...r.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
> Cheers, Andreas
>
>
>
>
>
>
--
Best Wishes
Yongqiang Yang
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists