> 2024年6月17日 14:17,Christoph Hellwig <hch@xxxxxxxxxxxxx> 写道: > > On Sat, Jun 15, 2024 at 12:03:47AM +0800, Li Feng wrote: >> + /* >> + * When the discard mode has been set to UNMAP, it should not be set to > > Overly long line here. OK. > >> + * WRITE SAME with UNMAP. >> + */ >> + if (!sdkp->max_unmap_blocks) >> + sd_config_discard(sdkp, SD_LBP_WS16); > > But more importantly this doesn't really scale to all the variations > of reported / guessed at probe time vs overriden. I think you just > need an explicit override flag that skips the discard settings. > I think we only need to prevent the temporary change of discard mode from UNMAP to WS16, and this patch should be enough. Maybe it is a good idea to remove the call to sd_config_discard from read_capacity_16 . Because the unmap_alignment/ unmap_granularity used by sd_config_discard are assigned in sd_read_block_limits. sd_read_block_limits is enough to negotiate the discard parameter. It is redundant for read_capacity to modify the discard parameter. In this way, when the SCSI probe sends read_capacity first and then read block limits, it avoids the change of discard from DISABLE to WS16 to UNMAP. Thanks, Li