Support setattr guard
Test / buildenv (push) Successful in 8s
Details
Test / build (push) Successful in 3m9s
Details
Test / test_cas (push) Successful in 9s
Details
Test / make_test (push) Successful in 32s
Details
Test / test_change_pg_count (push) Successful in 32s
Details
Test / test_change_pg_size (push) Successful in 7s
Details
Test / test_change_pg_count_ec (push) Successful in 27s
Details
Test / test_create_nomaxid (push) Successful in 6s
Details
Test / test_etcd_fail (push) Successful in 52s
Details
Test / test_add_osd (push) Successful in 2m32s
Details
Test / test_interrupted_rebalance (push) Successful in 2m34s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 2m37s
Details
Test / test_failure_domain (push) Successful in 9s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 2m3s
Details
Test / test_snapshot (push) Successful in 23s
Details
Test / test_minsize_1 (push) Successful in 14s
Details
Test / test_snapshot_ec (push) Successful in 25s
Details
Test / test_rm (push) Successful in 15s
Details
Test / test_move_reappear (push) Successful in 21s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m35s
Details
Test / test_snapshot_down (push) Successful in 29s
Details
Test / test_snapshot_down_ec (push) Successful in 29s
Details
Test / test_splitbrain (push) Successful in 23s
Details
Test / test_snapshot_chain (push) Successful in 2m29s
Details
Test / test_snapshot_chain_ec (push) Successful in 3m3s
Details
Test / test_rebalance_verify_imm (push) Successful in 3m24s
Details
Test / test_rebalance_verify (push) Successful in 4m7s
Details
Test / test_switch_primary (push) Successful in 33s
Details
Test / test_write (push) Successful in 51s
Details
Test / test_write_xor (push) Successful in 51s
Details
Test / test_write_no_same (push) Successful in 13s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 4m14s
Details
Test / test_rebalance_verify_ec (push) Successful in 5m0s
Details
Test / test_heal_pg_size_2 (push) Successful in 3m28s
Details
Test / test_heal_ec (push) Successful in 3m57s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m35s
Details
Test / test_heal_csum_32k_dj (push) Successful in 5m34s
Details
Test / test_heal_csum_32k (push) Successful in 6m44s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m20s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 51s
Details
Test / test_scrub (push) Successful in 59s
Details
Test / test_scrub_xor (push) Successful in 1m5s
Details
Test / test_heal_csum_4k (push) Successful in 6m4s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m6s
Details
Test / test_scrub_pg_size_3 (push) Successful in 2m4s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m7s
Details
Test / test_nfs (push) Successful in 13s
Details
Test / test_scrub_ec (push) Successful in 19s
Details
Test / buildenv (push) Successful in 8s
Details
Test / build (push) Successful in 3m9s
Details
Test / test_cas (push) Successful in 9s
Details
Test / make_test (push) Successful in 32s
Details
Test / test_change_pg_count (push) Successful in 32s
Details
Test / test_change_pg_size (push) Successful in 7s
Details
Test / test_change_pg_count_ec (push) Successful in 27s
Details
Test / test_create_nomaxid (push) Successful in 6s
Details
Test / test_etcd_fail (push) Successful in 52s
Details
Test / test_add_osd (push) Successful in 2m32s
Details
Test / test_interrupted_rebalance (push) Successful in 2m34s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 2m37s
Details
Test / test_failure_domain (push) Successful in 9s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 2m3s
Details
Test / test_snapshot (push) Successful in 23s
Details
Test / test_minsize_1 (push) Successful in 14s
Details
Test / test_snapshot_ec (push) Successful in 25s
Details
Test / test_rm (push) Successful in 15s
Details
Test / test_move_reappear (push) Successful in 21s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m35s
Details
Test / test_snapshot_down (push) Successful in 29s
Details
Test / test_snapshot_down_ec (push) Successful in 29s
Details
Test / test_splitbrain (push) Successful in 23s
Details
Test / test_snapshot_chain (push) Successful in 2m29s
Details
Test / test_snapshot_chain_ec (push) Successful in 3m3s
Details
Test / test_rebalance_verify_imm (push) Successful in 3m24s
Details
Test / test_rebalance_verify (push) Successful in 4m7s
Details
Test / test_switch_primary (push) Successful in 33s
Details
Test / test_write (push) Successful in 51s
Details
Test / test_write_xor (push) Successful in 51s
Details
Test / test_write_no_same (push) Successful in 13s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 4m14s
Details
Test / test_rebalance_verify_ec (push) Successful in 5m0s
Details
Test / test_heal_pg_size_2 (push) Successful in 3m28s
Details
Test / test_heal_ec (push) Successful in 3m57s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m35s
Details
Test / test_heal_csum_32k_dj (push) Successful in 5m34s
Details
Test / test_heal_csum_32k (push) Successful in 6m44s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m20s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 51s
Details
Test / test_scrub (push) Successful in 59s
Details
Test / test_scrub_xor (push) Successful in 1m5s
Details
Test / test_heal_csum_4k (push) Successful in 6m4s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m6s
Details
Test / test_scrub_pg_size_3 (push) Successful in 2m4s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m7s
Details
Test / test_nfs (push) Successful in 13s
Details
Test / test_scrub_ec (push) Successful in 19s
Details
parent
584ef40b16
commit
955ce0bb60
|
@ -15,6 +15,7 @@ struct nfs_kv_setattr_state
|
|||
rpc_op_t *rop = NULL;
|
||||
uint64_t ino = 0;
|
||||
uint64_t old_size = 0, new_size = 0;
|
||||
std::string expected_ctime;
|
||||
json11::Json::object set_attrs;
|
||||
int res = 0, cas_res = 0;
|
||||
std::string ientry_text;
|
||||
|
@ -59,6 +60,12 @@ resume_1:
|
|||
cb(-EINVAL);
|
||||
return;
|
||||
}
|
||||
if (st->expected_ctime != "" && st->ientry["ctime"].string_value() != st->expected_ctime)
|
||||
{
|
||||
auto cb = std::move(st->cb);
|
||||
cb(NFS3ERR_NOT_SYNC);
|
||||
return;
|
||||
}
|
||||
// Now we can update it
|
||||
st->new_attrs = st->ientry.object_items();
|
||||
st->old_size = st->ientry["size"].uint64_value();
|
||||
|
@ -140,6 +147,8 @@ int kv_nfs3_setattr_proc(void *opaque, rpc_op_t *rop)
|
|||
return 0;
|
||||
}
|
||||
st->ino = kv_fh_inode(fh);
|
||||
if (args->guard.check)
|
||||
st->expected_ctime = nfstime_to_str(args->guard.obj_ctime);
|
||||
if (args->new_attributes.size.set_it)
|
||||
st->set_attrs["size"] = args->new_attributes.size.size;
|
||||
if (args->new_attributes.mode.set_it)
|
||||
|
|
Loading…
Reference in New Issue