Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp609435pxb; Thu, 21 Jan 2021 15:28:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJyLJaFq2X/nEp/kt/S2ZL4eXTCkegiJq2ZcQX0wUPDlv2DNn+DvRJ8aTxvT+nXcdt+aWD2T X-Received: by 2002:a17:906:7f83:: with SMTP id f3mr1147059ejr.282.1611271721309; Thu, 21 Jan 2021 15:28:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611271721; cv=none; d=google.com; s=arc-20160816; b=ArlmcD1hmprto/osprxa8XfplW7KRvMCTBc3FHmhQ0b5vUwi7PpkuFfk7hv18AOQY5 29+q6SWOr/+ytFbDcYp0HpFG3vZeSUUjlOUQcGGFsNRoA2d7soOWgyULwu4uUDmreeOx A6TUUrnP7MTAGdBGE5yBODUah7vxlrx5g9FPYhu76RS5VtV53v6J7/zo7I/BC37yXfE7 mBcv3W9hLr/oGYRx/0KTJ/mwH4cF57iMNqbTF7w64qdIhbZke70Kq8iyubD8ShQa1fG0 rdkmbnlgnRwmk4XOhh9pCxZ44Lo+LOeNJC2sDuh6xCwReK5sX6QGjxgaIJcWUQV73RBD CWwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:sender:dkim-signature; bh=Dk48xoljaDfKrHrHMhr41MTHc48m5tHc6K5cc6+60c0=; b=nhRcfIy08YzsM6SszzI66/WH5pWlso9oIM8pzKbz+lyF0tz8nBO5N/W8MuEjMY4ej+ aa6yatc3rk9X5VtBbznAJ9PS3c6kYXSeWkoPqMcoWNhkZiTtySk461J1YG/f7rO6dOb5 Dm9KsVsmcwkmQgL4SKrURuTlQ17hTC+MPRCA0iEkVlmcP7USpP2loXER4sxPnt6n7tEK t4KDRRDcmw6akynJ9rMDzTSAhX44C2ILhKr3wufjFzI/Yw3PvlvkSWmikrrFE/Hb0Qsp 2abckyiK78oi5/HTEyN8HL1GzDIGYPhEiicpdEhrx+WDWyXKlxCklMw8qbqgshk1mHKq urqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=AOwqVIYh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v3si2674248edr.600.2021.01.21.15.28.17; Thu, 21 Jan 2021 15:28:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=AOwqVIYh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726512AbhAUX0z (ORCPT + 99 others); Thu, 21 Jan 2021 18:26:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726105AbhAUXFp (ORCPT ); Thu, 21 Jan 2021 18:05:45 -0500 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB354C06121E for ; Thu, 21 Jan 2021 15:03:49 -0800 (PST) Received: by mail-yb1-xb4a.google.com with SMTP id b131so3705612ybc.3 for ; Thu, 21 Jan 2021 15:03:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:date:in-reply-to:message-id:mime-version:references:subject :from:to:cc; bh=Dk48xoljaDfKrHrHMhr41MTHc48m5tHc6K5cc6+60c0=; b=AOwqVIYhEfj64Av4uEMJ8dSXxk8ne2BkUsUnz+ACunkTKRrxPpI/6sLcfbRBs7cNfl h5qPnwUs6LddC54j2mpWSWeh77OnP521QsSDsA2EqHU3eTeUqnT+oe4HtfLSjcnqB5V7 D9cvChljpRJNuYOjKg9Oyj+cAe/xvu+QkQ1VIJQm6uloPLqIY07SFnMq2UBqecaSUDHp +Ajt62MR8Fp5RrZ7TibPGcZK9kJVvNizT+AUEgltWWilJcA7Fu0O34Tf4Eoqz77HP5X3 wtX06Ui8oahF007Y1fWYBzCRcteJTi0Ni09bl5j2Z9rw84yplKdcqpX6r+O7nek4Me+V fvJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=Dk48xoljaDfKrHrHMhr41MTHc48m5tHc6K5cc6+60c0=; b=sYOtne5j2LhHsjpJn4x7Es4V+7DKAUcGHLHzaJN8KshBJN7H6POIMxbsYzWSEbcQaK p1zTuuAIhpLObEf66ijqc5hwZjEwvqDmiU60IdE2XuH7i70ZPE6MEjEGAD7diZNUJwjs mOKpzLvgdKMwR5I+UORzOWPsKPf6sgAh4ewbucQ7t5JIppLRXdJQgjI8JfbnXBMEK5us eHkvxF0OsU1Kso9YNaxkHXs8ClGGHZqobavFDfUg/tK7WPmkIjfgdSvBYdDTBgy8WRLo 9Cxzaen/xfsllVroRTsyQt2S7e5AF5om92c/mJqVf7hGCu9led2eM+lJyVguDIwOk11I PjqQ== X-Gm-Message-State: AOAM530RoexYs38JnR2xOtSyiy8KtkESGN1k3wEjyaMcG5Unz2/BoT17 RsuR4NOxHcjkMhflQtBxHF4TuGP7ME0= Sender: "satyat via sendgmr" X-Received: from satyaprateek.c.googlers.com ([fda3:e722:ac3:10:24:72f4:c0a8:1092]) (user=satyat job=sendgmr) by 2002:a25:cbca:: with SMTP id b193mr2572599ybg.324.1611270229151; Thu, 21 Jan 2021 15:03:49 -0800 (PST) Date: Thu, 21 Jan 2021 23:03:33 +0000 In-Reply-To: <20210121230336.1373726-1-satyat@google.com> Message-Id: <20210121230336.1373726-6-satyat@google.com> Mime-Version: 1.0 References: <20210121230336.1373726-1-satyat@google.com> X-Mailer: git-send-email 2.30.0.280.ga3ce27912f-goog Subject: [PATCH v8 5/8] iomap: support direct I/O with fscrypt using blk-crypto From: Satya Tangirala To: "Theodore Y . Ts'o" , Jaegeuk Kim , Eric Biggers , Chao Yu , Jens Axboe , "Darrick J . Wong" Cc: linux-kernel@vger.kernel.org, linux-fscrypt@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-xfs@vger.kernel.org, linux-block@vger.kernel.org, linux-ext4@vger.kernel.org, Eric Biggers , Satya Tangirala Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Eric Biggers Set bio crypt contexts on bios by calling into fscrypt when required. No DUN contiguity checks are done - callers are expected to set up the iomap correctly to ensure that each bio submitted by iomap will not have blocks with incontiguous DUNs by calling fscrypt_limit_io_blocks() appropriately. Signed-off-by: Eric Biggers Co-developed-by: Satya Tangirala Signed-off-by: Satya Tangirala --- fs/iomap/direct-io.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c index 933f234d5bec..b4240cc3c9f9 100644 --- a/fs/iomap/direct-io.c +++ b/fs/iomap/direct-io.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -185,11 +186,14 @@ static void iomap_dio_zero(struct iomap_dio *dio, struct iomap *iomap, loff_t pos, unsigned len) { + struct inode *inode = file_inode(dio->iocb->ki_filp); struct page *page = ZERO_PAGE(0); int flags = REQ_SYNC | REQ_IDLE; struct bio *bio; bio = bio_alloc(GFP_KERNEL, 1); + fscrypt_set_bio_crypt_ctx(bio, inode, pos >> inode->i_blkbits, + GFP_KERNEL); bio_set_dev(bio, iomap->bdev); bio->bi_iter.bi_sector = iomap_sector(iomap, pos); bio->bi_private = dio; @@ -272,6 +276,8 @@ iomap_dio_bio_actor(struct inode *inode, loff_t pos, loff_t length, } bio = bio_alloc(GFP_KERNEL, nr_pages); + fscrypt_set_bio_crypt_ctx(bio, inode, pos >> inode->i_blkbits, + GFP_KERNEL); bio_set_dev(bio, iomap->bdev); bio->bi_iter.bi_sector = iomap_sector(iomap, pos); bio->bi_write_hint = dio->iocb->ki_hint; -- 2.30.0.280.ga3ce27912f-goog