On 2022-09-14 06:01, Mariusz Tkaczyk wrote: >>>> As I understand it the offset and size will give the bounds of the >>>> data region on the disk. Do you not think it works for zoned raid0? >>> >>> mdadm operates on 512B, so using 4K data regions could be destructive. >>> Also left shift causes that size value is increasing. We can't clear more >>> that user requested. We need to use 512b sectors as mdadm does. >> >> I don't really follow this. > > I understand that you want left shit is used to round size to data region > and I assumed that data_region is 4K and that is probably wrong. > You are right I has no sense, my apologizes. > > Let's imagine that our size is for example, 2687 sectors. Left shit will > cause that we will get 2751488 and that will be passed as a size to function. > Similar for data_offset. That is much more than we want to clear. > Do I miss something? I guess that ioctl operates on sectors too but please > correct me if that is wrong. The BLKDISCARD ioctl assumes bytes for the range, not sectors. Though it does have to be sector aligned. dv->data_offset is then in sectors, so we shift by 9. s->size is in KB, so we shift by 10. Logan