mirror of
https://github.com/ceph/ceph
synced 2025-04-01 14:51:13 +00:00
rgw nfs: fix write continuations
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
This commit is contained in:
parent
d74d46170d
commit
b4d079f2b5
@ -1935,8 +1935,7 @@ public:
|
||||
RGWPutObjProcessor *processor;
|
||||
buffer::list data;
|
||||
MD5 hash;
|
||||
off_t last_off;
|
||||
off_t next_off;
|
||||
off_t real_ofs;
|
||||
size_t bytes_written;
|
||||
bool multipart;
|
||||
bool eio;
|
||||
@ -1944,8 +1943,8 @@ public:
|
||||
RGWWriteRequest(CephContext* _cct, RGWUserInfo *_user, RGWFileHandle* _fh,
|
||||
const std::string& _bname, const std::string& _oname)
|
||||
: RGWLibContinuedReq(_cct, _user), bucket_name(_bname), obj_name(_oname),
|
||||
rgw_fh(_fh), processor(nullptr), last_off(0), next_off(0),
|
||||
bytes_written(0), multipart(false), eio(false) {
|
||||
rgw_fh(_fh), processor(nullptr), real_ofs(0), bytes_written(0),
|
||||
multipart(false), eio(false) {
|
||||
|
||||
int ret = header_init();
|
||||
if (ret == 0) {
|
||||
@ -2018,10 +2017,12 @@ public:
|
||||
}
|
||||
|
||||
void put_data(off_t off, buffer::list& _bl) {
|
||||
if (off && (off != (ofs+1)))
|
||||
if (off != real_ofs) {
|
||||
eio = true;
|
||||
ofs = off;
|
||||
}
|
||||
data.claim(_bl);
|
||||
real_ofs += data.length();
|
||||
ofs = off; /* consumed in exec_continue() */
|
||||
}
|
||||
|
||||
virtual int exec_start();
|
||||
|
Loading…
Reference in New Issue
Block a user