block: don't silently ignore metadata for sync read/write
The block fops don't try to handle metadata for synchronous requests, probably because the completion handler looks at dio->iocb which is not valid for synchronous requests. But silently ignoring metadata (or warning in case of __blkdev_direct_IO_simple) is a really bad idea as that can cause silent data corruption if a user ever shows up. Instead simply handle metadata for synchronous requests as the completion handler can simply check for bio_integrity() as the block layer default integrity will already be freed at this point, and thus bio_integrity() will only return true for user mapped integrity. Fixes: 3d8b5a22 ("block: add support to pass user meta buffer") Signed-off-by:Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/20250819082517.2038819-3-hch@lst.de Reviewed-by:
Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by:
Christian Brauner <brauner@kernel.org>
Loading
Please sign in to comment