Re: [RFC PATCH v1 6/6] exfat: take s_lock in read mode for iomap mapping paths

From: Namjae Jeon

Date: Wed Aug 26 2026 - 21:08:53 EST


> @@ -68,7 +68,7 @@ static int __exfat_iomap_begin(struct inode *inode, loff_t offset, loff_t length
> num_clusters = exfat_bytes_to_cluster_round_up(sbi,
> offset + length) - exfat_bytes_to_cluster(sbi, offset);
>
> - down_write(&sbi->s_lock);
> + down_read(&sbi->s_lock);
If may_alloc is true, Should we use down_write() ?

> iomap->bdev = inode->i_sb->s_bdev;
> iomap->offset = offset;
>
> @@ -135,7 +135,7 @@ static int __exfat_iomap_begin(struct inode *inode, loff_t offset, loff_t length
>
> iomap->flags |= IOMAP_F_MERGED;
> out:
> - up_write(&sbi->s_lock);
> + up_read(&sbi->s_lock);
> return err;
> }