Re: linux-next: manual merge of the vfs-brauner tree with the exfat tree

From: Namjae Jeon
Date: Sun Aug 11 2024 - 20:55:01 EST


2024년 8월 12일 (월) 오전 7:10, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>님이 작성:
>
> Hi all,
>
> Today's linux-next merge of the vfs-brauner tree got a conflict in:
>
> fs/exfat/inode.c
>
> between commits:
>
> 3e491faa7648 ("exfat: do not fallback to buffered write")
> 98ad7b9012b5 ("exfat: Implement sops->shutdown and ioctl")
>
> from the exfat tree and commits:
>
> a225800f322a ("fs: Convert aops->write_end to take a folio")
> 1da86618bdce ("fs: Convert aops->write_begin to take a folio")
>
> from the vfs-brauner tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
Thanks for your work, Looks good to me:)
I'll send an exfat PR after making sure it doesn't conflict with these patches.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc fs/exfat/inode.c
> index 7d43a0942911,05f0e07b01d0..000000000000
> --- a/fs/exfat/inode.c
> +++ b/fs/exfat/inode.c
> @@@ -428,11 -452,7 +428,10 @@@ static int exfat_write_begin(struct fil
> {
> int ret;
>
> + if (unlikely(exfat_forced_shutdown(mapping->host->i_sb)))
> + return -EIO;
> +
> - *pagep = NULL;
> - ret = block_write_begin(mapping, pos, len, pagep, exfat_get_block);
> + ret = block_write_begin(mapping, pos, len, foliop, exfat_get_block);
>
> if (ret < 0)
> exfat_write_failed(mapping, pos+len);
> @@@ -448,7 -468,15 +447,7 @@@ static int exfat_write_end(struct file
> struct exfat_inode_info *ei = EXFAT_I(inode);
> int err;
>
> - err = generic_write_end(file, mapping, pos, len, copied, pagep, fsdata);
> + err = generic_write_end(file, mapping, pos, len, copied, folio, fsdata);
> -
> - if (ei->i_size_aligned < i_size_read(inode)) {
> - exfat_fs_error(inode->i_sb,
> - "invalid size(size(%llu) > aligned(%llu)\n",
> - i_size_read(inode), ei->i_size_aligned);
> - return -EIO;
> - }
> -
> if (err < len)
> exfat_write_failed(mapping, pos+len);
>