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

Reply via email to