2021-08-30 10:06:05

by Denis Efremov

[permalink] [raw]
Subject: [PATCH] ext4: change EXT4_IOC_GETSTATE ioctl to _IOR

EXT4_IOC_GETSTATE is only used to read the state flags from the kernel.

Fixes: 1ad3ea6e0a69 ("ext4: add a new ioctl EXT4_IOC_GETSTATE")
Signed-off-by: Denis Efremov <[email protected]>
---
fs/ext4/ext4.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 3c51e243450d..244b4dd193d3 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -718,7 +718,7 @@ enum {
#define EXT4_IOC_PRECACHE_EXTENTS _IO('f', 18)
/* ioctl codes 19--39 are reserved for fscrypt */
#define EXT4_IOC_CLEAR_ES_CACHE _IO('f', 40)
-#define EXT4_IOC_GETSTATE _IOW('f', 41, __u32)
+#define EXT4_IOC_GETSTATE _IOR('f', 41, __u32)
#define EXT4_IOC_GET_ES_CACHE _IOWR('f', 42, struct fiemap)
#define EXT4_IOC_CHECKPOINT _IOW('f', 43, __u32)

--
2.31.1


2021-08-30 12:06:29

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] ext4: change EXT4_IOC_GETSTATE ioctl to _IOR

On Mon, Aug 30, 2021 at 01:05:08PM +0300, Denis Efremov wrote:
> EXT4_IOC_GETSTATE is only used to read the state flags from the kernel.
>
> Fixes: 1ad3ea6e0a69 ("ext4: add a new ioctl EXT4_IOC_GETSTATE")
> Signed-off-by: Denis Efremov <[email protected]>

NACK. This will break ABI compatibility, which is way important than
getting the ioctl encoding incorrect.

If you really care, I suppose we could add an EXT4_IOC_GETSTATE_OLD
for the old value, and then support EXT4_IOC_GETSTATE and
EXT4_IOC_GETSTATE_OLD for a decade or two until all of the binaries in
the world get recompiled.

Is it worth it? Eh....

- Ted