Skip to content

Commit 9323ea2

Browse files
authored
Merge pull request ceph#63144 from liu-chunmei/omap_noexist
crimson/osd/pg_backend: needn't check if os.exist Reviewed-by: Matan Breizman <[email protected]>
2 parents dd0e4e5 + 4461f23 commit 9323ea2

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
overrides:
2+
ceph:
3+
conf:
4+
osd:
5+
debug objclass: 20
6+
tasks:
7+
- workunit:
8+
clients:
9+
client.0:
10+
- cls/test_cls_cmpomap.sh

src/crimson/osd/pg_backend.cc

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1555,11 +1555,6 @@ PGBackend::omap_get_vals_by_keys(
15551555
OSDOp& osd_op,
15561556
object_stat_sum_t& delta_stats) const
15571557
{
1558-
if (!os.exists || os.oi.is_whiteout()) {
1559-
logger().debug("{}: object does not exist: {}", __func__, os.oi.soid);
1560-
return crimson::ct_error::enoent::make();
1561-
}
1562-
15631558
std::set<std::string> keys_to_get;
15641559
try {
15651560
auto p = osd_op.indata.cbegin();
@@ -1578,6 +1573,9 @@ PGBackend::omap_get_vals_by_keys(
15781573
crimson::ct_error::enodata::handle([&osd_op] {
15791574
uint32_t num = 0;
15801575
encode(num, osd_op.outdata);
1576+
// Although an error should be expected here since the object doesn't exist,
1577+
// we want to match classic's behavior as clients possibly rely on it.
1578+
// Return an empty, but successful return instead.
15811579
osd_op.rval = 0;
15821580
return ll_read_errorator::now();
15831581
}),

0 commit comments

Comments
 (0)