Message ID | 20170728105640.16268-1-lhenriques@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Luis Henriques <lhenriques@suse.com> 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,
On Thu, Aug 17, 2017 at 3:45 PM, Luis Henriques <lhenriques@suse.com> wrote: > Luis Henriques <lhenriques@suse.com> 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. It should or it does? ;) I saw generic/448 failures on ext4 with Darrick's recent test change, haven't tried ceph yet. Thanks, Ilya -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Ilya Dryomov <idryomov@gmail.com> writes: > On Thu, Aug 17, 2017 at 3:45 PM, Luis Henriques <lhenriques@suse.com> wrote: >> Luis Henriques <lhenriques@suse.com> 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. > > It should or it does? ;) > Heh, it *does* make generic/448 happy. > > I saw generic/448 failures on ext4 with Darrick's recent test >change, > haven't tried ceph yet. The generic/448 test currently fails with the error codes described in the commit log. I didn't found it useful to include in the commit log, but here's the full test output: File system supports the default behavior. File system does not support unwritten extents. File system magic#: 0xc36400 Allocation size: 4194304 18. Test file with negative SEEK_{HOLE,DATA} offsets 18.01 SEEK_HOLE expected -1 or -1, got 0. FAIL 18.02 SEEK_DATA expected -1 with errno -6, got -22. FAIL seek sanity check failed! Cheers,
On Thu, Aug 17, 2017 at 8:40 PM, Luis Henriques <lhenriques@suse.com> wrote: > Ilya Dryomov <idryomov@gmail.com> writes: > >> On Thu, Aug 17, 2017 at 3:45 PM, Luis Henriques <lhenriques@suse.com> wrote: >>> Luis Henriques <lhenriques@suse.com> 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. >> >> It should or it does? ;) >> > > Heh, it *does* make generic/448 happy. > >> >> I saw generic/448 failures on ext4 with Darrick's recent test >>change, >> haven't tried ceph yet. > > The generic/448 test currently fails with the error codes described in > the commit log. I didn't found it useful to include in the commit > log, but here's the full test output: > > File system supports the default behavior. > File system does not support unwritten extents. > File system magic#: 0xc36400 > Allocation size: 4194304 > 18. Test file with negative SEEK_{HOLE,DATA} offsets > 18.01 SEEK_HOLE expected -1 or -1, got 0. FAIL > 18.02 SEEK_DATA expected -1 with errno -6, got -22. FAIL > > seek sanity check failed! Applied. Thanks, Ilya -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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; }
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. Signed-off-by: Luis Henriques <lhenriques@suse.com> --- fs/ceph/file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html