public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers
@ 2017-08-11 15:18 Christoph Hellwig
  2017-08-11 16:04 ` Darrick J. Wong
  2017-08-12  9:00 ` Paul Menzel
  0 siblings, 2 replies; 8+ messages in thread
From: Christoph Hellwig @ 2017-08-11 15:18 UTC (permalink / raw)
  To: linux-xfs; +Cc: pmenzel, stockhausen

Fix the min_t calls in the zeroing and dirtying helpers to perform the
comparisms on 64-bit types, which prevents them from incorrectly
being truncated, and larger zeroing operations being stuck in a never
ending loop.

Special thanks to Markus Stockhausen for spotting the bug.

Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
Tested-by: Paul Menzel <pmenzel@molgen.mpg.de>
---
 fs/iomap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/iomap.c b/fs/iomap.c
index 039266128b7f..59cc98ad7577 100644
--- a/fs/iomap.c
+++ b/fs/iomap.c
@@ -278,7 +278,7 @@ iomap_dirty_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
 		unsigned long bytes;	/* Bytes to write to page */
 
 		offset = (pos & (PAGE_SIZE - 1));
-		bytes = min_t(unsigned long, PAGE_SIZE - offset, length);
+		bytes = min_t(loff_t, PAGE_SIZE - offset, length);
 
 		rpage = __iomap_read_page(inode, pos);
 		if (IS_ERR(rpage))
@@ -373,7 +373,7 @@ iomap_zero_range_actor(struct inode *inode, loff_t pos, loff_t count,
 		unsigned offset, bytes;
 
 		offset = pos & (PAGE_SIZE - 1); /* Within page */
-		bytes = min_t(unsigned, PAGE_SIZE - offset, count);
+		bytes = min_t(loff_t, PAGE_SIZE - offset, count);
 
 		if (IS_DAX(inode))
 			status = iomap_dax_zero(pos, offset, bytes, iomap);
-- 
2.11.0


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

* Re: [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers
  2017-08-11 15:18 [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers Christoph Hellwig
@ 2017-08-11 16:04 ` Darrick J. Wong
  2017-08-11 16:06   ` Christoph Hellwig
  2017-08-12  9:00 ` Paul Menzel
  1 sibling, 1 reply; 8+ messages in thread
From: Darrick J. Wong @ 2017-08-11 16:04 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-xfs, pmenzel, stockhausen

On Fri, Aug 11, 2017 at 05:18:05PM +0200, Christoph Hellwig wrote:
> Fix the min_t calls in the zeroing and dirtying helpers to perform the
> comparisms on 64-bit types, which prevents them from incorrectly
> being truncated, and larger zeroing operations being stuck in a never
> ending loop.
> 
> Special thanks to Markus Stockhausen for spotting the bug.
> 
> Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
> Tested-by: Paul Menzel <pmenzel@molgen.mpg.de>

Looks fine to me,
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>

(Are you going to push this to Al yourself, or do you want me to drag it
through the xfs tree?)

> ---
>  fs/iomap.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/iomap.c b/fs/iomap.c
> index 039266128b7f..59cc98ad7577 100644
> --- a/fs/iomap.c
> +++ b/fs/iomap.c
> @@ -278,7 +278,7 @@ iomap_dirty_actor(struct inode *inode, loff_t pos, loff_t length, void *data,
>  		unsigned long bytes;	/* Bytes to write to page */
>  
>  		offset = (pos & (PAGE_SIZE - 1));
> -		bytes = min_t(unsigned long, PAGE_SIZE - offset, length);
> +		bytes = min_t(loff_t, PAGE_SIZE - offset, length);
>  
>  		rpage = __iomap_read_page(inode, pos);
>  		if (IS_ERR(rpage))
> @@ -373,7 +373,7 @@ iomap_zero_range_actor(struct inode *inode, loff_t pos, loff_t count,
>  		unsigned offset, bytes;
>  
>  		offset = pos & (PAGE_SIZE - 1); /* Within page */
> -		bytes = min_t(unsigned, PAGE_SIZE - offset, count);
> +		bytes = min_t(loff_t, PAGE_SIZE - offset, count);
>  
>  		if (IS_DAX(inode))
>  			status = iomap_dax_zero(pos, offset, bytes, iomap);
> -- 
> 2.11.0
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers
  2017-08-11 16:04 ` Darrick J. Wong
@ 2017-08-11 16:06   ` Christoph Hellwig
  2017-08-16 21:52     ` Darrick J. Wong
  0 siblings, 1 reply; 8+ messages in thread
From: Christoph Hellwig @ 2017-08-11 16:06 UTC (permalink / raw)
  To: Darrick J. Wong; +Cc: Christoph Hellwig, linux-xfs, pmenzel, stockhausen

On Fri, Aug 11, 2017 at 09:04:43AM -0700, Darrick J. Wong wrote:
> Looks fine to me,
> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
> 
> (Are you going to push this to Al yourself, or do you want me to drag it
> through the xfs tree?)

In general we've maintained iomap.c through the XFS tree so far.
I think it's easiest to stick to that.

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

* Re: [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers
  2017-08-11 15:18 [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers Christoph Hellwig
  2017-08-11 16:04 ` Darrick J. Wong
@ 2017-08-12  9:00 ` Paul Menzel
  2017-08-13  9:08   ` Christoph Hellwig
  1 sibling, 1 reply; 8+ messages in thread
From: Paul Menzel @ 2017-08-12  9:00 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-xfs, stockhausen, it+linux-nfs

Dear Christoph,


On 2017-08-11 17:18, Christoph Hellwig wrote:
> Fix the min_t calls in the zeroing and dirtying helpers to perform the
> comparisms on 64-bit types, which prevents them from incorrectly
> being truncated, and larger zeroing operations being stuck in a never
> ending loop.
> 
> Special thanks to Markus Stockhausen for spotting the bug.
> 
> Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
> Tested-by: Paul Menzel <pmenzel@molgen.mpg.de>

Thank you very much for providing the fix that quickly.

Please don’t forget to tag it for the stable series (4.8+).

Cc: stable@vger.kernel.org


Kind regards,

Paul

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

* Re: [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers
  2017-08-12  9:00 ` Paul Menzel
@ 2017-08-13  9:08   ` Christoph Hellwig
  2017-09-11 14:50     ` Paul Menzel
  0 siblings, 1 reply; 8+ messages in thread
From: Christoph Hellwig @ 2017-08-13  9:08 UTC (permalink / raw)
  To: Paul Menzel; +Cc: Christoph Hellwig, linux-xfs, stockhausen, it+linux-nfs

Hi Paul,

I'm overdue doing another XFS stable backport batch, and I will
include this patch.

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

* Re: [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers
  2017-08-11 16:06   ` Christoph Hellwig
@ 2017-08-16 21:52     ` Darrick J. Wong
  2017-08-17  7:05       ` Christoph Hellwig
  0 siblings, 1 reply; 8+ messages in thread
From: Darrick J. Wong @ 2017-08-16 21:52 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-xfs, pmenzel, stockhausen

On Fri, Aug 11, 2017 at 06:06:58PM +0200, Christoph Hellwig wrote:
> On Fri, Aug 11, 2017 at 09:04:43AM -0700, Darrick J. Wong wrote:
> > Looks fine to me,
> > Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
> > 
> > (Are you going to push this to Al yourself, or do you want me to drag it
> > through the xfs tree?)
> 
> In general we've maintained iomap.c through the XFS tree so far.
> I think it's easiest to stick to that.

Needs signed-off-by. :(

--D

> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers
  2017-08-16 21:52     ` Darrick J. Wong
@ 2017-08-17  7:05       ` Christoph Hellwig
  0 siblings, 0 replies; 8+ messages in thread
From: Christoph Hellwig @ 2017-08-17  7:05 UTC (permalink / raw)
  To: Darrick J. Wong; +Cc: Christoph Hellwig, linux-xfs, pmenzel, stockhausen

On Wed, Aug 16, 2017 at 02:52:55PM -0700, Darrick J. Wong wrote:
> On Fri, Aug 11, 2017 at 06:06:58PM +0200, Christoph Hellwig wrote:
> > On Fri, Aug 11, 2017 at 09:04:43AM -0700, Darrick J. Wong wrote:
> > > Looks fine to me,
> > > Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
> > > 
> > > (Are you going to push this to Al yourself, or do you want me to drag it
> > > through the xfs tree?)
> > 
> > In general we've maintained iomap.c through the XFS tree so far.
> > I think it's easiest to stick to that.
> 
> Needs signed-off-by. :(

Feel free to add it:

Reviewed-by: Christoph Hellwig <hch@lst.de>

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

* Re: [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers
  2017-08-13  9:08   ` Christoph Hellwig
@ 2017-09-11 14:50     ` Paul Menzel
  0 siblings, 0 replies; 8+ messages in thread
From: Paul Menzel @ 2017-09-11 14:50 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-xfs, stockhausen, it+linux-nfs

Dear Christoph,


On 08/13/17 11:08, Christoph Hellwig wrote:

> I'm overdue doing another XFS stable backport batch, and I will
> include this patch.

If I am not mistaken, this has not been picked up yet for the stable series.

```
$ git tag --contains e28ae8e428fefe2facd72cea9f29906ecb9c861d
v4.13
v4.13-rc6
v4.13-rc7
v4.13.1
$ git log --grep e28ae8e428fefe2facd72cea9f29906ecb9c861d v4.9.48
$
```

Do you want me to submit it for inclusion?


Kind regards,

Paul

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

end of thread, other threads:[~2017-09-11 14:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-11 15:18 [PATCH] iomap: fix integer truncation issues in the zeroing and dirtying helpers Christoph Hellwig
2017-08-11 16:04 ` Darrick J. Wong
2017-08-11 16:06   ` Christoph Hellwig
2017-08-16 21:52     ` Darrick J. Wong
2017-08-17  7:05       ` Christoph Hellwig
2017-08-12  9:00 ` Paul Menzel
2017-08-13  9:08   ` Christoph Hellwig
2017-09-11 14:50     ` Paul Menzel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox