@@ -113,7 +113,7 @@ void DFS::Teardown() {
113113 do {
114114 ret = daos_eq_poll (mEventQueueHandle , 1 , -1 , 1 , &(temp_event));
115115 } while (ret == 1 );
116- daos_eq_destroy (mEventQueueHandle , 0 );
116+ int rc = daos_eq_destroy (mEventQueueHandle , 0 );
117117 Unmount ();
118118 ClearConnections ();
119119}
@@ -425,19 +425,22 @@ int DFS::DisconnectContainer(std::string pool_string, std::string cont_string) {
425425 return rc;
426426}
427427
428- ReadBuffer::ReadBuffer (daos_handle_t eqh, size_t size): buffer_size(size), eqh(eqh) {
428+ ReadBuffer::ReadBuffer (size_t id, daos_handle_t eqh, size_t size): id(id), buffer_size(size), eqh(eqh) {
429429 buffer = new char [size];
430430 buffer_offset = 0 ;
431431 event = new daos_event_t ;
432- daos_event_init (event, eqh,nullptr );
432+ int rc = daos_event_init (event, eqh,nullptr );
433+ if (rc) std::cout << " Failed to init" << std::endl;
433434 valid = false ;
434435}
435436
436437ReadBuffer::~ReadBuffer () {
437438 if (event != nullptr ) {
438439 bool event_status;
439- daos_event_test (event, 0 , &event_status);
440- daos_event_fini (event);
440+ int rc = daos_event_test (event, 0 , &event_status);
441+ if (rc) std::cout << " Failed to Test while destroying" << std::endl;
442+ rc = daos_event_fini (event);
443+ if (rc) std::cout << " Failed to Finalize" << std::endl;
441444 }
442445 delete [] buffer;
443446 delete event;
@@ -449,22 +452,25 @@ ReadBuffer::ReadBuffer(ReadBuffer&& read_buffer) {
449452 buffer = std::move (read_buffer.buffer );
450453 event = std::move (read_buffer.event );
451454 buffer_offset = 0 ;
455+ id = read_buffer.id ;
452456 valid = false ;
453457 read_buffer.buffer = nullptr ;
454458 read_buffer.event = nullptr ;
455459}
456460
457461bool
458- ReadBuffer::CacheHit (size_t pos, size_t len) {
459- return pos >= buffer_offset && len < buffer_size && (pos+len <= buffer_offset + buffer_size);
462+ ReadBuffer::CacheHit (const size_t pos, const size_t len) {
463+ return pos >= buffer_offset && len <= buffer_size && (pos+len <= buffer_offset + buffer_size);
460464}
461465
462466int
463467ReadBuffer::WaitEvent () {
464- if (valid) return 0 ;
468+ if (valid) return 0 ;
465469 bool event_status;
466- daos_event_test (event, -1 , &event_status);
470+ int rc = daos_event_test (event, -1 , &event_status);
471+ if (rc) std::cout << " Failed to Wait" << std::endl;
467472 if (event_status) {
473+ valid = true ;
468474 return 0 ;
469475 }
470476 return -1 ;
@@ -473,39 +479,38 @@ ReadBuffer::WaitEvent() {
473479int
474480ReadBuffer::AbortEvent () {
475481 bool event_status = false ;
476- daos_event_test (event, 0 , &event_status);
482+ int rc = daos_event_test (event, 0 , &event_status);
483+ if (rc) std::cout << " Failed to check event status" << std::endl;
477484 if (!event_status)
478485 return daos_event_abort (event);
479486 else
480487 return 0 ;
481488}
482489
483490int
484- ReadBuffer::ReadAsync (dfs_t * daos_fs, dfs_obj_t * file, size_t off) {
491+ ReadBuffer::ReadAsync (dfs_t * daos_fs, dfs_obj_t * file, const size_t off) {
485492 int rc = AbortEvent ();
486493 if (rc) return rc;
487494 d_sg_list_t rsgl;
488495 d_iov_t iov;
489496 d_iov_set (&iov, (void *)buffer, buffer_size);
490497 rsgl.sg_nr = 1 ;
491498 rsgl.sg_iovs = &iov;
492- daos_size_t read_size;
493499 valid = false ;
494500 buffer_offset = off;
495501 dfs_read (daos_fs, file, &rsgl,
496502 buffer_offset, &read_size, event);
497503}
498504
499505int
500- ReadBuffer::ReadSync (dfs_t * daos_fs, dfs_obj_t * file, size_t off) {
506+ ReadBuffer::ReadSync (dfs_t * daos_fs, dfs_obj_t * file, const size_t off) {
501507 int rc = AbortEvent ();
502508 if (rc) return rc;
503509 d_sg_list_t rsgl;
504510 d_iov_t iov;
505511 d_iov_set (&iov, (void *)buffer, buffer_size);
506512 rsgl.sg_nr = 1 ;
507513 rsgl.sg_iovs = &iov;
508- daos_size_t read_size;
509514 valid = false ;
510515 buffer_offset = off;
511516 rc = dfs_read (daos_fs, file, &rsgl,
@@ -515,27 +520,29 @@ ReadBuffer::ReadSync(dfs_t* daos_fs, dfs_obj_t* file, size_t off) {
515520}
516521
517522int
518- ReadBuffer::CopyData (char * ret, size_t off, size_t n) {
523+ ReadBuffer::CopyData (char * ret, const size_t off, const size_t n) {
519524 int rc = WaitEvent ();
520525 if (rc) return rc;
521- memcpy (ret, buffer + (off - buffer_offset), n);
526+ memcpy (ret, buffer + (off - buffer_offset), n);
522527 return 0 ;
523528}
524529
525530int
526- ReadBuffer::CopyFromCache (char * ret, size_t off, size_t n, daos_size_t file_size, TF_Status* status){
527- int rc = CopyData (ret, off, n);
531+ ReadBuffer::CopyFromCache (char * ret, const size_t off, const size_t n, const daos_size_t file_size, TF_Status* status){
532+ size_t read_size;
533+ read_size = off + n > file_size? file_size - off : n;
534+ int rc = CopyData (ret, off, read_size);
528535 if (rc) {
529536 TF_SetStatus (status, TF_INTERNAL, " " );
530537 return 0 ;
531538 }
532539
533540 if (off + n > file_size) {
534541 TF_SetStatus (status, TF_OUT_OF_RANGE, " " );
535- return file_size - off ;
542+ return read_size ;
536543 }
537544
538545 TF_SetStatus (status, TF_OK, " " );
539- return n ;
546+ return read_size ;
540547}
541548
0 commit comments