From nobody Sat Apr 18 01:19:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7A7AC43334 for ; Wed, 20 Jul 2022 08:22:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237440AbiGTIWk (ORCPT ); Wed, 20 Jul 2022 04:22:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35558 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229453AbiGTIWi (ORCPT ); Wed, 20 Jul 2022 04:22:38 -0400 Received: from out30-132.freemail.mail.aliyun.com (out30-132.freemail.mail.aliyun.com [115.124.30.132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C123D6BC13 for ; Wed, 20 Jul 2022 01:22:36 -0700 (PDT) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R791e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046059;MF=hsiangkao@linux.alibaba.com;NM=1;PH=DS;RN=3;SR=0;TI=SMTPD_---0VJw6BQ8_1658305349; Received: from e18g06460.et15sqa.tbsite.net(mailfrom:hsiangkao@linux.alibaba.com fp:SMTPD_---0VJw6BQ8_1658305349) by smtp.aliyun-inc.com; Wed, 20 Jul 2022 16:22:34 +0800 From: Gao Xiang To: linux-erofs@lists.ozlabs.org Cc: LKML , Gao Xiang Subject: [PATCH v2] erofs: get rid of erofs_prepare_dio() helper Date: Wed, 20 Jul 2022 16:22:29 +0800 Message-Id: <20220720082229.12172-1-hsiangkao@linux.alibaba.com> X-Mailer: git-send-email 2.24.4 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Fold in erofs_prepare_dio() in order to simplify the code. Signed-off-by: Gao Xiang Reviewed-by: Jeffle Xu --- v1: https://lore.kernel.org/r/20220506194612.117120-1-hsiangkao@linux.aliba= ba.com fs/erofs/data.c | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/fs/erofs/data.c b/fs/erofs/data.c index fbb037ba326e..fe8ac0e163f7 100644 --- a/fs/erofs/data.c +++ b/fs/erofs/data.c @@ -366,42 +366,33 @@ static sector_t erofs_bmap(struct address_space *mapp= ing, sector_t block) return iomap_bmap(mapping, block, &erofs_iomap_ops); } =20 -static int erofs_prepare_dio(struct kiocb *iocb, struct iov_iter *to) +static ssize_t erofs_file_read_iter(struct kiocb *iocb, struct iov_iter *t= o) { struct inode *inode =3D file_inode(iocb->ki_filp); - loff_t align =3D iocb->ki_pos | iov_iter_count(to) | - iov_iter_alignment(to); - struct block_device *bdev =3D inode->i_sb->s_bdev; - unsigned int blksize_mask; - - if (bdev) - blksize_mask =3D (1 << ilog2(bdev_logical_block_size(bdev))) - 1; - else - blksize_mask =3D (1 << inode->i_blkbits) - 1; =20 - if (align & blksize_mask) - return -EINVAL; - return 0; -} - -static ssize_t erofs_file_read_iter(struct kiocb *iocb, struct iov_iter *t= o) -{ /* no need taking (shared) inode lock since it's a ro filesystem */ if (!iov_iter_count(to)) return 0; =20 #ifdef CONFIG_FS_DAX - if (IS_DAX(iocb->ki_filp->f_mapping->host)) + if (IS_DAX(inode)) return dax_iomap_rw(iocb, to, &erofs_iomap_ops); #endif if (iocb->ki_flags & IOCB_DIRECT) { - int err =3D erofs_prepare_dio(iocb, to); + struct block_device *bdev =3D inode->i_sb->s_bdev; + unsigned int blksize_mask; + + if (bdev) + blksize_mask =3D bdev_logical_block_size(bdev) - 1; + else + blksize_mask =3D (1 << inode->i_blkbits) - 1; + + if ((iocb->ki_pos | iov_iter_count(to) | + iov_iter_alignment(to)) & blksize_mask) + return -EINVAL; =20 - if (!err) - return iomap_dio_rw(iocb, to, &erofs_iomap_ops, - NULL, 0, NULL, 0); - if (err < 0) - return err; + return iomap_dio_rw(iocb, to, &erofs_iomap_ops, + NULL, 0, NULL, 0); } return filemap_read(iocb, to, 0); } --=20 2.24.4