From: Sweet Tea Dorminy <sweettea-kernel@dorminy.me> To: "Jonathan Corbet" <corbet@lwn.net>, "Kent Overstreet" <kent.overstreet@linux.dev>, "Brian Foster" <bfoster@redhat.com>, "Chris Mason" <clm@fb.com>, "Josef Bacik" <josef@toxicpanda.com>, "David Sterba" <dsterba@suse.com>, "Jaegeuk Kim" <jaegeuk@kernel.org>, "Chao Yu" <chao@kernel.org>, "Alexander Viro" <viro@zeniv.linux.org.uk>, "Christian Brauner" <brauner@kernel.org>, "Jan Kara" <jack@suse.cz>, "Mickaël Salaün" <mic@digikod.net>, "Sweet Tea Dorminy" <sweettea-kernel@dorminy.me>, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, kernel-team@meta.com Subject: [PATCH v3 09/13] f2fs: fiemap: return correct extent physical length Date: Wed, 3 Apr 2024 03:22:50 -0400 [thread overview] Message-ID: <3bcdf126c1db6b4119d4bbdd4dc621c3ca3e2ae1.1712126039.git.sweettea-kernel@dorminy.me> (raw) In-Reply-To: <cover.1712126039.git.sweettea-kernel@dorminy.me> Signed-off-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me> --- fs/f2fs/data.c | 25 ++++++++++++++++--------- fs/f2fs/inline.c | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 34af1673461b..2a3625c10125 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1829,7 +1829,9 @@ static int f2fs_xattr_fiemap(struct inode *inode, f2fs_put_page(page, 1); - flags = FIEMAP_EXTENT_DATA_INLINE | FIEMAP_EXTENT_NOT_ALIGNED; + flags = FIEMAP_EXTENT_DATA_INLINE | + FIEMAP_EXTENT_NOT_ALIGNED | + FIEMAP_EXTENT_HAS_PHYS_LEN; if (!xnid) flags |= FIEMAP_EXTENT_LAST; @@ -1857,7 +1859,7 @@ static int f2fs_xattr_fiemap(struct inode *inode, f2fs_put_page(page, 1); - flags = FIEMAP_EXTENT_LAST; + flags = FIEMAP_EXTENT_LAST | FIEMAP_EXTENT_HAS_PHYS_LEN; } if (phys) { @@ -1894,8 +1896,8 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, struct f2fs_map_blocks map; sector_t start_blk, last_blk; pgoff_t next_pgofs; - u64 logical = 0, phys = 0, size = 0; - u32 flags = 0; + u64 logical = 0, phys = 0, size = 0, phys_size = 0; + u32 flags = FIEMAP_EXTENT_HAS_PHYS_LEN; int ret = 0; bool compr_cluster = false, compr_appended; unsigned int cluster_size = F2FS_I(inode)->i_cluster_size; @@ -1981,11 +1983,12 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, flags |= FIEMAP_EXTENT_DATA_ENCRYPTED; ret = fiemap_fill_next_extent(fieinfo, logical, - phys, size, 0, flags); - trace_f2fs_fiemap(inode, logical, phys, size, 0, flags, ret); + phys, size, phys_size, flags); + trace_f2fs_fiemap(inode, logical, phys, size, phys_size, flags, ret); if (ret) goto out; size = 0; + phys_size = 0; } if (start_blk > last_blk) @@ -2006,17 +2009,21 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, phys = __is_valid_data_blkaddr(map.m_pblk) ? blks_to_bytes(inode, map.m_pblk) : 0; size = blks_to_bytes(inode, map.m_len); - flags = 0; + phys_size = blks_to_bytes(inode, map.m_len); + flags = FIEMAP_EXTENT_HAS_PHYS_LEN; if (compr_cluster) { - flags = FIEMAP_EXTENT_ENCODED; + flags = FIEMAP_EXTENT_ENCODED | + FIEMAP_EXTENT_HAS_PHYS_LEN; count_in_cluster += map.m_len; if (count_in_cluster == cluster_size) { compr_cluster = false; size += blks_to_bytes(inode, 1); + phys_size += blks_to_bytes(inode, 1); } } else if (map.m_flags & F2FS_MAP_DELALLOC) { - flags = FIEMAP_EXTENT_UNWRITTEN; + flags = FIEMAP_EXTENT_UNWRITTEN | + FIEMAP_EXTENT_HAS_PHYS_LEN; } start_blk += bytes_to_blks(inode, size); diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index 235b0d72f6fc..c1c804a754de 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/inline.c @@ -772,7 +772,7 @@ int f2fs_inline_data_fiemap(struct inode *inode, { __u64 byteaddr, ilen; __u32 flags = FIEMAP_EXTENT_DATA_INLINE | FIEMAP_EXTENT_NOT_ALIGNED | - FIEMAP_EXTENT_LAST; + FIEMAP_EXTENT_HAS_PHYS_LEN | FIEMAP_EXTENT_LAST; struct node_info ni; struct page *ipage; int err = 0; -- 2.43.0
WARNING: multiple messages have this Message-ID (diff)
From: Sweet Tea Dorminy via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net> To: "Jonathan Corbet" <corbet@lwn.net>, "Kent Overstreet" <kent.overstreet@linux.dev>, "Brian Foster" <bfoster@redhat.com>, "Chris Mason" <clm@fb.com>, "Josef Bacik" <josef@toxicpanda.com>, "David Sterba" <dsterba@suse.com>, "Jaegeuk Kim" <jaegeuk@kernel.org>, "Chao Yu" <chao@kernel.org>, "Alexander Viro" <viro@zeniv.linux.org.uk>, "Christian Brauner" <brauner@kernel.org>, "Jan Kara" <jack@suse.cz>, "Mickaël Salaün" <mic@digikod.net>, "Sweet Tea Dorminy" <sweettea-kernel@dorminy.me>, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, kernel-team@meta.com Subject: [f2fs-dev] [PATCH v3 09/13] f2fs: fiemap: return correct extent physical length Date: Wed, 3 Apr 2024 03:22:50 -0400 [thread overview] Message-ID: <3bcdf126c1db6b4119d4bbdd4dc621c3ca3e2ae1.1712126039.git.sweettea-kernel@dorminy.me> (raw) In-Reply-To: <cover.1712126039.git.sweettea-kernel@dorminy.me> Signed-off-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me> --- fs/f2fs/data.c | 25 ++++++++++++++++--------- fs/f2fs/inline.c | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 34af1673461b..2a3625c10125 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1829,7 +1829,9 @@ static int f2fs_xattr_fiemap(struct inode *inode, f2fs_put_page(page, 1); - flags = FIEMAP_EXTENT_DATA_INLINE | FIEMAP_EXTENT_NOT_ALIGNED; + flags = FIEMAP_EXTENT_DATA_INLINE | + FIEMAP_EXTENT_NOT_ALIGNED | + FIEMAP_EXTENT_HAS_PHYS_LEN; if (!xnid) flags |= FIEMAP_EXTENT_LAST; @@ -1857,7 +1859,7 @@ static int f2fs_xattr_fiemap(struct inode *inode, f2fs_put_page(page, 1); - flags = FIEMAP_EXTENT_LAST; + flags = FIEMAP_EXTENT_LAST | FIEMAP_EXTENT_HAS_PHYS_LEN; } if (phys) { @@ -1894,8 +1896,8 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, struct f2fs_map_blocks map; sector_t start_blk, last_blk; pgoff_t next_pgofs; - u64 logical = 0, phys = 0, size = 0; - u32 flags = 0; + u64 logical = 0, phys = 0, size = 0, phys_size = 0; + u32 flags = FIEMAP_EXTENT_HAS_PHYS_LEN; int ret = 0; bool compr_cluster = false, compr_appended; unsigned int cluster_size = F2FS_I(inode)->i_cluster_size; @@ -1981,11 +1983,12 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, flags |= FIEMAP_EXTENT_DATA_ENCRYPTED; ret = fiemap_fill_next_extent(fieinfo, logical, - phys, size, 0, flags); - trace_f2fs_fiemap(inode, logical, phys, size, 0, flags, ret); + phys, size, phys_size, flags); + trace_f2fs_fiemap(inode, logical, phys, size, phys_size, flags, ret); if (ret) goto out; size = 0; + phys_size = 0; } if (start_blk > last_blk) @@ -2006,17 +2009,21 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, phys = __is_valid_data_blkaddr(map.m_pblk) ? blks_to_bytes(inode, map.m_pblk) : 0; size = blks_to_bytes(inode, map.m_len); - flags = 0; + phys_size = blks_to_bytes(inode, map.m_len); + flags = FIEMAP_EXTENT_HAS_PHYS_LEN; if (compr_cluster) { - flags = FIEMAP_EXTENT_ENCODED; + flags = FIEMAP_EXTENT_ENCODED | + FIEMAP_EXTENT_HAS_PHYS_LEN; count_in_cluster += map.m_len; if (count_in_cluster == cluster_size) { compr_cluster = false; size += blks_to_bytes(inode, 1); + phys_size += blks_to_bytes(inode, 1); } } else if (map.m_flags & F2FS_MAP_DELALLOC) { - flags = FIEMAP_EXTENT_UNWRITTEN; + flags = FIEMAP_EXTENT_UNWRITTEN | + FIEMAP_EXTENT_HAS_PHYS_LEN; } start_blk += bytes_to_blks(inode, size); diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index 235b0d72f6fc..c1c804a754de 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/inline.c @@ -772,7 +772,7 @@ int f2fs_inline_data_fiemap(struct inode *inode, { __u64 byteaddr, ilen; __u32 flags = FIEMAP_EXTENT_DATA_INLINE | FIEMAP_EXTENT_NOT_ALIGNED | - FIEMAP_EXTENT_LAST; + FIEMAP_EXTENT_HAS_PHYS_LEN | FIEMAP_EXTENT_LAST; struct node_info ni; struct page *ipage; int err = 0; -- 2.43.0 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next prev parent reply other threads:[~2024-04-03 7:33 UTC|newest] Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-04-03 7:22 [PATCH v3 00/13] fiemap extension for more physical information Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-03 7:22 ` [PATCH v3 01/13] fs: fiemap: add physical_length field to extents Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-03 16:57 ` Brian Foster 2024-04-03 16:57 ` [f2fs-dev] " Brian Foster 2024-04-05 18:47 ` [PATCH v3 01/13] " Andreas Dilger 2024-04-09 16:22 ` [PATCH v3 01/13] fs: " Darrick J. Wong 2024-04-09 16:22 ` [f2fs-dev] " Darrick J. Wong 2024-04-09 19:50 ` Andreas Dilger 2024-04-03 7:22 ` [PATCH v3 02/13] fs: fiemap: update fiemap_fill_next_extent() signature Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-03 16:58 ` Brian Foster 2024-04-03 16:58 ` [f2fs-dev] " Brian Foster 2024-04-05 19:05 ` [PATCH v3 02/13] " Andreas Dilger 2024-04-05 19:06 ` Kent Overstreet 2024-04-05 19:06 ` [f2fs-dev] " Kent Overstreet 2024-04-03 7:22 ` [PATCH v3 03/13] fs: fiemap: add new COMPRESSED extent state Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-05 19:06 ` [PATCH v3 03/13] " Andreas Dilger 2024-04-03 7:22 ` [PATCH v3 04/13] btrfs: fiemap: emit new COMPRESSED state Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-05 19:10 ` Andreas Dilger 2024-04-03 7:22 ` [PATCH v3 05/13] btrfs: fiemap: return extent physical size Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-03 7:22 ` [PATCH v3 06/13] nilfs2: fiemap: return correct extent physical length Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-05 19:26 ` Andreas Dilger 2024-04-03 7:22 ` [PATCH v3 07/13] ext4: " Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-03 11:22 ` Jan Kara 2024-04-03 11:22 ` [f2fs-dev] " Jan Kara 2024-04-03 7:22 ` [PATCH v3 08/13] f2fs: fiemap: add physical length to trace_f2fs_fiemap Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-05 19:28 ` Andreas Dilger 2024-04-03 7:22 ` Sweet Tea Dorminy [this message] 2024-04-03 7:22 ` [f2fs-dev] [PATCH v3 09/13] f2fs: fiemap: return correct extent physical length Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-03 7:22 ` [PATCH v3 10/13] ocfs2: " Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-03 11:25 ` Jan Kara 2024-04-03 11:25 ` [f2fs-dev] " Jan Kara 2024-04-03 7:22 ` [PATCH v3 11/13] bcachefs: " Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-03 17:00 ` Brian Foster 2024-04-03 17:00 ` [f2fs-dev] " Brian Foster 2024-04-03 18:15 ` Kent Overstreet 2024-04-03 18:15 ` [f2fs-dev] " Kent Overstreet 2024-04-03 7:22 ` [PATCH v3 12/13] f2fs: fiemap: emit new COMPRESSED state Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-03 7:22 ` [PATCH v3 13/13] bcachefs: " Sweet Tea Dorminy 2024-04-03 7:22 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-05 19:17 ` Andreas Dilger 2024-04-05 19:34 ` Andreas Dilger 2024-04-06 5:20 ` Kent Overstreet 2024-04-06 5:20 ` [f2fs-dev] " Kent Overstreet 2024-04-03 8:29 ` [PATCH v3 00/13] fiemap extension for more physical information Gao Xiang 2024-04-03 8:29 ` [f2fs-dev] " Gao Xiang 2024-04-03 15:11 ` Sweet Tea Dorminy 2024-04-03 15:11 ` [f2fs-dev] " Sweet Tea Dorminy via Linux-f2fs-devel 2024-04-04 0:43 ` Gao Xiang 2024-04-04 0:43 ` [f2fs-dev] " Gao Xiang 2024-04-03 18:17 ` Kent Overstreet 2024-04-03 18:17 ` [f2fs-dev] " Kent Overstreet 2024-04-03 18:20 ` Darrick J. Wong 2024-04-03 18:20 ` [f2fs-dev] " Darrick J. Wong 2024-04-05 18:20 ` Andreas Dilger
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=3bcdf126c1db6b4119d4bbdd4dc621c3ca3e2ae1.1712126039.git.sweettea-kernel@dorminy.me \ --to=sweettea-kernel@dorminy.me \ --cc=bfoster@redhat.com \ --cc=brauner@kernel.org \ --cc=chao@kernel.org \ --cc=clm@fb.com \ --cc=corbet@lwn.net \ --cc=dsterba@suse.com \ --cc=jack@suse.cz \ --cc=jaegeuk@kernel.org \ --cc=josef@toxicpanda.com \ --cc=kent.overstreet@linux.dev \ --cc=kernel-team@meta.com \ --cc=linux-bcachefs@vger.kernel.org \ --cc=linux-btrfs@vger.kernel.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-f2fs-devel@lists.sourceforge.net \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mic@digikod.net \ --cc=viro@zeniv.linux.org.uk \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.