On Mon, May 09, 2022 at 11:47:59PM -0700, Christoph Hellwig wrote: > On Tue, May 10, 2022 at 11:12:05AM +1000, Dave Chinner wrote: > > > I still don't understand why /any/ of this is necessary. When does > > > iocb->ki_filp->f_inode != iocb->ki_filp->f_mapping->host? > > > > I already asked that question because I don't know the answer, > > either. I suspect the answer is "block dev inodes" but that then > > just raises the question of "how do we get them here?" and I don't > > know the answer to that, either. I don't have the time to dig into > > this and I don't expect anyone to just pop up with an answer, > > either. So in the mean time, we can just ignore it for the purpose > > of this patch set... > > Weird device nodes (including block device) is the answer. It never > happens for a normal file system file struct that we'd see in XFS. Ok, so we can just use XFS_I(file_inode(iocb->ki_filp)) then and we don't need to pass the xfs_inode at all. We probably should convert the rest of the io path to do this as well so we don't end up forgetting this again... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx