Moves file open and stat into the (atomic) link step, so size
is correctly interned in the cache. Fix suggested by dang.
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
return -ret;
}
+ /* note that open() and stat() return already sign-reversed result codes */
+ ret = open(dpp);
+ if (ret < 0) {
+ ldpp_dout(dpp, 20) << "ERROR: POSIXAtomicWriter failed opening file" << dendl;
+ return ret;
+ }
+
+ ret = stat(dpp);
+ if (ret < 0) {
+ ldpp_dout(dpp, 20) << "ERROR: POSIXAtomicWriter failed closing file" << dendl;
+ return ret;
+ }
+
return 0;
}
return ret;
}
- ret = obj->open(dpp);
- if (ret < 0) {
- ldpp_dout(rctx.dpp, 20) << "ERROR: POSIXAtomicWriter failed opening file" << dendl;
- return ret;
- }
-
- ret = obj->stat(dpp);
- if (ret < 0) {
- ldpp_dout(rctx.dpp, 20) << "ERROR: POSIXAtomicWriter failed closing file" << dendl;
- return ret;
- }
-
return 0;
}