ocfs2-devel.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [Ocfs2-devel] [PATCH v4 1/5] fs: add i_blockmask()
@ 2023-03-10  5:48 Yangtao Li via Ocfs2-devel
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 2/5] erofs: convert to use i_blockmask() Yangtao Li via Ocfs2-devel
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Yangtao Li via Ocfs2-devel @ 2023-03-10  5:48 UTC (permalink / raw)
  To: xiang, chao, huyue2, jefflexu, tytso, adilger.kernel, rpeterso,
	agruenba, mark, jlbec, joseph.qi, viro, brauner
  Cc: Yangtao Li, linux-kernel, cluster-devel, linux-fsdevel,
	linux-ext4, linux-erofs, ocfs2-devel

Introduce i_blockmask() to simplify code, which replace
(i_blocksize(node) - 1). Like done in commit
93407472a21b("fs: add i_blocksize()").

Signed-off-by: Yangtao Li <frank.li@vivo.com>
---
v4:
-drop ext4 patch
-erofs patch based on mainline
-a bit change in ocfs2 patch
 include/linux/fs.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/linux/fs.h b/include/linux/fs.h
index c85916e9f7db..17387d465b8b 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -711,6 +711,11 @@ static inline unsigned int i_blocksize(const struct inode *node)
 	return (1 << node->i_blkbits);
 }
 
+static inline unsigned int i_blockmask(const struct inode *node)
+{
+	return i_blocksize(node) - 1;
+}
+
 static inline int inode_unhashed(struct inode *inode)
 {
 	return hlist_unhashed(&inode->i_hash);
-- 
2.25.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Ocfs2-devel] [PATCH v4 2/5] erofs: convert to use i_blockmask()
  2023-03-10  5:48 [Ocfs2-devel] [PATCH v4 1/5] fs: add i_blockmask() Yangtao Li via Ocfs2-devel
@ 2023-03-10  5:48 ` Yangtao Li via Ocfs2-devel
  2023-03-10  6:01   ` Gao Xiang via Ocfs2-devel
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 3/5] gfs2: " Yangtao Li via Ocfs2-devel
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Yangtao Li via Ocfs2-devel @ 2023-03-10  5:48 UTC (permalink / raw)
  To: xiang, chao, huyue2, jefflexu, tytso, adilger.kernel, rpeterso,
	agruenba, mark, jlbec, joseph.qi, viro, brauner
  Cc: Yangtao Li, linux-kernel, cluster-devel, linux-fsdevel,
	linux-ext4, linux-erofs, ocfs2-devel

Use i_blockmask() to simplify code.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
---
 fs/erofs/data.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/erofs/data.c b/fs/erofs/data.c
index e16545849ea7..d394102ef9de 100644
--- a/fs/erofs/data.c
+++ b/fs/erofs/data.c
@@ -376,7 +376,7 @@ static ssize_t erofs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
 		if (bdev)
 			blksize_mask = bdev_logical_block_size(bdev) - 1;
 		else
-			blksize_mask = (1 << inode->i_blkbits) - 1;
+			blksize_mask = i_blockmask(inode);
 
 		if ((iocb->ki_pos | iov_iter_count(to) |
 		     iov_iter_alignment(to)) & blksize_mask)
-- 
2.25.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Ocfs2-devel] [PATCH v4 3/5] gfs2: convert to use i_blockmask()
  2023-03-10  5:48 [Ocfs2-devel] [PATCH v4 1/5] fs: add i_blockmask() Yangtao Li via Ocfs2-devel
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 2/5] erofs: convert to use i_blockmask() Yangtao Li via Ocfs2-devel
@ 2023-03-10  5:48 ` Yangtao Li via Ocfs2-devel
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 4/5] ocfs2: " Yangtao Li via Ocfs2-devel
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 5/5] fs/remap_range: " Yangtao Li via Ocfs2-devel
  3 siblings, 0 replies; 9+ messages in thread
From: Yangtao Li via Ocfs2-devel @ 2023-03-10  5:48 UTC (permalink / raw)
  To: xiang, chao, huyue2, jefflexu, tytso, adilger.kernel, rpeterso,
	agruenba, mark, jlbec, joseph.qi, viro, brauner
  Cc: Yangtao Li, linux-kernel, cluster-devel, linux-fsdevel,
	linux-ext4, linux-erofs, ocfs2-devel

Use i_blockmask() to simplify code.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
---
 fs/gfs2/bmap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index eedf6926c652..1c6874b3851a 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -960,7 +960,7 @@ static struct folio *
 gfs2_iomap_get_folio(struct iomap_iter *iter, loff_t pos, unsigned len)
 {
 	struct inode *inode = iter->inode;
-	unsigned int blockmask = i_blocksize(inode) - 1;
+	unsigned int blockmask = i_blockmask(inode);
 	struct gfs2_sbd *sdp = GFS2_SB(inode);
 	unsigned int blocks;
 	struct folio *folio;
-- 
2.25.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Ocfs2-devel] [PATCH v4 4/5] ocfs2: convert to use i_blockmask()
  2023-03-10  5:48 [Ocfs2-devel] [PATCH v4 1/5] fs: add i_blockmask() Yangtao Li via Ocfs2-devel
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 2/5] erofs: convert to use i_blockmask() Yangtao Li via Ocfs2-devel
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 3/5] gfs2: " Yangtao Li via Ocfs2-devel
@ 2023-03-10  5:48 ` Yangtao Li via Ocfs2-devel
  2023-03-10 11:13   ` Joseph Qi via Ocfs2-devel
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 5/5] fs/remap_range: " Yangtao Li via Ocfs2-devel
  3 siblings, 1 reply; 9+ messages in thread
From: Yangtao Li via Ocfs2-devel @ 2023-03-10  5:48 UTC (permalink / raw)
  To: xiang, chao, huyue2, jefflexu, tytso, adilger.kernel, rpeterso,
	agruenba, mark, jlbec, joseph.qi, viro, brauner
  Cc: Yangtao Li, linux-kernel, cluster-devel, linux-fsdevel,
	linux-ext4, linux-erofs, ocfs2-devel

Use i_blockmask() to simplify code. BTW convert ocfs2_is_io_unaligned
to return bool type and the fact that the value will be the same
(i.e. that ->i_blkbits is never changed by ocfs2).

Signed-off-by: Yangtao Li <frank.li@vivo.com>
---
 fs/ocfs2/file.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index efb09de4343d..7fd06a4d27d4 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -2159,14 +2159,9 @@ int ocfs2_check_range_for_refcount(struct inode *inode, loff_t pos,
 	return ret;
 }
 
-static int ocfs2_is_io_unaligned(struct inode *inode, size_t count, loff_t pos)
+static bool ocfs2_is_io_unaligned(struct inode *inode, size_t count, loff_t pos)
 {
-	int blockmask = inode->i_sb->s_blocksize - 1;
-	loff_t final_size = pos + count;
-
-	if ((pos & blockmask) || (final_size & blockmask))
-		return 1;
-	return 0;
+	return ((pos | count) & i_blockmask(inode)) != 0;
 }
 
 static int ocfs2_inode_lock_for_extent_tree(struct inode *inode,
-- 
2.25.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Ocfs2-devel] [PATCH v4 5/5] fs/remap_range: convert to use i_blockmask()
  2023-03-10  5:48 [Ocfs2-devel] [PATCH v4 1/5] fs: add i_blockmask() Yangtao Li via Ocfs2-devel
                   ` (2 preceding siblings ...)
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 4/5] ocfs2: " Yangtao Li via Ocfs2-devel
@ 2023-03-10  5:48 ` Yangtao Li via Ocfs2-devel
  3 siblings, 0 replies; 9+ messages in thread
From: Yangtao Li via Ocfs2-devel @ 2023-03-10  5:48 UTC (permalink / raw)
  To: xiang, chao, huyue2, jefflexu, tytso, adilger.kernel, rpeterso,
	agruenba, mark, jlbec, joseph.qi, viro, brauner
  Cc: Yangtao Li, linux-kernel, cluster-devel, linux-fsdevel,
	linux-ext4, linux-erofs, ocfs2-devel

Use i_blockmask() to simplify code.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
---
 fs/remap_range.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/remap_range.c b/fs/remap_range.c
index 1331a890f2f2..7a524b620e7d 100644
--- a/fs/remap_range.c
+++ b/fs/remap_range.c
@@ -127,7 +127,7 @@ static int generic_remap_check_len(struct inode *inode_in,
 				   loff_t *len,
 				   unsigned int remap_flags)
 {
-	u64 blkmask = i_blocksize(inode_in) - 1;
+	u64 blkmask = i_blockmask(inode_in);
 	loff_t new_len = *len;
 
 	if ((*len & blkmask) == 0)
-- 
2.25.1


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Ocfs2-devel] [PATCH v4 2/5] erofs: convert to use i_blockmask()
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 2/5] erofs: convert to use i_blockmask() Yangtao Li via Ocfs2-devel
@ 2023-03-10  6:01   ` Gao Xiang via Ocfs2-devel
  2023-03-10  6:15     ` Yangtao Li via Ocfs2-devel
  0 siblings, 1 reply; 9+ messages in thread
From: Gao Xiang via Ocfs2-devel @ 2023-03-10  6:01 UTC (permalink / raw)
  To: Yangtao Li, xiang, chao, huyue2, jefflexu, tytso, adilger.kernel,
	rpeterso, agruenba, mark, jlbec, joseph.qi, viro, brauner
  Cc: linux-kernel, cluster-devel, linux-fsdevel, linux-ext4,
	linux-erofs, ocfs2-devel

The message from this sender included one or more files
which could not be scanned for virus detection; do not
open these files unless you are certain of the sender's intent.

----------------------------------------------------------------------
Hi Yangtao,

On 2023/3/10 13:48, Yangtao Li wrote:
> Use i_blockmask() to simplify code.
> 
> Signed-off-by: Yangtao Li <frank.li@vivo.com>

Please help drop this one since we'd like to use it until i_blockmask()
lands to upstream.

Thanks,
Gao Xiang

> ---
>   fs/erofs/data.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/erofs/data.c b/fs/erofs/data.c
> index e16545849ea7..d394102ef9de 100644
> --- a/fs/erofs/data.c
> +++ b/fs/erofs/data.c
> @@ -376,7 +376,7 @@ static ssize_t erofs_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
>   		if (bdev)
>   			blksize_mask = bdev_logical_block_size(bdev) - 1;
>   		else
> -			blksize_mask = (1 << inode->i_blkbits) - 1;
> +			blksize_mask = i_blockmask(inode);
>   
>   		if ((iocb->ki_pos | iov_iter_count(to) |
>   		     iov_iter_alignment(to)) & blksize_mask)

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Ocfs2-devel] [PATCH v4 2/5] erofs: convert to use i_blockmask()
  2023-03-10  6:01   ` Gao Xiang via Ocfs2-devel
@ 2023-03-10  6:15     ` Yangtao Li via Ocfs2-devel
  2023-03-10  6:20       ` Gao Xiang via Ocfs2-devel
  0 siblings, 1 reply; 9+ messages in thread
From: Yangtao Li via Ocfs2-devel @ 2023-03-10  6:15 UTC (permalink / raw)
  To: xiang, chao, huyue2, jefflexu, tytso, adilger.kernel, rpeterso,
	agruenba, mark, jlbec, joseph.qi, viro, brauner
  Cc: linux-kernel, cluster-devel, linux-fsdevel, linux-ext4,
	linux-erofs, ocfs2-devel

Hi Gao Xiang,

> Please help drop this one since we'd like to use it until i_blockmask() lands to upstream.

I'm OK. Not sure if I need to resend v5?

Thx,
Yangtao

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Ocfs2-devel] [PATCH v4 2/5] erofs: convert to use i_blockmask()
  2023-03-10  6:15     ` Yangtao Li via Ocfs2-devel
@ 2023-03-10  6:20       ` Gao Xiang via Ocfs2-devel
  0 siblings, 0 replies; 9+ messages in thread
From: Gao Xiang via Ocfs2-devel @ 2023-03-10  6:20 UTC (permalink / raw)
  To: Yangtao Li, xiang, chao, huyue2, jefflexu, tytso, adilger.kernel,
	rpeterso, agruenba, mark, jlbec, joseph.qi, viro, brauner
  Cc: linux-kernel, cluster-devel, linux-fsdevel, linux-ext4,
	linux-erofs, ocfs2-devel



On 2023/3/10 14:15, Yangtao Li wrote:
> Hi Gao Xiang,
> 
>> Please help drop this one since we'd like to use it until i_blockmask() lands to upstream.
> 
> I'm OK. Not sure if I need to resend v5?

Thanks, your patch looks fine to me.  The main reasons are that
  1) active cross tree development on cleanup stuffs;
  2) we'd like to add subpage block support for the next cycle,
     and they seem somewhat convolved...

So I will apply your patch when i_blockmask() is landed upstream
then.

Thanks,
Gao Xiang

> 
> Thx,
> Yangtao

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Ocfs2-devel] [PATCH v4 4/5] ocfs2: convert to use i_blockmask()
  2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 4/5] ocfs2: " Yangtao Li via Ocfs2-devel
@ 2023-03-10 11:13   ` Joseph Qi via Ocfs2-devel
  0 siblings, 0 replies; 9+ messages in thread
From: Joseph Qi via Ocfs2-devel @ 2023-03-10 11:13 UTC (permalink / raw)
  To: Yangtao Li, xiang, chao, huyue2, jefflexu, tytso, adilger.kernel,
	rpeterso, agruenba, mark, jlbec, viro, brauner
  Cc: linux-kernel, cluster-devel, linux-fsdevel, linux-ext4,
	linux-erofs, ocfs2-devel



On 3/10/23 1:48 PM, Yangtao Li wrote:
> Use i_blockmask() to simplify code. BTW convert ocfs2_is_io_unaligned
> to return bool type and the fact that the value will be the same
> (i.e. that ->i_blkbits is never changed by ocfs2).
> 
> Signed-off-by: Yangtao Li <frank.li@vivo.com>
> ---
>  fs/ocfs2/file.c | 9 ++-------
>  1 file changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
> index efb09de4343d..7fd06a4d27d4 100644
> --- a/fs/ocfs2/file.c
> +++ b/fs/ocfs2/file.c
> @@ -2159,14 +2159,9 @@ int ocfs2_check_range_for_refcount(struct inode *inode, loff_t pos,
>  	return ret;
>  }
>  
> -static int ocfs2_is_io_unaligned(struct inode *inode, size_t count, loff_t pos)
> +static bool ocfs2_is_io_unaligned(struct inode *inode, size_t count, loff_t pos)
>  {
> -	int blockmask = inode->i_sb->s_blocksize - 1;
> -	loff_t final_size = pos + count;
> -
> -	if ((pos & blockmask) || (final_size & blockmask))
> -		return 1;
> -	return 0;
> +	return ((pos | count) & i_blockmask(inode)) != 0;

Or !!((pos | count) & i_blockmask(inode))?

My concern is just like erofs, we'd better get vfs helper into mainline
first. Or can we fold the whole series into one patch? Since it's simple
enough I think.

Thanks,
Joseph

>  }
>  
>  static int ocfs2_inode_lock_for_extent_tree(struct inode *inode,

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-03-22 17:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-10  5:48 [Ocfs2-devel] [PATCH v4 1/5] fs: add i_blockmask() Yangtao Li via Ocfs2-devel
2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 2/5] erofs: convert to use i_blockmask() Yangtao Li via Ocfs2-devel
2023-03-10  6:01   ` Gao Xiang via Ocfs2-devel
2023-03-10  6:15     ` Yangtao Li via Ocfs2-devel
2023-03-10  6:20       ` Gao Xiang via Ocfs2-devel
2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 3/5] gfs2: " Yangtao Li via Ocfs2-devel
2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 4/5] ocfs2: " Yangtao Li via Ocfs2-devel
2023-03-10 11:13   ` Joseph Qi via Ocfs2-devel
2023-03-10  5:48 ` [Ocfs2-devel] [PATCH v4 5/5] fs/remap_range: " Yangtao Li via Ocfs2-devel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).