[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aR2HZWE-v-umP7jI@pc636>
Date: Wed, 19 Nov 2025 10:01:25 +0100
From: Uladzislau Rezki <urezki@...il.com>
To: Christoph Hellwig <hch@....de>
Cc: Uladzislau Rezki <urezki@...il.com>,
Mikulas Patocka <mpatocka@...hat.com>,
Benjamin Marzinski <bmarzins@...hat.com>,
Alasdair Kergon <agk@...hat.com>, DMML <dm-devel@...ts.linux.dev>,
Andrew Morton <akpm@...ux-foundation.org>,
Mike Snitzer <snitzer@...hat.com>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [RESEND PATCH] dm-ebs: Mark full buffer dirty even on partial
write
On Wed, Nov 19, 2025 at 10:00:10AM +0100, Christoph Hellwig wrote:
> On Wed, Nov 19, 2025 at 09:57:49AM +0100, Uladzislau Rezki wrote:
> > On Wed, Nov 19, 2025 at 09:53:28AM +0100, Christoph Hellwig wrote:
> > > On Wed, Nov 19, 2025 at 09:43:13AM +0100, Uladzislau Rezki wrote:
> > > > Well. LBA is fixed in my case. Just only one format which is 512B.
> > > >
> > > > Whereas the I/O can not be performed by using LBAs sizes. It is fixed
> > > > and bigger.
> > >
> > > Then it is not an LBA. The LBA is defined as the minimum block size
> > > you can do I/O on. Aka your device is really gravely broken. What
> > > device is this and who is selling it?
> > >
> > I define UBS - underlying block size. The lower layer expects BIOs in
> > that sizes but this is not true.
> >
> > I am not allowed to disclose and answer your last question.
>
> Well. Let's frame it differently: this device is just to broken
> to be used with Linux. In theory we could quirk based on the vendor
> ID to correctly report the logical block size, but for that we'd
> need the information.
>
/*
* Construct an emulated block size mapping: <dev_path> <offset> <ebs> [<ubs>]
*
* <dev_path>: path of the underlying device
* <offset>: offset in 512 bytes sectors into <dev_path>
* <ebs>: emulated block size in units of 512 bytes exposed to the upper layer
* [<ubs>]: underlying block size in units of 512 bytes imposed on the lower layer;
* optional, if not supplied, retrieve logical block size from underlying device
*/
static int ebs_ctr(struct dm_target *ti, unsigned int argc, char **argv)
{
Again i rely on this.
--
Uladzislau Rezki
Powered by blists - more mailing lists