From nobody Fri Dec 19 06:17:46 2025 Received: from mx.treblig.org (mx.treblig.org [46.235.229.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 00B421805A; Wed, 19 Feb 2025 01:45:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.235.229.95 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739929562; cv=none; b=Iyyrgs1njz1uR1n9Jxh9iUX4f5Y1WOp+rica8C0OfCmikP0l1TCyzz5lxXeVGTfkh4UwwIGf9215INfbYgaYYer+zjyQirURBmWJUD0XZeExpzGaRVL6MSQh4lvaXUsvQjk5TJgvyGLxvivpIW1VQnOfX7Ca9EbncB7Zrwu1JpA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739929562; c=relaxed/simple; bh=X2xNTqB/Cqa4cbVnrIEsF4+3Pw6nAfHkwNBHVpwCN0o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FNZKZ3VANFSLDGt+bLyAjSNssBoUma4Zroc2DIZrh/U7OftZC3Y+VkCJ/JbsVm/4t3QytJw1T1MYfvvAhP02B7GWmT/9Ew2HutD4eXCsaLKmtM4bYEfhjHaf/TK+1Xod5EZFCY2ID7Jm9UkSq4nMekjKdgenqG6lGOxfEu/og88= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=treblig.org; spf=pass smtp.mailfrom=treblig.org; dkim=pass (2048-bit key) header.d=treblig.org header.i=@treblig.org header.b=mh560O6V; arc=none smtp.client-ip=46.235.229.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=treblig.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=treblig.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=treblig.org header.i=@treblig.org header.b="mh560O6V" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org ; s=bytemarkmx; h=MIME-Version:Message-ID:Date:Subject:From:Content-Type:From :Subject; bh=wgJVz3rQRUpYbvizKytamBakn0wuddTOgzOQZp1vbQQ=; b=mh560O6VDYkV0bFz Ffv+Jt5xPynWLQmU7rNdRXSN7txHnIZWU3sMDfIiPIyMZSTLCel/MVz5xHe0gvZMMbRKVt0AjumTd pI/vmYbmlSVh0NpDnT9HaJvP3hfjTzSX4mrsm5Iu17SSOODN/rGQ/vrALH5nIqMeSBf0pQFYMliuI 9yqgfOiUrxLNz+xdlqclx1DquV3sVa8iQQgtbLj+hoH6LWMTe7anZpFMPjnPJDWZbWWw5AL+zBrLq RUEzxC2Dof2b5ue9/l5dJoDAMrRBZbBpM9Iq0plsmMBJYIQQYlQ5zWjE1BKzKVZG46izhYoYIFTRg wjs0/KGKYK7KJEuhpw==; Received: from localhost ([127.0.0.1] helo=dalek.home.treblig.org) by mx.treblig.org with esmtp (Exim 4.96) (envelope-from ) id 1tkZ9x-00GmJC-1w; Wed, 19 Feb 2025 01:45:57 +0000 From: linux@treblig.org To: almaz.alexandrovich@paragon-software.com, ntfs3@lists.linux.dev Cc: linux-kernel@vger.kernel.org, "Dr. David Alan Gilbert" Subject: [PATCH 1/3] fs/ntfs3: Remove unused ni_load_attr Date: Wed, 19 Feb 2025 01:45:54 +0000 Message-ID: <20250219014556.293497-2-linux@treblig.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250219014556.293497-1-linux@treblig.org> References: <20250219014556.293497-1-linux@treblig.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Dr. David Alan Gilbert" ni_load_attr() was added in 2021 by commit 4342306f0f0d ("fs/ntfs3: Add file operations and implementation") but hasn't been used. Remove it. Signed-off-by: Dr. David Alan Gilbert --- fs/ntfs3/frecord.c | 57 ---------------------------------------------- fs/ntfs3/ntfs_fs.h | 3 --- 2 files changed, 60 deletions(-) diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c index 5df6a0b5add9..d227f9923290 100644 --- a/fs/ntfs3/frecord.c +++ b/fs/ntfs3/frecord.c @@ -280,63 +280,6 @@ struct ATTRIB *ni_enum_attr_ex(struct ntfs_inode *ni, = struct ATTRIB *attr, return rec_find_attr_le(ni, mi2, le2); } =20 -/* - * ni_load_attr - Load attribute that contains given VCN. - */ -struct ATTRIB *ni_load_attr(struct ntfs_inode *ni, enum ATTR_TYPE type, - const __le16 *name, u8 name_len, CLST vcn, - struct mft_inode **pmi) -{ - struct ATTR_LIST_ENTRY *le; - struct ATTRIB *attr; - struct mft_inode *mi; - struct ATTR_LIST_ENTRY *next; - - if (!ni->attr_list.size) { - if (pmi) - *pmi =3D &ni->mi; - return mi_find_attr(ni, &ni->mi, NULL, type, name, name_len, - NULL); - } - - le =3D al_find_ex(ni, NULL, type, name, name_len, NULL); - if (!le) - return NULL; - - /* - * Unfortunately ATTR_LIST_ENTRY contains only start VCN. - * So to find the ATTRIB segment that contains 'vcn' we should - * enumerate some entries. - */ - if (vcn) { - for (;; le =3D next) { - next =3D al_find_ex(ni, le, type, name, name_len, NULL); - if (!next || le64_to_cpu(next->vcn) > vcn) - break; - } - } - - if (ni_load_mi(ni, le, &mi)) - return NULL; - - if (pmi) - *pmi =3D mi; - - attr =3D mi_find_attr(ni, mi, NULL, type, name, name_len, &le->id); - if (!attr) - return NULL; - - if (!attr->non_res) - return attr; - - if (le64_to_cpu(attr->nres.svcn) <=3D vcn && - vcn <=3D le64_to_cpu(attr->nres.evcn)) - return attr; - - _ntfs_bad_inode(&ni->vfs_inode); - return NULL; -} - /* * ni_load_all_mi - Load all subrecords. */ diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h index 382820464dee..2034dca90a5e 100644 --- a/fs/ntfs3/ntfs_fs.h +++ b/fs/ntfs3/ntfs_fs.h @@ -530,9 +530,6 @@ struct ATTRIB *ni_find_attr(struct ntfs_inode *ni, stru= ct ATTRIB *attr, struct ATTRIB *ni_enum_attr_ex(struct ntfs_inode *ni, struct ATTRIB *attr, struct ATTR_LIST_ENTRY **le, struct mft_inode **mi); -struct ATTRIB *ni_load_attr(struct ntfs_inode *ni, enum ATTR_TYPE type, - const __le16 *name, u8 name_len, CLST vcn, - struct mft_inode **pmi); int ni_load_all_mi(struct ntfs_inode *ni); bool ni_add_subrecord(struct ntfs_inode *ni, CLST rno, struct mft_inode **= mi); int ni_remove_attr(struct ntfs_inode *ni, enum ATTR_TYPE type, --=20 2.48.1 From nobody Fri Dec 19 06:17:46 2025 Received: from mx.treblig.org (mx.treblig.org [46.235.229.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 65E511DA4E; Wed, 19 Feb 2025 01:46:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.235.229.95 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739929562; cv=none; b=s7VlnMUsi9Pog4URNY79U6lMjB7tHvu3BFj5UdJRpTF+5xFVZJTgPArH0tgbEx00zjZevq+ClY+8a/BYWvQG1NxOaBSOxxbmcrrKNCJfYE67vktgTb7uOOhGB4t+KMIVcvIgEg6qMIZn2bkByA94IkvNl14LQXQpAFmDiDsXqKk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739929562; c=relaxed/simple; bh=7ecqkVVdj/whIMKW2rpEMqEnB/OL2Wi9CrKSSscVsFA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Zpv36Kq/ej01DPWhkpTtOSs0LMyNyinU3GacAO+KDspUpPfepEsrRwBkGGUhetsLp6Ea8owNse/dPdvxToKluYkjFWCNI74tZD2NrvfFWNl+lV/TfT4qeHnJdnNwzRjLvetptfJE4hIv5XrAailgJElbUhN/LUz2Rp8avcZIGec= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=treblig.org; spf=pass smtp.mailfrom=treblig.org; dkim=pass (2048-bit key) header.d=treblig.org header.i=@treblig.org header.b=fq44WCQu; arc=none smtp.client-ip=46.235.229.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=treblig.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=treblig.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=treblig.org header.i=@treblig.org header.b="fq44WCQu" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org ; s=bytemarkmx; h=MIME-Version:Message-ID:Date:Subject:From:Content-Type:From :Subject; bh=EAp/ff+jU6zqDJFGhB7GlURbx/lq4hD8LZ7g7IXmRLo=; b=fq44WCQuHxmYNkmd PLh/x9w1Vp/NUgx5IOkGaD/vEPdn+Rn1Kf6NUr3lzCKgSGsykaDlVgP0nS8SFwBMvUqavptPscTiw eHUKag00ErDt1I+Ej8M4jfzSs5QfivLdPaQF3wygoFyBxN6RJkpdvwHOqQq58ndcZScqK4S45qCuH 7+4a0rekcE4A54MHlAhD7Ds1/b3+TG0kWVpzP9+1XcEPfqGxGAbHclwOwK7Ji8zrzDGhmqGRKMBrE B47hixks1zxD2nJXa7BTBTtCSXDr/egsE+9mYO3X5xVLqt+7qp0iTGaYImDttFyEHgUIZylos9qC/ UHBIqcgQAtqVE5OPmA==; Received: from localhost ([127.0.0.1] helo=dalek.home.treblig.org) by mx.treblig.org with esmtp (Exim 4.96) (envelope-from ) id 1tkZ9y-00GmJC-0l; Wed, 19 Feb 2025 01:45:58 +0000 From: linux@treblig.org To: almaz.alexandrovich@paragon-software.com, ntfs3@lists.linux.dev Cc: linux-kernel@vger.kernel.org, "Dr. David Alan Gilbert" Subject: [PATCH 2/3] fs/ntfs3: Remove unused ntfs_sb_read Date: Wed, 19 Feb 2025 01:45:55 +0000 Message-ID: <20250219014556.293497-3-linux@treblig.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250219014556.293497-1-linux@treblig.org> References: <20250219014556.293497-1-linux@treblig.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Dr. David Alan Gilbert" ntfs_sb_read() was added in 2021 by commit 82cae269cfa9 ("fs/ntfs3: Add initialization of super block") but hasn't been used. Remove it. Signed-off-by: Dr. David Alan Gilbert --- fs/ntfs3/fsntfs.c | 28 ---------------------------- fs/ntfs3/ntfs_fs.h | 1 - 2 files changed, 29 deletions(-) diff --git a/fs/ntfs3/fsntfs.c b/fs/ntfs3/fsntfs.c index 938d351ebac7..df81f1f7330c 100644 --- a/fs/ntfs3/fsntfs.c +++ b/fs/ntfs3/fsntfs.c @@ -1035,34 +1035,6 @@ struct buffer_head *ntfs_bread(struct super_block *s= b, sector_t block) return NULL; } =20 -int ntfs_sb_read(struct super_block *sb, u64 lbo, size_t bytes, void *buff= er) -{ - struct block_device *bdev =3D sb->s_bdev; - u32 blocksize =3D sb->s_blocksize; - u64 block =3D lbo >> sb->s_blocksize_bits; - u32 off =3D lbo & (blocksize - 1); - u32 op =3D blocksize - off; - - for (; bytes; block +=3D 1, off =3D 0, op =3D blocksize) { - struct buffer_head *bh =3D __bread(bdev, block, blocksize); - - if (!bh) - return -EIO; - - if (op > bytes) - op =3D bytes; - - memcpy(buffer, bh->b_data + off, op); - - put_bh(bh); - - bytes -=3D op; - buffer =3D Add2Ptr(buffer, op); - } - - return 0; -} - int ntfs_sb_write(struct super_block *sb, u64 lbo, size_t bytes, const void *buf, int wait) { diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h index 2034dca90a5e..0e34c944b622 100644 --- a/fs/ntfs3/ntfs_fs.h +++ b/fs/ntfs3/ntfs_fs.h @@ -616,7 +616,6 @@ enum NTFS_DIRTY_FLAGS { NTFS_DIRTY_ERROR =3D 2, }; int ntfs_set_state(struct ntfs_sb_info *sbi, enum NTFS_DIRTY_FLAGS dirty); -int ntfs_sb_read(struct super_block *sb, u64 lbo, size_t bytes, void *buff= er); int ntfs_sb_write(struct super_block *sb, u64 lbo, size_t bytes, const void *buffer, int wait); int ntfs_sb_write_run(struct ntfs_sb_info *sbi, const struct runs_tree *ru= n, --=20 2.48.1 From nobody Fri Dec 19 06:17:46 2025 Received: from mx.treblig.org (mx.treblig.org [46.235.229.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 862DE2AE6C; Wed, 19 Feb 2025 01:46:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=46.235.229.95 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739929564; cv=none; b=nEIvJ554UcXHWYwkx7SN1NPVAeOMJPyOvisYIsy1YFWBnBzyKLve4FV7DK9oGb0Bi5YtPrOtRmxs2ZIMkjDPpQENOKLFgdQvr7WFFAibdPpvH2fTGFIVTSs9gA232kJDX42PXHlYZiiYTiQUG0qALBdXZhWC9ynWkyixw+97MWk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739929564; c=relaxed/simple; bh=ga2tNZICwomRcjV0C+bl1ZxZSDN6a6K85tSrSdGKXck=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kAgJ3GatHEmc/JYoEFImxOmUpNoT/VW1UAh5/VS/X0DwX5XJJHgRZGRT2I5L5YXINQyo2pALvpDhRQdoR46oiIzYL4IGD8HsBGUwRJ5oA4q4W02Tbe5LQF/DyLO8tlI8+Dqc0l2RV+Y4GRr4k0cvQzfOmmXv6QQRBS6fzd+csus= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=treblig.org; spf=pass smtp.mailfrom=treblig.org; dkim=pass (2048-bit key) header.d=treblig.org header.i=@treblig.org header.b=RBsBy/Ka; arc=none smtp.client-ip=46.235.229.95 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=treblig.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=treblig.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=treblig.org header.i=@treblig.org header.b="RBsBy/Ka" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=treblig.org ; s=bytemarkmx; h=MIME-Version:Message-ID:Date:Subject:From:Content-Type:From :Subject; bh=opKDNiGodqvA36hpdCHaOfs9vH6wfaWz90o6fifyo6s=; b=RBsBy/KaxB4iq+rm H4wGD1OEpFL9HMMr07D13R/Bjy+56wDPGdvq5lfKdiUJ1OyK8Kn5LjL3Tov02OWF8/XGSYPxGS7Wv TYjygCc3MZ/e+WDko71N+T5kEIah8I0ZXuWspa9h4AHDfIq1uMgLIfLCfju+B0A2256RvoF/zjlui 4BQB8TW83EuMG6HqSdP1aD13U6wH6p4xvx69mAAjUuXggME3HGMCpnUVRyQzUvAEd+vrAtyBV4w7J PrNYNdI0HPetQF2KfEcbXLd2pRdOtyGyAqaeejkqMdJ+T5CNZv6mXeU+JEsUDIGwUM5lcmO18qKuI kD1fK/1H0DllLUnE4Q==; Received: from localhost ([127.0.0.1] helo=dalek.home.treblig.org) by mx.treblig.org with esmtp (Exim 4.96) (envelope-from ) id 1tkZ9z-00GmJC-0j; Wed, 19 Feb 2025 01:45:59 +0000 From: linux@treblig.org To: almaz.alexandrovich@paragon-software.com, ntfs3@lists.linux.dev Cc: linux-kernel@vger.kernel.org, "Dr. David Alan Gilbert" Subject: [PATCH 3/3] fs/ntfs3: Remove unused ntfs_flush_inodes Date: Wed, 19 Feb 2025 01:45:56 +0000 Message-ID: <20250219014556.293497-4-linux@treblig.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250219014556.293497-1-linux@treblig.org> References: <20250219014556.293497-1-linux@treblig.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Dr. David Alan Gilbert" ntfs_flush_inodes() was added in 2021 by commit 82cae269cfa9 ("fs/ntfs3: Add initialization of super block") but has remained unused. Remove it, and it's helper function. Note: There is a commented out call to ntfs_flush_inodes in ntfs_truncate() - I've left that in place. Signed-off-by: Dr. David Alan Gilbert --- fs/ntfs3/inode.c | 40 ---------------------------------------- fs/ntfs3/ntfs_fs.h | 2 -- 2 files changed, 42 deletions(-) diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c index a1e11228dafd..3e2957a1e360 100644 --- a/fs/ntfs3/inode.c +++ b/fs/ntfs3/inode.c @@ -1024,46 +1024,6 @@ int ntfs_sync_inode(struct inode *inode) return _ni_write_inode(inode, 1); } =20 -/* - * writeback_inode - Helper function for ntfs_flush_inodes(). - * - * This writes both the inode and the file data blocks, waiting - * for in flight data blocks before the start of the call. It - * does not wait for any io started during the call. - */ -static int writeback_inode(struct inode *inode) -{ - int ret =3D sync_inode_metadata(inode, 0); - - if (!ret) - ret =3D filemap_fdatawrite(inode->i_mapping); - return ret; -} - -/* - * ntfs_flush_inodes - * - * Write data and metadata corresponding to i1 and i2. The io is - * started but we do not wait for any of it to finish. - * - * filemap_flush() is used for the block device, so if there is a dirty - * page for a block already in flight, we will not wait and start the - * io over again. - */ -int ntfs_flush_inodes(struct super_block *sb, struct inode *i1, - struct inode *i2) -{ - int ret =3D 0; - - if (i1) - ret =3D writeback_inode(i1); - if (!ret && i2) - ret =3D writeback_inode(i2); - if (!ret) - ret =3D filemap_flush(sb->s_bdev_file->f_mapping); - return ret; -} - /* * Helper function to read file. */ diff --git a/fs/ntfs3/ntfs_fs.h b/fs/ntfs3/ntfs_fs.h index 0e34c944b622..d628977e2556 100644 --- a/fs/ntfs3/ntfs_fs.h +++ b/fs/ntfs3/ntfs_fs.h @@ -713,8 +713,6 @@ int ntfs_write_end(struct file *file, struct address_sp= ace *mapping, loff_t pos, u32 len, u32 copied, struct folio *folio, void *fsdata); int ntfs3_write_inode(struct inode *inode, struct writeback_control *wbc); int ntfs_sync_inode(struct inode *inode); -int ntfs_flush_inodes(struct super_block *sb, struct inode *i1, - struct inode *i2); int inode_read_data(struct inode *inode, void *data, size_t bytes); int ntfs_create_inode(struct mnt_idmap *idmap, struct inode *dir, struct dentry *dentry, const struct cpu_str *uni, --=20 2.48.1