Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp1762778iog; Thu, 16 Jun 2022 13:19:04 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uj8L8RrmvcJw/yLb7yPJyDt/vlbuCcKQE7OzRC4EThZ67i4Pvi5Z2fDvRte+Bs1bDVO4m+ X-Received: by 2002:a63:5f53:0:b0:3fc:c510:c4a0 with SMTP id t80-20020a635f53000000b003fcc510c4a0mr6041524pgb.80.1655410744314; Thu, 16 Jun 2022 13:19:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655410744; cv=none; d=google.com; s=arc-20160816; b=bbbp+oU/WRWZp65jMioausKjyXbRcxzmhDSuxlKGphDRVJDtnN20xjaOQep2f8I1Qr 0LWeT8jAoExbMD3e2/0ae7geYrOIai9BU4beC0wAilLNEQr+1itVzuzkOtzbeRoJHlSK dhWGc4DT4LxBqd2dAkMT5dQDiE6scM9QGX6v2gGAkl8gIlu2EKYrhPo6JYs1ljUxHLel xG738RtJ+IG6ucbkMQuK64Z0Gwh6vsN4MkF51sYHpqoPl89Fq3Wlmd6aKcRM6+sji2Ix 6ZSxdsOSU9uMK2w8r8WgNTgyqpMDQmLxzJA+TqMyXXt4qxZ+Y7NzBT5bgjUOC1lvnP+i H+OA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=vYF7G5dH6YCYNI9w5IHy/TYUaay1JHTBtm4WZuTPdzM=; b=lslfiMrGSHjdoGxGiTBzm6eEfVhMiB6abBR29CeXBHTOEZ03hwmrfxvtfRMAjDT/L1 /syI5/iJ4c+tqrm3zXS69sQ2TdM88x6twplHqC9BaXAYB8ePEEcajaGq7MADrRmWP7qG yYaYlDBNm7wDaxjcSIo4VK/5zHhW+oYvHLyaLsosk7ZAG4mafEBJLmBMAbN/cs9Xuvl2 gcO7aG1fpNzAy+uFc4q6OoedMEVXWIdOR8szFNeHkI3txaLcNT1YCrNOqFjublQswiWv EtSdK9QF4M7ziyArBTY6AS0fXdWgB2h/WUhMiGNsm+RnpCzrjeKcxoSlomNNS7bzdVjj piqg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=G738p0TM; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g19-20020a633753000000b0040505587cdfsi3068081pgn.321.2022.06.16.13.18.50; Thu, 16 Jun 2022 13:19:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=G738p0TM; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378479AbiFPUS3 (ORCPT + 99 others); Thu, 16 Jun 2022 16:18:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245332AbiFPUSU (ORCPT ); Thu, 16 Jun 2022 16:18:20 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 776BE3585B; Thu, 16 Jun 2022 13:18:18 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D963D61DBF; Thu, 16 Jun 2022 20:18:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69BF7C341C6; Thu, 16 Jun 2022 20:18:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1655410697; bh=YB3H0eP+bq4tdjh6wOG3YtQsw/WbRpJHmQN03tzgLw8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=G738p0TMyDWt0e6trNPG+dB0KLlBCyRwBvLqIZ8Nuyj+G49kC8lRumdjhubfT/kOr jeYn01pHPF87lJkZ2uk8dQ/Q3opB3khw6umyDkfkxQqBXqtVGm3sqPY4Q6P/81EO0m 3Whtsu5ECR4LCexsZ/MQ9Jy2ii1jRqMahe+08NKepynxPyL0jDyQlvrSzQ+RJs49il v8QKnHRH1faFtoGDpF/X/S0P2OFkIyir8Y38fdukImFvo7DGESaWqvlY6UBq26mqdx 5o6IEQAcK0NkhL3fXoFG3MrrbZhHm4p2dGRh2Yo+PN6f8MfeNSIKRVmNCB2m5EmMJi ZLYfarptileBA== From: Eric Biggers To: linux-fsdevel@vger.kernel.org Cc: linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-xfs@vger.kernel.org, linux-api@vger.kernel.org, linux-fscrypt@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Keith Busch Subject: [PATCH v3 6/8] f2fs: don't allow DIO reads but not DIO writes Date: Thu, 16 Jun 2022 13:15:04 -0700 Message-Id: <20220616201506.124209-7-ebiggers@kernel.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220616201506.124209-1-ebiggers@kernel.org> References: <20220616201506.124209-1-ebiggers@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,SUSPICIOUS_RECIPS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Eric Biggers Currently, if an f2fs filesystem is mounted with the mode=lfs and io_bits mount options, DIO reads are allowed but DIO writes are not. Allowing DIO reads but not DIO writes is an unusual restriction, which is likely to be surprising to applications, namely any application that both reads and writes from a file (using O_DIRECT). This behavior is also incompatible with the proposed STATX_DIOALIGN extension to statx. Given this, let's drop the support for DIO reads in this configuration. Signed-off-by: Eric Biggers --- fs/f2fs/file.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 5e5c97fccfb4e..ad0212848a1ab 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -823,7 +823,6 @@ static inline bool f2fs_force_buffered_io(struct inode *inode, struct kiocb *iocb, struct iov_iter *iter) { struct f2fs_sb_info *sbi = F2FS_I_SB(inode); - int rw = iov_iter_rw(iter); if (!fscrypt_dio_supported(inode)) return true; @@ -841,7 +840,7 @@ static inline bool f2fs_force_buffered_io(struct inode *inode, */ if (f2fs_sb_has_blkzoned(sbi)) return true; - if (f2fs_lfs_mode(sbi) && (rw == WRITE)) { + if (f2fs_lfs_mode(sbi)) { if (block_unaligned_IO(inode, iocb, iter)) return true; if (F2FS_IO_ALIGNED(sbi)) -- 2.36.1