On Wed, Nov 27, 2024 at 1:18 PM Bharata B Rao <bharata@xxxxxxx> wrote: > > On 27-Nov-24 11:49 AM, Mateusz Guzik wrote: > > That is to say bare minimum this needs to be benchmarked before/after > > with the lock removed from the picture, like so: > > > > diff --git a/block/fops.c b/block/fops.c > > index 2d01c9007681..7f9e9e2f9081 100644 > > --- a/block/fops.c > > +++ b/block/fops.c > > @@ -534,12 +534,8 @@ const struct address_space_operations def_blk_aops = { > > static loff_t blkdev_llseek(struct file *file, loff_t offset, int whence) > > { > > struct inode *bd_inode = bdev_file_inode(file); > > - loff_t retval; > > > > - inode_lock(bd_inode); > > - retval = fixed_size_llseek(file, offset, whence, i_size_read(bd_inode)); > > - inode_unlock(bd_inode); > > - return retval; > > + return fixed_size_llseek(file, offset, whence, i_size_read(bd_inode)); > > } > > > > static int blkdev_fsync(struct file *filp, loff_t start, loff_t end, > > > > To be aborted if it blows up (but I don't see why it would). > > Thanks for this fix, will try and get back with results. > Please make sure to have results just with this change, no messing with folio sizes so that I have something for the patch submission. -- Mateusz Guzik <mjguzik gmail.com>