2010/1/19 Akira Fujita <a-fujita@xxxxxxxxxxxxx>: > > 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@xxxxxxxxx> >> --- >> 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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html