From: Christoph Hellwig <hch@infradead.org>
To: Christian Brauner <brauner@kernel.org>
Cc: Arnd Bergmann <arnd@kernel.org>,
linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org,
Anuj Gupta <anuj20.g@samsung.com>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Kanchan Joshi <joshi.k@samsung.com>,
ltp@lists.linux.it, dan.carpenter@linaro.org,
benjamin.copeland@linaro.org, rbm@suse.com,
Arnd Bergmann <arnd@arndb.de>,
Naresh Kamboju <naresh.kamboju@linaro.org>,
Anders Roxell <anders.roxell@linaro.org>,
Jens Axboe <axboe@kernel.dk>,
Pavel Begunkov <asml.silence@gmail.com>,
Alexey Dobriyan <adobriyan@gmail.com>,
"Darrick J. Wong" <djwong@kernel.org>,
Eric Biggers <ebiggers@google.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] block: fix FS_IOC_GETLBMD_CAP parsing in blkdev_common_ioctl()
Date: Thu, 10 Jul 2025 01:14:33 -0700 [thread overview]
Message-ID: <aG92abpCeyML01E1@infradead.org> (raw)
In-Reply-To: <20250710-passen-petersilie-32f6f1e9a1fc@brauner>
On Thu, Jul 10, 2025 at 10:00:48AM +0200, Christian Brauner wrote:
> + switch (_IOC_NR(cmd)) {
> + case _IOC_NR(FS_IOC_GETLBMD_CAP):
> + if (_IOC_DIR(cmd) != _IOC_DIR(FS_IOC_GETLBMD_CAP))
> + break;
> + if (_IOC_TYPE(cmd) != _IOC_TYPE(FS_IOC_GETLBMD_CAP))
> + break;
> + if (_IOC_NR(cmd) != _IOC_NR(FS_IOC_GETLBMD_CAP))
> + break;
> + if (_IOC_SIZE(cmd) < LBMD_SIZE_VER0)
> + break;
> + if (_IOC_SIZE(cmd) > PAGE_SIZE)
> + break;
> + return blk_get_meta_cap(bdev, cmd, argp);
> + }
Yikes. I really don't get why we're trying change the way how ioctls
worked forever. We can and usually do use the size based macro already.
And when we introduce a new size (which should happen rarely), we add a
new entry to the switch using the normal _IO* macros, and either
rename the struct, or use offsetofend in the _IO* entry for the old one.
Just in XFS which I remember in detail we've done that to extend
structures in backwards compatible ways multiple times.
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@infradead.org>
To: Christian Brauner <brauner@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>, Arnd Bergmann <arnd@kernel.org>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Kanchan Joshi <joshi.k@samsung.com>,
Eric Biggers <ebiggers@google.com>,
"Darrick J. Wong" <djwong@kernel.org>,
Anuj Gupta <anuj20.g@samsung.com>,
linux-kernel@vger.kernel.org,
Pavel Begunkov <asml.silence@gmail.com>,
linux-block@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
dan.carpenter@linaro.org, rbm@suse.com,
linux-fsdevel@vger.kernel.org, benjamin.copeland@linaro.org,
ltp@lists.linux.it, Alexey Dobriyan <adobriyan@gmail.com>
Subject: Re: [LTP] [PATCH] block: fix FS_IOC_GETLBMD_CAP parsing in blkdev_common_ioctl()
Date: Thu, 10 Jul 2025 01:14:33 -0700 [thread overview]
Message-ID: <aG92abpCeyML01E1@infradead.org> (raw)
In-Reply-To: <20250710-passen-petersilie-32f6f1e9a1fc@brauner>
On Thu, Jul 10, 2025 at 10:00:48AM +0200, Christian Brauner wrote:
> + switch (_IOC_NR(cmd)) {
> + case _IOC_NR(FS_IOC_GETLBMD_CAP):
> + if (_IOC_DIR(cmd) != _IOC_DIR(FS_IOC_GETLBMD_CAP))
> + break;
> + if (_IOC_TYPE(cmd) != _IOC_TYPE(FS_IOC_GETLBMD_CAP))
> + break;
> + if (_IOC_NR(cmd) != _IOC_NR(FS_IOC_GETLBMD_CAP))
> + break;
> + if (_IOC_SIZE(cmd) < LBMD_SIZE_VER0)
> + break;
> + if (_IOC_SIZE(cmd) > PAGE_SIZE)
> + break;
> + return blk_get_meta_cap(bdev, cmd, argp);
> + }
Yikes. I really don't get why we're trying change the way how ioctls
worked forever. We can and usually do use the size based macro already.
And when we introduce a new size (which should happen rarely), we add a
new entry to the switch using the normal _IO* macros, and either
rename the struct, or use offsetofend in the _IO* entry for the old one.
Just in XFS which I remember in detail we've done that to extend
structures in backwards compatible ways multiple times.
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2025-07-10 8:14 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-09 18:10 [PATCH] block: fix FS_IOC_GETLBMD_CAP parsing in blkdev_common_ioctl() Arnd Bergmann
2025-07-09 18:10 ` [LTP] " Arnd Bergmann via ltp
2025-07-09 18:27 ` Darrick J. Wong
2025-07-09 18:27 ` [LTP] " Darrick J. Wong via ltp
2025-07-09 20:30 ` Arnd Bergmann
2025-07-09 20:30 ` [LTP] " Arnd Bergmann
2025-07-10 8:00 ` Christian Brauner
2025-07-10 8:00 ` [LTP] " Christian Brauner via ltp
2025-07-10 8:14 ` Christoph Hellwig [this message]
2025-07-10 8:14 ` Christoph Hellwig
2025-07-10 10:50 ` Arnd Bergmann
2025-07-10 10:50 ` [LTP] " Arnd Bergmann
2025-07-10 10:59 ` Christoph Hellwig
2025-07-10 10:59 ` [LTP] " Christoph Hellwig
2025-07-10 11:52 ` Arnd Bergmann
2025-07-10 11:52 ` [LTP] " Arnd Bergmann
2025-07-10 12:11 ` Christian Brauner
2025-07-10 12:11 ` [LTP] " Christian Brauner via ltp
2025-07-10 10:11 ` Arnd Bergmann
2025-07-10 10:11 ` [LTP] " Arnd Bergmann
2025-07-10 12:03 ` Christian Brauner
2025-07-10 12:03 ` [LTP] " Christian Brauner via ltp
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aG92abpCeyML01E1@infradead.org \
--to=hch@infradead.org \
--cc=adobriyan@gmail.com \
--cc=anders.roxell@linaro.org \
--cc=anuj20.g@samsung.com \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=asml.silence@gmail.com \
--cc=axboe@kernel.dk \
--cc=benjamin.copeland@linaro.org \
--cc=brauner@kernel.org \
--cc=dan.carpenter@linaro.org \
--cc=djwong@kernel.org \
--cc=ebiggers@google.com \
--cc=joshi.k@samsung.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ltp@lists.linux.it \
--cc=martin.petersen@oracle.com \
--cc=naresh.kamboju@linaro.org \
--cc=rbm@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.