Re: [PATCH] ceph: check negative offsets on ceph_llseek()

From: Luis Henriques
Date: Thu Aug 17 2017 - 09:46:15 EST


Luis Henriques <lhenriques@xxxxxxxx> writes:

> When a user requests SEEK_HOLE or SEEK_DATA with a negative offset
> ceph_llseek should return -ENXIO. Currently -EINVAL is being returned for
> SEEK_DATA and 0 for SEEK_HOLE.

Ping

This patch should make xfstest generic/448 happy.

Cheers,
--
LuÃs

>
> Signed-off-by: Luis Henriques <lhenriques@xxxxxxxx>
> ---
> fs/ceph/file.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ceph/file.c b/fs/ceph/file.c
> index 3d48c415f3cb..e1912e67843f 100644
> --- a/fs/ceph/file.c
> +++ b/fs/ceph/file.c
> @@ -1481,13 +1481,13 @@ static loff_t ceph_llseek(struct file *file, loff_t offset, int whence)
> offset += file->f_pos;
> break;
> case SEEK_DATA:
> - if (offset >= i_size) {
> + if (offset < 0 || offset >= i_size) {
> ret = -ENXIO;
> goto out;
> }
> break;
> case SEEK_HOLE:
> - if (offset >= i_size) {
> + if (offset < 0 || offset >= i_size) {
> ret = -ENXIO;
> goto out;
> }
>