* [PATCH] xfs_io: Prevent devide by zero from {pread,pwrite}_random
@ 2016-02-25 15:20 Dmitry Monakhov
2016-03-01 12:09 ` [PATCH] xfs_io: Prevent devide by zero from {pread, pwrite}_random Christoph Hellwig
0 siblings, 1 reply; 2+ messages in thread
From: Dmitry Monakhov @ 2016-02-25 15:20 UTC (permalink / raw)
To: xfs
Math is wrong if range requested is less or equals to block size
xfs_io -c 'pwrite -b 4k 8k 4k -R' \
-c 'pread -b 4k 4k 4k -R' -f file
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
---
io/pread.c | 6 +++++-
io/pwrite.c | 6 +++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/io/pread.c b/io/pread.c
index f16c86c..b98355f 100644
--- a/io/pread.c
+++ b/io/pread.c
@@ -245,7 +245,11 @@ read_random(
*total = 0;
while (count > 0) {
- off = ((offset + (random() % range)) / buffersize) * buffersize;
+ if (range)
+ off = ((offset + (random() % range)) / buffersize) *
+ buffersize;
+ else
+ off = offset;
bytes = do_pread(fd, off, buffersize, buffersize);
if (bytes == 0)
break;
diff --git a/io/pwrite.c b/io/pwrite.c
index 4fc8de6..67631ce 100644
--- a/io/pwrite.c
+++ b/io/pwrite.c
@@ -128,7 +128,11 @@ write_random(
*total = 0;
while (count > 0) {
- off = ((offset + (random() % range)) / buffersize) * buffersize;
+ if (range)
+ off = ((offset + (random() % range)) / buffersize) *
+ buffersize;
+ else
+ off = offset;
bytes = do_pwrite(file->fd, off, buffersize, buffersize);
if (bytes == 0)
break;
--
1.8.3.1
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] xfs_io: Prevent devide by zero from {pread, pwrite}_random
2016-02-25 15:20 [PATCH] xfs_io: Prevent devide by zero from {pread,pwrite}_random Dmitry Monakhov
@ 2016-03-01 12:09 ` Christoph Hellwig
0 siblings, 0 replies; 2+ messages in thread
From: Christoph Hellwig @ 2016-03-01 12:09 UTC (permalink / raw)
To: Dmitry Monakhov; +Cc: xfs
On Thu, Feb 25, 2016 at 07:20:53PM +0400, Dmitry Monakhov wrote:
>
> Math is wrong if range requested is less or equals to block size
>
> xfs_io -c 'pwrite -b 4k 8k 4k -R' \
> -c 'pread -b 4k 4k 4k -R' -f file
>
> Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Looks fine,
Reviewed-by: Christoph Hellwig <hch@lst.de>
Are we going to see a new testcase that relies on this soon? :)
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-03-01 12:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-25 15:20 [PATCH] xfs_io: Prevent devide by zero from {pread,pwrite}_random Dmitry Monakhov
2016-03-01 12:09 ` [PATCH] xfs_io: Prevent devide by zero from {pread, pwrite}_random Christoph Hellwig
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox