]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: check if Fh is readable before read
authorYan, Zheng <zyan@redhat.com>
Wed, 13 Jan 2016 07:55:02 +0000 (15:55 +0800)
committerYan, Zheng <zyan@redhat.com>
Thu, 14 Jan 2016 03:51:58 +0000 (11:51 +0800)
Fixes: #11517
Signed-off-by: Yan, Zheng <zyan@redhat.com>
src/client/Client.cc

index 9a0c36a5f467303682d47fc649533d512ab90d5c..44c3e76e19cd1aa0dd7ca5b1f9178f8abf889443 100644 (file)
@@ -7405,6 +7405,8 @@ int Client::_read(Fh *f, int64_t offset, uint64_t size, bufferlist *bl)
   const md_config_t *conf = cct->_conf;
   Inode *in = f->inode.get();
 
+  if ((f->mode & CEPH_FILE_MODE_RD) == 0)
+    return -EBADF;
   //bool lazy = f->mode == CEPH_FILE_MODE_LAZY;
 
   bool movepos = false;