[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ea11fea31001182040o855c362j1da8fcdc24c5dfe9@mail.gmail.com>
Date: Tue, 19 Jan 2010 10:10:54 +0530
From: Manish Katiyar <mkatiyar@...il.com>
To: Akira Fujita <a-fujita@...jp.nec.com>
Cc: ext4 <linux-ext4@...r.kernel.org>
Subject: Re: [PATCH] e4defrag : Open the source file for e4defrag in read
write mode to avoid failures from EXT4_IOC_EXT_MOVE
2010/1/19 Akira Fujita <a-fujita@...jp.nec.com>:
>
> Hi Manish,
>
> (2010/01/19 13:21), Manish Katiyar wrote:
>> Hi Akira,
>>
>> I am consistently getting -EBADF while trying out e4defrag and it
>> fails with below error.
>>
>> /home/mkatiyar/e2fs-git/e2fsprogs/misc> ./e4defrag -v /tmp/ohsm/mntdir/f1
>> ext4 defragmentation for /tmp/ohsm/mntdir/f1
>> [1/1]/tmp/ohsm/mntdir/f1: 0%
>> Failed to defrag:Bad file descriptor [ NG ]
>> Success: [0/1]
>>
>> Below patch fixes the issue for me, though I am not sure if this is
>> the right fix to open the source file in readwrite mode or fix the
>> ext4 ioctl part.
>>
>
> Patch looks good to me.
> # I send same patch to Ted last month, but it is not on linux-ext4, sorry.
>
> By commit 4a58579b9e4e2a35d57e6c9c8483e52f6f1b7fd6 of Linus' kernel tree,
> rw mode check was added to EXT4_IOC_MOVE_EXTENT.
> But command patch which corresponds to this change
> has not been merged into e2fsprogs.
> So this change is needed to run e4defrag command on current Linux kernel.
Ohh okie... Thanks a lot for the prompt response :-)
Thanks -
Manish
>
> Regards,
> Akira Fujita
>
>
>> Open the source file in read write mode to avoid failures from EXT4_IOC_EXT_MOVE
>>
>> Signed-off-by: Manish Katiyar<mkatiyar@...il.com>
>> ---
>> misc/e4defrag.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/misc/e4defrag.c b/misc/e4defrag.c
>> index 82e3868..424e0ca 100644
>> --- a/misc/e4defrag.c
>> +++ b/misc/e4defrag.c
>> @@ -1605,7 +1605,7 @@ static int file_defrag(const char *file, const
>> struct stat64 *buf,
>> return 0;
>> }
>>
>> - fd = open64(file, O_RDONLY);
>> + fd = open64(file, O_RDWR);
>> if (fd< 0) {
>> if (mode_flag& DETAIL) {
>> PRINT_FILE_NAME(file);
>
>
>
--
Thanks -
Manish
==================================
[$\*.^ -- I miss being one of them
==================================
--
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