On Wed, Jul 27, 2022 at 12:12:53AM +0100, Al Viro wrote: > On Tue, Jul 26, 2022 at 10:38:13AM -0700, Keith Busch wrote: > > > + if (S_ISBLK(file_inode(file)->i_mode)) > > + bdev = I_BDEV(file->f_mapping->host); > > + else if (S_ISREG(file_inode(file)->i_mode)) > > + bdev = file->f_inode->i_sb->s_bdev; > > *blink* > > Just what's the intended use of the second case here? ?? The use case is same as the first's: dma map the user addresses to the backing storage. There's two cases here because getting the block_device for a regular filesystem file is different than a raw block device.