Linux-Next Archive on lore.kernel.org
 help / color / Atom feed
From: Jan Stancek <jstancek@redhat.com>
To: Naresh Kamboju <naresh.kamboju@linaro.org>, darrick.wong@oracle.com
Cc: LTP List <ltp@lists.linux.it>,
	Linux-Next Mailing List <linux-next@vger.kernel.org>,
	linux-fsdevel@vger.kernel.org, chrubis <chrubis@suse.cz>,
	open list <linux-kernel@vger.kernel.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Mark Brown <broonie@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	lkft-triage@lists.linaro.org
Subject: Re: LTP: diotest4.c:476: read to read-only space. returns 0: Success
Date: Thu, 7 Nov 2019 19:20:43 -0500 (EST)
Message-ID: <852514139.11036267.1573172443439.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <CA+G9fYtmA5F174nTAtyshr03wkSqMS7+7NTDuJMd_DhJF6a4pw@mail.gmail.com>



----- Original Message -----
> LTP test case dio04 test failed on 32bit kernel running linux next
> 20191107 kernel.
> Linux version 5.4.0-rc6-next-20191107.
> 
> diotest4    1  TPASS  :  Negative Offset
> diotest4    2  TPASS  :  removed
> diotest4    3  TPASS  :  Odd count of read and write
> diotest4    4  TPASS  :  Read beyond the file size
> diotest4    5  TPASS  :  Invalid file descriptor
> diotest4    6  TPASS  :  Out of range file descriptor
> diotest4    7  TPASS  :  Closed file descriptor
> diotest4    8  TPASS  :  removed
> diotest4    9  TCONF  :  diotest4.c:345: Direct I/O on /dev/null is
> not supported
> diotest4   10  TPASS  :  read, write to a mmaped file
> diotest4   11  TPASS  :  read, write to an unmapped file
> diotest4   12  TPASS  :  read from file not open for reading
> diotest4   13  TPASS  :  write to file not open for writing
> diotest4   14  TPASS  :  read, write with non-aligned buffer
> diotest4   15  TFAIL  :  diotest4.c:476: read to read-only space.
> returns 0: Success
> diotest4   16  TFAIL  :  diotest4.c:180: read, write buffer in read-only
> space
> diotest4   17  TFAIL  :  diotest4.c:114: read allows  nonexistant
> space. returns 0: Success
> diotest4   18  TFAIL  :  diotest4.c:129: write allows  nonexistant
> space.returns -1: Invalid argument
> diotest4   19  TFAIL  :  diotest4.c:180: read, write in non-existant space
> diotest4   20  TPASS  :  read, write for file with O_SYNC
> diotest4    0  TINFO  :  2/15 test blocks failed

Smaller reproducer for 32-bit system and ext4 is:
  openat(AT_FDCWD, "testdata-4.5918", O_RDWR|O_DIRECT) = 4
  mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f7b000
  read(4, 0xb7f7b000, 4096)              = 0 // expects -EFAULT

Problem appears to be conversion in ternary operator at
iomap_dio_bio_actor() return. Test passes for me with
following tweak:

diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
index 2f88d64c2a4d..8615b1f78389 100644
--- a/fs/iomap/direct-io.c
+++ b/fs/iomap/direct-io.c
@@ -318,7 +318,7 @@ iomap_dio_bio_actor(struct inode *inode, loff_t pos, loff_t length,
                if (pad)
                        iomap_dio_zero(dio, iomap, pos, fs_block_size - pad);
        }
-       return copied ? copied : ret;
+       return copied ? (loff_t) copied : ret;
 }

 static loff_t


  reply index

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-07 13:59 Naresh Kamboju
2019-11-08  0:20 ` Jan Stancek [this message]
2019-11-11  1:26   ` Darrick J. Wong
2019-11-11  8:19     ` Jan Stancek
2019-11-11  8:38       ` Christoph Hellwig
2019-11-11 10:28         ` [PATCH] iomap: fix return value of iomap_dio_bio_actor on 32bit systems Jan Stancek
2019-11-11 10:36           ` Christoph Hellwig
2019-11-12  1:24           ` Darrick J. Wong
2019-11-11 10:38         ` LTP: diotest4.c:476: read to read-only space. returns 0: Success Jan Stancek
2019-11-11 18:26           ` Naresh Kamboju

Reply instructions:

You may reply publically 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=852514139.11036267.1573172443439.JavaMail.zimbra@redhat.com \
    --to=jstancek@redhat.com \
    --cc=arnd@arndb.de \
    --cc=broonie@kernel.org \
    --cc=chrubis@suse.cz \
    --cc=darrick.wong@oracle.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=lkft-triage@lists.linaro.org \
    --cc=ltp@lists.linux.it \
    --cc=naresh.kamboju@linaro.org \
    --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: link

Linux-Next Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-next/0 linux-next/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-next linux-next/ https://lore.kernel.org/linux-next \
		linux-next@vger.kernel.org
	public-inbox-index linux-next

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-next


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git