@@ -1807,10 +1807,10 @@ SeaStore::Shard::_do_transaction_step(
18071807 }
18081808 }
18091809 return fut.si_then ([&, op, this , FNAME](auto get_onode) {
1810- OnodeRef &o = onodes[op->oid ];
1811- if (!o ) {
1810+ OnodeRef& onode = onodes[op->oid ];
1811+ if (!onode ) {
18121812 assert (get_onode);
1813- o = get_onode;
1813+ onode = get_onode;
18141814 }
18151815 OnodeRef& d_onode = onodes[op->dest_oid ];
18161816 if ((op->op == Transaction::OP_CLONE
@@ -1833,21 +1833,23 @@ SeaStore::Shard::_do_transaction_step(
18331833 }
18341834 }).si_then ([&ctx, &i, &onodes, op, this , FNAME]() -> tm_ret {
18351835 const ghobject_t & oid = i.get_oid (op->oid );
1836+ OnodeRef& onode = onodes[op->oid ];
1837+ assert (onode);
18361838 try {
18371839 switch (op->op ) {
18381840 case Transaction::OP_REMOVE:
18391841 {
18401842 DEBUGT (" op REMOVE, oid={} ..." , *ctx.transaction , oid);
1841- return _remove (ctx, onodes[op-> oid ]
1842- ).si_then ([&onodes, op ] {
1843- onodes[op-> oid ] .reset ();
1843+ return _remove (ctx, onode
1844+ ).si_then ([&onode ] {
1845+ onode .reset ();
18441846 });
18451847 }
18461848 case Transaction::OP_CREATE:
18471849 case Transaction::OP_TOUCH:
18481850 {
18491851 DEBUGT (" op CREATE/TOUCH, oid={} ..." , *ctx.transaction , oid);
1850- return _touch (ctx, onodes[op-> oid ] );
1852+ return _touch (ctx, onode );
18511853 }
18521854 case Transaction::OP_WRITE:
18531855 {
@@ -1859,14 +1861,14 @@ SeaStore::Shard::_do_transaction_step(
18591861 DEBUGT (" op WRITE, oid={}, 0x{:x}~0x{:x}, flags=0x{:x} ..." ,
18601862 *ctx.transaction , oid, off, len, fadvise_flags);
18611863 return _write (
1862- ctx, onodes[op-> oid ] , off, len, std::move (bl),
1864+ ctx, onode , off, len, std::move (bl),
18631865 fadvise_flags);
18641866 }
18651867 case Transaction::OP_TRUNCATE:
18661868 {
18671869 uint64_t off = op->off ;
18681870 DEBUGT (" op TRUNCATE, oid={}, 0x{:x} ..." , *ctx.transaction , oid, off);
1869- return _truncate (ctx, onodes[op-> oid ] , off);
1871+ return _truncate (ctx, onode , off);
18701872 }
18711873 case Transaction::OP_SETATTR:
18721874 {
@@ -1876,36 +1878,39 @@ SeaStore::Shard::_do_transaction_step(
18761878 i.decode_bl (bl);
18771879 DEBUGT (" op SETATTR, oid={}, attr name={}, value length=0x{:x} ..." ,
18781880 *ctx.transaction , oid, name, bl.length ());
1879- return _setattrs (ctx, onodes[op-> oid ] , std::move (to_set));
1881+ return _setattrs (ctx, onode , std::move (to_set));
18801882 }
18811883 case Transaction::OP_SETATTRS:
18821884 {
18831885 std::map<std::string, bufferlist> to_set;
18841886 i.decode_attrset (to_set);
18851887 DEBUGT (" op SETATTRS, oid={}, attrs size={} ..." ,
18861888 *ctx.transaction , oid, to_set.size ());
1887- return _setattrs (ctx, onodes[op-> oid ] , std::move (to_set));
1889+ return _setattrs (ctx, onode , std::move (to_set));
18881890 }
18891891 case Transaction::OP_RMATTR:
18901892 {
18911893 std::string name = i.decode_string ();
18921894 DEBUGT (" op RMATTR, oid={}, attr name={} ..." ,
18931895 *ctx.transaction , oid, name);
1894- return _rmattr (ctx, onodes[op-> oid ] , name);
1896+ return _rmattr (ctx, onode , name);
18951897 }
18961898 case Transaction::OP_RMATTRS:
18971899 {
18981900 DEBUGT (" op RMATTRS, oid={} ..." , *ctx.transaction , oid);
1899- return _rmattrs (ctx, onodes[op-> oid ] );
1901+ return _rmattrs (ctx, onode );
19001902 }
19011903 case Transaction::OP_OMAP_SETKEYS:
19021904 {
19031905 std::map<std::string, ceph::bufferlist> aset;
19041906 i.decode_attrset (aset);
1905- const omap_root_le_t &root = select_log_omap_root (*onodes[op-> oid ] );
1907+ const omap_root_le_t &root = select_log_omap_root (*onode );
19061908 DEBUGT (" op OMAP_SETKEYS, oid={}, omap size={}, type={} ..." ,
19071909 *ctx.transaction , oid, aset.size (), root.get_type ());
1908- return _omap_set_values (ctx, onodes[op->oid ], std::move (aset),
1910+ return _omap_set_values (
1911+ ctx,
1912+ onode,
1913+ std::move (aset),
19091914 root);
19101915 }
19111916 case Transaction::OP_OMAP_SETHEADER:
@@ -1914,42 +1919,47 @@ SeaStore::Shard::_do_transaction_step(
19141919 i.decode_bl (bl);
19151920 DEBUGT (" op OMAP_SETHEADER, oid={}, length=0x{:x} ..." ,
19161921 *ctx.transaction , oid, bl.length ());
1917- return _omap_set_header (ctx, onodes[op-> oid ] , std::move (bl));
1922+ return _omap_set_header (ctx, onode , std::move (bl));
19181923 }
19191924 case Transaction::OP_OMAP_RMKEYS:
19201925 {
19211926 omap_keys_t keys;
19221927 i.decode_keyset (keys);
1923- const omap_root_le_t &root = select_log_omap_root (*onodes[op-> oid ] );
1928+ const omap_root_le_t &root = select_log_omap_root (*onode );
19241929 DEBUGT (" op OMAP_RMKEYS, oid={}, omap size={}, type={} ..." ,
19251930 *ctx.transaction , oid, keys.size (), root.get_type ());
1926- return _omap_rmkeys (ctx, onodes[op->oid ], std::move (keys), root);
1931+ return _omap_rmkeys (
1932+ ctx,
1933+ onode,
1934+ std::move (keys),
1935+ root);
19271936 }
19281937 case Transaction::OP_OMAP_RMKEYRANGE:
19291938 {
19301939 std::string first, last;
19311940 first = i.decode_string ();
19321941 last = i.decode_string ();
1933- const omap_root_le_t &root = select_log_omap_root (*onodes[op-> oid ] );
1942+ const omap_root_le_t &root = select_log_omap_root (*onode );
19341943 DEBUGT (" op OMAP_RMKEYRANGE, oid={}, first={}, last={}, type={}..." ,
19351944 *ctx.transaction , oid, first, last, root.get_type ());
19361945 return _omap_rmkeyrange (
1937- ctx, onodes[op->oid ],
1938- std::move (first), std::move (last),
1946+ ctx,
1947+ onode,
1948+ std::move (first), std::move (last),
19391949 root);
19401950 }
19411951 case Transaction::OP_OMAP_CLEAR:
19421952 {
19431953 DEBUGT (" op OMAP_CLEAR, oid={} ..." , *ctx.transaction , oid);
1944- return _omap_clear (ctx, onodes[op-> oid ] );
1954+ return _omap_clear (ctx, onode );
19451955 }
19461956 case Transaction::OP_ZERO:
19471957 {
19481958 objaddr_t off = op->off ;
19491959 extent_len_t len = op->len ;
19501960 DEBUGT (" op ZERO, oid={}, 0x{:x}~0x{:x} ..." ,
19511961 *ctx.transaction , oid, off, len);
1952- return _zero (ctx, onodes[op-> oid ] , off, len);
1962+ return _zero (ctx, onode , off, len);
19531963 }
19541964 case Transaction::OP_SETALLOCHINT:
19551965 {
@@ -1978,17 +1988,17 @@ SeaStore::Shard::_do_transaction_step(
19781988 {
19791989 DEBUGT (" op CLONE, oid={}, dest oid={} ..." ,
19801990 *ctx.transaction , oid, i.get_oid (op->dest_oid ));
1981- return _clone (ctx, onodes[op-> oid ] , onodes[op->dest_oid ]);
1991+ return _clone (ctx, onode , onodes[op->dest_oid ]);
19821992 }
19831993 case Transaction::OP_COLL_MOVE_RENAME:
19841994 {
19851995 DEBUGT (" op COLL_MOVE_RENAME, oid={}, dest oid={} ..." ,
19861996 *ctx.transaction , oid, i.get_oid (op->dest_oid ));
19871997 ceph_assert (op->cid == op->dest_cid );
19881998 return _rename (
1989- ctx, onodes[op-> oid ] , onodes[op->dest_oid ]
1990- ).si_then ([&onodes, op ] {
1991- onodes[op-> oid ] .reset ();
1999+ ctx, onode , onodes[op->dest_oid ]
2000+ ).si_then ([&onode ] {
2001+ onode .reset ();
19922002 });
19932003 }
19942004 default :
0 commit comments