From patchwork Wed Dec 5 09:17:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carlos Maiolino X-Patchwork-Id: 10713399 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5F7AD109C for ; Wed, 5 Dec 2018 09:17:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 501FA2CD12 for ; Wed, 5 Dec 2018 09:17:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 43FE02BE54; Wed, 5 Dec 2018 09:17:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D25482BE54 for ; Wed, 5 Dec 2018 09:17:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726909AbeLEJRh (ORCPT ); Wed, 5 Dec 2018 04:17:37 -0500 Received: from mx1.redhat.com ([209.132.183.28]:57870 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726351AbeLEJRg (ORCPT ); Wed, 5 Dec 2018 04:17:36 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 948A8C05D405; Wed, 5 Dec 2018 09:17:36 +0000 (UTC) Received: from hades.usersys.redhat.com (unknown [10.43.17.43]) by smtp.corp.redhat.com (Postfix) with ESMTP id 609245D965; Wed, 5 Dec 2018 09:17:33 +0000 (UTC) From: Carlos Maiolino To: linux-fsdevel@vger.kernel.org Cc: hch@lst.de, adilger@dilger.ca, sandeen@redhat.com, david@fromorbit.com Subject: [PATCH 00/10 V2] New ->fiemap infrastructure and ->bmap removal Date: Wed, 5 Dec 2018 10:17:18 +0100 Message-Id: <20181205091728.29903-1-cmaiolino@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Wed, 05 Dec 2018 09:17:36 +0000 (UTC) Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi. This is the second version of the complete series with the goal to remove ->bmap interface completely, in lieu of FIEMAP. This new version has been heavily modified in comparison with the first one, based on comments of Christoph and Andreas. And has been simplified. My apologies if I forgot to update anything based on previous discussion. Patch 1-3 has no difference from the previous version, and Christoph's Reviewed-by has been kept. Patch 4 is a V2 of the previous set, with updates required by Christoph (a local sector_t variable, and moving the patch earlier in the series. Patches 5-9 are essentially the modification of ->fiemap and deprecation of ->bmap. In this new version, I kept the current fiemap_extent_info structure, and moved into it all the required data for use in both FIEMAP and FIBMAP, instead of creating a new data structure as in the old patch set. This way, basically no heavy modification is required on individual filesystems, but the update of its fiemap methods, removing start and len arguments, once they will be passed now into fiemap_extent_info. Last patch, is the removal of ->bmap method into XFS, I decided to not add the previous patch for Ext4 because it needs more ext4 internal knowledge, which I don't have. Comments are much appreciated. Cheers P.S. I thought about merging patch 7 into patch 8, and, patch 6 into patch 5, but I decided to leave it as-is by now, and get comments about the way it is, and if people agree, I'll merge them. Carlos Maiolino (10): fs: Enable bmap() function to properly return errors cachefiles: drop direct usage of ->bmap method. ecryptfs: drop direct calls to ->bmap fibmap: Use bmap instead of ->bmap method in ioctl_fibmap fs: Move start and length fiemap fields into fiemap_extent_info iomap: Remove length and start fields from iomap_fiemap fs: Use a void pointer to store fiemap_extent fiemap: Use a callback to fill fiemap extents Use FIEMAP for FIBMAP calls xfs: Get rid of ->bmap drivers/md/md-bitmap.c | 16 +++--- fs/bad_inode.c | 3 +- fs/btrfs/inode.c | 5 +- fs/cachefiles/rdwr.c | 27 +++++----- fs/ecryptfs/mmap.c | 16 +++--- fs/ext2/ext2.h | 3 +- fs/ext2/inode.c | 6 +-- fs/ext4/ext4.h | 3 +- fs/ext4/extents.c | 8 +-- fs/f2fs/data.c | 5 +- fs/f2fs/f2fs.h | 3 +- fs/gfs2/inode.c | 5 +- fs/hpfs/file.c | 4 +- fs/inode.c | 68 +++++++++++++++++++----- fs/ioctl.c | 114 +++++++++++++++++++++++++++++------------ fs/iomap.c | 4 +- fs/jbd2/journal.c | 22 +++++--- fs/nilfs2/inode.c | 5 +- fs/nilfs2/nilfs.h | 3 +- fs/ocfs2/extent_map.c | 5 +- fs/ocfs2/extent_map.h | 3 +- fs/overlayfs/inode.c | 5 +- fs/xfs/xfs_aops.c | 24 --------- fs/xfs/xfs_iops.c | 14 ++--- fs/xfs/xfs_trace.h | 1 - include/linux/fs.h | 31 +++++++---- include/linux/iomap.h | 2 +- mm/page_io.c | 11 ++-- 28 files changed, 248 insertions(+), 168 deletions(-)