lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 14 Oct 2011 17:49:34 +0200
From:	Lukas Czerner <lczerner@...hat.com>
To:	linux-ext4@...r.kernel.org
Cc:	tytso@....edu, xiaoqiangnk@...il.com,
	Lukas Czerner <lczerner@...hat.com>
Subject: [PATCH] resize: Do not fail if EXT4_IOC_RESIZE_FS ioctl doesn't exist

Commit 9f6ba888f027ba4daf57ac61a11a6dce98e42347 added support for new
online resize ioctl EXT4_IOC_RESIZE_FS. It is also trying to avoid
failure when this ioctl() is not supported by the kernel however
it is checking wrong error code (EINVAL).

When the ioctl does not exist, errno is set to ENOTTY, so we should
check for that, rather than EINVAL which means that ioctl arguments
are not valid. So change the code to check for ENOTTY and allow
resize2fs to try to use the old approach. Also add some comments.

Signed-off-by: Lukas Czerner <lczerner@...hat.com>
---

Btw I can not find the new kernel code anywhere. It is not in Linus tree,
it also is not in the github ext4 master, nor dev tree. Where it is then ?
The problem is that the recent released e2fsprogs are broken for all
kernels. To be more specific, resize2fs is broken for all kernels.


 resize/online.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/resize/online.c b/resize/online.c
index 77290c2..1a77839 100644
--- a/resize/online.c
+++ b/resize/online.c
@@ -72,7 +72,12 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
 	}
 
 	if (ioctl(fd, EXT4_IOC_RESIZE_FS, new_size)) {
-		if (errno != EINVAL) {
+		/*
+		 * If kernel does not support EXT4_IOC_RESIZE_FS, use the
+		 * old online resize. Note that the old approach does not
+		 * handle >32 bit file systems
+		 */
+		if (errno != ENOTTY) {
 			if (errno == EPERM)
 				com_err(program_name, 0,
 				_("Permission denied to resize filesystem"));
-- 
1.7.4.4

--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ