When reading journal-header, it should firstly check the result of
pread and then do decoce operation.
Signed-off-by: Ma Jianpeng <jianpeng.ma@intel.com>
(cherry picked from commit
c8e2b89cf6bc36a0ff29887b9e76cbbeceef9f8f)
buffer::ptr bp = buffer::create_page_aligned(block_size);
bp.zero();
int r = ::pread(fd, bp.c_str(), bp.length(), 0);
+
+ if (r < 0) {
+ int err = errno;
+ dout(0) << "read_header got " << cpp_strerror(err) << dendl;
+ return -err;
+ }
+
bl.push_back(bp);
try {
return -EINVAL;
}
- if (r < 0) {
- int err = errno;
- dout(0) << "read_header got " << cpp_strerror(err) << dendl;
- return -err;
- }
/*
* Unfortunately we weren't initializing the flags field for new