summaryrefslogtreecommitdiff
path: root/fs/dax.c
diff options
context:
space:
mode:
authorHao Li <lihao2018.fnst@cn.fujitsu.com>2020-07-29 06:44:36 +0300
committerVishal Verma <vishal.l.verma@intel.com>2020-07-31 03:14:33 +0300
commit49688e654e48ae176b5bfda33d2416b68e607ce8 (patch)
tree97ee93c13b240fea45696a9683cdb19c310912a8 /fs/dax.c
parentcbeb0310cfda7b6148f417e36b96539101d7f449 (diff)
downloadlinux-49688e654e48ae176b5bfda33d2416b68e607ce8.tar.xz
dax: Fix incorrect argument passed to xas_set_err()
The argument passed to xas_set_err() to indicate an error should be negative. Otherwise, xas_error() will return 0, and grab_mapping_entry() will return the found entry instead of 'SIGBUS' when the entry is not in fact valid. This would result in problems in subsequent code paths. Link: https://lore.kernel.org/r/20200729034436.24267-1-lihao2018.fnst@cn.fujitsu.com Reviewed-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com> Signed-off-by: Hao Li <lihao2018.fnst@cn.fujitsu.com> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Diffstat (limited to 'fs/dax.c')
-rw-r--r--fs/dax.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/dax.c b/fs/dax.c
index 3e0babeb0365..95341af1a966 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -488,7 +488,7 @@ retry:
if (dax_is_conflict(entry))
goto fallback;
if (!xa_is_value(entry)) {
- xas_set_err(xas, EIO);
+ xas_set_err(xas, -EIO);
goto out_unlock;
}