linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Yufen Yu <yuyufen@huawei.com>, Al Viro <viro@zeniv.linux.org.uk>,
	Hugh Dickins <hughd@google.com>,
	William Kucharski <william.kucharski@oracle.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Sasha Levin <sashal@kernel.org>,
	linux-mm@kvack.org
Subject: [PATCH AUTOSEL 4.14 20/21] tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset
Date: Thu, 22 Nov 2018 14:54:51 -0500	[thread overview]
Message-ID: <20181122195452.13520-20-sashal@kernel.org> (raw)
In-Reply-To: <20181122195452.13520-1-sashal@kernel.org>

From: Yufen Yu <yuyufen@huawei.com>

[ Upstream commit 1a413646931cb14442065cfc17561e50f5b5bb44 ]

Other filesystems such as ext4, f2fs and ubifs all return ENXIO when
lseek (SEEK_DATA or SEEK_HOLE) requests a negative offset.

man 2 lseek says

:      EINVAL whence  is  not  valid.   Or: the resulting file offset would be
:             negative, or beyond the end of a seekable device.
:
:      ENXIO  whence is SEEK_DATA or SEEK_HOLE, and the file offset is  beyond
:             the end of the file.

Make tmpfs return ENXIO under these circumstances as well.  After this,
tmpfs also passes xfstests's generic/448.

[akpm@linux-foundation.org: rewrite changelog]
Link: http://lkml.kernel.org/r/1540434176-14349-1-git-send-email-yuyufen@huawei.com
Signed-off-by: Yufen Yu <yuyufen@huawei.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Hugh Dickins <hughd@google.com>
Cc: William Kucharski <william.kucharski@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 mm/shmem.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/mm/shmem.c b/mm/shmem.c
index ea786a504e1b..fa08f56fd5e5 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2590,9 +2590,7 @@ static loff_t shmem_file_llseek(struct file *file, loff_t offset, int whence)
 	inode_lock(inode);
 	/* We're holding i_mutex so we can access i_size directly */
 
-	if (offset < 0)
-		offset = -EINVAL;
-	else if (offset >= inode->i_size)
+	if (offset < 0 || offset >= inode->i_size)
 		offset = -ENXIO;
 	else {
 		start = offset >> PAGE_SHIFT;
-- 
2.17.1


  parent reply	other threads:[~2018-11-22 19:56 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-22 19:54 [PATCH AUTOSEL 4.14 01/21] pinctrl: meson: fix pinconf bias disable Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 02/21] scsi: NCR5380: Return false instead of NULL Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 03/21] KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 04/21] cpufreq: imx6q: add return value check for voltage scale Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 05/21] rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 06/21] crypto: simd - correctly take reqsize of wrapped skcipher into account Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 07/21] floppy: fix race condition in __floppy_read_block_0() Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 08/21] powerpc/io: Fix the IO workarounds code to work with Radix Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 09/21] perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 10/21] ARM: make lookup_processor_type() non-__init Sasha Levin
2018-11-23  0:02   ` Russell King - ARM Linux
2018-11-28 14:12     ` Sasha Levin
2018-11-28 17:39       ` Russell King - ARM Linux
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 11/21] ARM: split out processor lookup Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 12/21] ARM: clean up per-processor check_bugs method call Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 13/21] ARM: add PROC_VTABLE and PROC_TABLE macros Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 14/21] ARM: spectre-v2: per-CPU vtables to work around big.Little systems Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 15/21] SUNRPC: Fix a bogus get/put in generic_key_to_expire() Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 16/21] kdb: Use strscpy with destination buffer size Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 17/21] powerpc/numa: Suppress "VPHN is not supported" messages Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 18/21] efi/arm: Revert deferred unmap of early memmap mapping Sasha Levin
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 19/21] z3fold: fix possible reclaim races Sasha Levin
2018-11-22 19:54 ` Sasha Levin [this message]
2018-11-22 19:54 ` [PATCH AUTOSEL 4.14 21/21] mm, page_alloc: check for max order in hot path Sasha Levin

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=20181122195452.13520-20-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=hughd@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=william.kucharski@oracle.com \
    --cc=yuyufen@huawei.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).