diff options
author | David S. Miller <davem@davemloft.net> | 2018-11-24 17:01:43 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-24 17:01:43 -0800 |
commit | b1bf78bfb2e4c9ffa03ccdbc60d89a2f7c5fd82c (patch) | |
tree | fcd93c3f54a72ca6a6ee97f015efebe6d80a3271 /fs/read_write.c | |
parent | aea0a897af9e44c258e8ab9296fad417f1bc063a (diff) | |
parent | d146194f31c96f9b260c5a1cf1592d2e7f82a2e2 (diff) | |
download | linux-b1bf78bfb2e4c9ffa03ccdbc60d89a2f7c5fd82c.tar.gz linux-b1bf78bfb2e4c9ffa03ccdbc60d89a2f7c5fd82c.tar.bz2 linux-b1bf78bfb2e4c9ffa03ccdbc60d89a2f7c5fd82c.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'fs/read_write.c')
-rw-r--r-- | fs/read_write.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/fs/read_write.c b/fs/read_write.c index bfcb4ced5664..4dae0399c75a 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -2094,17 +2094,18 @@ int vfs_dedupe_file_range(struct file *file, struct file_dedupe_range *same) off = same->src_offset; len = same->src_length; - ret = -EISDIR; if (S_ISDIR(src->i_mode)) - goto out; + return -EISDIR; - ret = -EINVAL; if (!S_ISREG(src->i_mode)) - goto out; + return -EINVAL; + + if (!file->f_op->remap_file_range) + return -EOPNOTSUPP; ret = remap_verify_area(file, off, len, false); if (ret < 0) - goto out; + return ret; ret = 0; if (off + len > i_size_read(src)) @@ -2147,10 +2148,8 @@ next_fdput: fdput(dst_fd); next_loop: if (fatal_signal_pending(current)) - goto out; + break; } - -out: return ret; } EXPORT_SYMBOL(vfs_dedupe_file_range); |