diff --git a/src/os/filestore/FileStore.cc b/src/os/filestore/FileStore.cc index 05f3bbbb459..24f7431c85e 100644 --- a/src/os/filestore/FileStore.cc +++ b/src/os/filestore/FileStore.cc @@ -1343,7 +1343,6 @@ int FileStore::mount() ret = read_superblock(); if (ret < 0) { - ret = -EINVAL; goto close_fsid_fd; } @@ -3013,7 +3012,7 @@ int FileStore::read( if (m_filestore_sloppy_crc && (!replaying || backend->can_checkpoint())) { ostringstream ss; int errors = backend->_crc_verify_read(**fd, offset, got, bl, &ss); - if (errors > 0) { + if (errors != 0) { dout(0) << "FileStore::read " << cid << "/" << oid << " " << offset << "~" << got << " ... BAD CRC:\n" << ss.str() << dendl; assert(0 == "bad crc on read"); @@ -3436,7 +3435,11 @@ int FileStore::_do_sparse_copy_range(int from, int to, uint64_t srcoff, uint64_t r = _do_fiemap(from, srcoff, len, &exomap); } - int64_t written = 0; + + int64_t written = 0; + if (r < 0) + goto out; + for (map::iterator miter = exomap.begin(); miter != exomap.end(); ++miter) { uint64_t it_off = miter->first - srcoff + dstoff; r = _do_copy_range(from, to, miter->first, miter->second, it_off, true); @@ -3956,7 +3959,6 @@ int FileStore::snapshot(const string& name) int r = backend->create_checkpoint(s, NULL); if (r) { - r = -errno; derr << "snapshot " << name << " failed: " << cpp_strerror(r) << dendl; } @@ -4172,7 +4174,6 @@ int FileStore::getattrs(const coll_t& _cid, const ghobject_t& oid, map