From: Yuri Weinstein Date: Fri, 10 Jan 2020 20:18:13 +0000 (-0800) Subject: Merge pull request #30766 from smithfarm/wip-42145-nautilus X-Git-Tag: v14.2.8~20^2~64 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d54bf33bb81c26e71a2335bad1fc398e82911100;p=ceph.git Merge pull request #30766 from smithfarm/wip-42145-nautilus nautilus: cephfs: client: remove Inode.dir_contacts field and handle bad whence value to llseek gracefully --- d54bf33bb81c26e71a2335bad1fc398e82911100 diff --cc src/client/Client.cc index 3f1e3b9bbbf,f9e04e5ca8c..571dceca3c9 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@@ -8913,25 -8870,12 +8899,26 @@@ loff_t Client::_lseek(Fh *f, loff_t off pos = in->size + offset; break; + case SEEK_DATA: + if (offset < 0 || offset >= in->size) { + r = -ENXIO; + return offset; + } + pos = offset; + break; + + case SEEK_HOLE: + if (offset < 0 || offset >= in->size) { + r = -ENXIO; + pos = offset; + } else { + pos = in->size; + } + break; + default: - ceph_abort(); + ldout(cct, 1) << __func__ << ": invalid whence value " << whence << dendl; + return -EINVAL; } if (pos < 0) {