diff mbox

[1/5] e4defrag: return more specific error message on ioctl failure

Message ID 4A63F1BD.5080508@gmail.com
State Accepted, archived
Headers show

Commit Message

Peng Tao July 20, 2009, 4:25 a.m. UTC
Eric Sandeen wrote:
> Peng Tao wrote:
>> Currently e4defrag relies on the EXT4_IOC_MOVE_EXT ioctl to perform online
>> defragmentation. However, this iotcl kernel patch is not available before
>> 2.6.30-rc1. e4defrag shall fail without obvious reasons on systems running
>> older kernels. The patch adds more detailed error message addressing this
>> issue and prompts users with the minimal kernel version that is needed to
>> run e4defrag.
>>
>> Signed-off-by: Peng Tao <bergwolf@gmail.com>
>> ---
>>  misc/e4defrag.c |    6 +++++-
>>  1 files changed, 5 insertions(+), 1 deletions(-)
>>
>> diff --git a/misc/e4defrag.c b/misc/e4defrag.c
>> index c25514a..f1c3008 100644
>> --- a/misc/e4defrag.c
>> +++ b/misc/e4defrag.c
>> @@ -1553,7 +1553,11 @@ static int call_defrag(int fd, int donor_fd, const char *file,
>>  			if (mode_flag & DETAIL) {
>>  				printf("\n");
>>  				PRINT_ERR_MSG_WITH_ERRNO(
>> -						"Failed to defrag");
>> +					"Failed to defrag with "
>> +					"EXT4_IOC_MOVE_EXT ioctl");
>> +				if (errno == ENOTTY)
>> +					printf("\tAt least 2.6.31-rc1 of"
>> +						" vallina kernel is required\n");
> 
> Typo here, s/b "vanilla"
> 
> -Eric
Hi, Eric
Thank your for your reviewing. Revised the patch:

From d56fcfae01c3b0c4963c0ec75ffa654e70086a57 Mon Sep 17 00:00:00 2001
From: Peng Tao <bergwolf@gmail.com>
Date: Mon, 20 Jul 2009 12:11:01 +0800
Subject: [PATCH] e4defrag: return more specific error message on ioctl failure

Currently e4defrag relies on the EXT4_IOC_MOVE_EXT ioctl to perform online
defragmentation. However, this iotcl kernel patch is not available before
2.6.30-rc1. e4defrag shall fail without obvious reasons on systems running
older kernels. The patch adds more detailed error message addressing this
issue and prompts users with the minimal kernel version that is needed to
run e4defrag.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
---
 misc/e4defrag.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
diff mbox

Patch

diff --git a/misc/e4defrag.c b/misc/e4defrag.c
index c25514a..eff6ed9 100644
--- a/misc/e4defrag.c
+++ b/misc/e4defrag.c
@@ -1553,7 +1553,11 @@  static int call_defrag(int fd, int donor_fd, const char *file,
 			if (mode_flag & DETAIL) {
 				printf("\n");
 				PRINT_ERR_MSG_WITH_ERRNO(
-						"Failed to defrag");
+					"Failed to defrag with "
+					"EXT4_IOC_MOVE_EXT ioctl");
+				if (errno == ENOTTY)
+					printf("\tAt least 2.6.31-rc1 of "
+						"vanilla kernel is required\n");
 			} else {
 				printf("\t[ NG ]\n");
 			}