75 "rsDataObjClose: l1descInx %d out of range",
84 "rsDataObjClose: l1descInx %d out of range",
90 if( !
L1desc[l1descInx].dataObjInp ) {
93 "rsDataObjClose: invalid dataObjInp for index %d",
98 if ( outDataObjInfo !=
NULL ) {
99 *outDataObjInfo =
NULL;
101 if (
L1desc[l1descInx].remoteZoneHost !=
NULL ) {
114 if (
L1desc[l1descInx].lockFd > 0 ) {
116 snprintf( fd_string,
sizeof( fd_string ),
"%-d",
L1desc[l1descInx].lockFd );
121 L1desc[l1descInx].dataObjInp,
130 if (
status >= 0 &&
L1desc[l1descInx].oprStatus >= 0 ) {
135 L1desc[l1descInx].dataObjInp );
152 L1desc[l1descInx].dataObjInp );
170 L1desc[l1descInx].dataObjInp );
186 L1desc[l1descInx].dataObjInp );
203 (
L1desc[l1descInx].bytesWritten > 0 ||
206 L1desc[l1descInx].dataObjInp );
220 else if (
L1desc[l1descInx].dataObjInp !=
NULL &&
223 L1desc[l1descInx].dataObjInp );
241 memset( &myDataObjCloseInp, 0,
sizeof( myDataObjCloseInp ) );
242 myDataObjCloseInp.
l1descInx = srcL1descInx;
246 if ( outDataObjInfo !=
NULL ) {
263 memset( ®Param, 0,
sizeof( regParam ) );
265 snprintf( tmpStr,
sizeof( tmpStr ),
"%ji", ( intmax_t ) _info->
dataSize );
269 &
L1desc[_l1descInx].dataObjInp->condInput,
275 modDataObjMetaInp.
regParam = ®Param;
279 "_modDataObjSize: rsModDataObjMeta failed, dataSize [%d] status = %d",
290 int l1descInx, l3descInx;
292 memset( ®Param, 0,
sizeof( regParam ) );
299 int noChkCopyLenFlag = 0;
300 int updateChksumFlag = 0;
308 if ( l3descInx > 2 ) {
314 "_rsDataObjClose: l3Close of %d failed, status = %d",
320 if (
L1desc[l1descInx].oprStatus < 0 ) {
332 L1desc[l1descInx].dataObjInfo );
333 if ( vault_size < 0 ) {
335 "_rsDataObjClose - getSizeInVault failed [%ld]",
345 L1desc[l1descInx].dataObjInfo );
348 "_rsDataObjClose - _modDataObjSize failed [%d]",
368 if (
L1desc[l1descInx].bytesWritten < 0 &&
375 if (
L1desc[l1descInx].purgeCacheFlag > 0 ) {
377 L1desc[l1descInx].dataObjInfo );
380 "_rsDataObjClose: trimDataObjInfo error for %s",
381 L1desc[l1descInx].dataObjInfo->objPath );
398 char *chksumStr =
NULL;
401 std::string checksum = std::string( chksumStr );
404 if ( !checksum.empty() ) {
409 modDataObjMetaInp.
regParam = ®Param;
419 noChkCopyLenFlag = 1;
435 "_rsDataObjClose: getSizeInVault error for %s, status = %d",
439 else if (
L1desc[l1descInx].dataSize > 0 ) {
440 if ( newSize !=
L1desc[l1descInx].dataSize && noChkCopyLenFlag == 0 ) {
442 "_rsDataObjClose: size in vault %lld != target size %lld",
443 newSize,
L1desc[l1descInx].dataSize );
453 updateChksumFlag = 1;
458 std::string checksum;
459 if ( !noChkCopyLenFlag || updateChksumFlag ) {
460 char *chksumStr =
NULL;
465 if ( chksumStr !=
NULL ) {
466 checksum = std::string( chksumStr );
475 if ( srcL1descInx <= 2 ) {
477 "_rsDataObjClose: srcL1descInx %d out of range",
483 if ( !checksum.empty() ) {
494 if ( pdmo_kw !=
NULL ) {
498 modDataObjMetaInp.
regParam = ®Param;
504 if (
L1desc[srcL1descInx].l3descInx > 2 ) {
506 status1 =
l3Close( rsComm, srcL1descInx );
509 "_rsDataObjClose: l3Close of %s error. status = %d",
510 srcDataObjInfo->
objPath, status1 );
518 if (
L1desc[srcL1descInx].l3descInx > 2 ) {
519 l3Close( rsComm, srcL1descInx );
528 if ( srcL1descInx <= 2 ) {
530 "_rsDataObjClose: srcL1descInx %d out of range",
544 if ( !checksum.empty() ) {
557 if ( pdmo_kw !=
NULL ) {
561 modDataObjMetaInp.
regParam = ®Param;
566 memset( ®ReplicaInp, 0,
sizeof( regReplicaInp ) );
567 if ( destDataObjInfo->
dataId <= 0 ) {
594 if ( srcDataObjInfo->
dataSize != newSize ) {
599 "_rsDataObjClose: _modDataObjSize srcDataObjInfo failed, status = [%d]",
status );
603 if ( destDataObjInfo->
dataSize != newSize ) {
604 destDataObjInfo->
dataSize = newSize;
608 "_rsDataObjClose: _modDataObjSize destDataObjInfo failed, status = [%d]",
status );
631 "_rsDataObjClose: RegReplica/ModDataObjMeta %s err. stat = %d",
636 else if (
L1desc[l1descInx].dataObjInfo->specColl ==
NULL ) {
638 if ( l3descInx < 2 &&
648 "_rsDataObjClose: svrRegDataObj for %s failed, status = %d",
660 if ( !checksum.empty() ) {
674 modDataObjMetaInp.
regParam = ®Param;
705 if (
L1desc[l1descInx].purgeCacheFlag > 0 ) {
707 L1desc[l1descInx].dataObjInfo );
710 "_rsDataObjClose: trimDataObjInfo error for %s",
711 L1desc[l1descInx].dataObjInfo->objPath );
728 std::string location;
738 memset( &subStructFileCloseInp, 0,
sizeof( subStructFileCloseInp ) );
746 memset( &fileCloseInp, 0,
sizeof( fileCloseInp ) );
760 memset( &fileCloseInp, 0,
sizeof( fileCloseInp ) );
761 fileCloseInp.
fileInx = l3descInx;
774 std::string location;
782 memset( &subFile, 0,
sizeof( subFile ) );
790 memset( &fileStatInp, 0,
sizeof( fileStatInp ) );
812 int srcL1descInx = 0;
818 if ( srcL1descInx <= 2 ) {
820 "procChksumForClose: srcL1descInx %d out of range",
826 if ( strlen( srcDataObjInfo->
chksum ) > 0 ) {
830 if ( strlen( srcDataObjInfo->
chksum ) > 0 &&
835 dataObjInfo->
chksum[0] =
'\0';
837 *chksumStr = strdup( srcDataObjInfo->
chksum );
843 "procChksumForClose: _dataObjChksum error for %s, status = %d",
848 else if ( *chksumStr ==
NULL ) {
854 if ( strcmp( srcDataObjInfo->
chksum, *chksumStr ) != 0 ) {
856 "procChksumForClose: chksum mismatch for %s src [%s] new [%s]",
874 if (
L1desc[l1descInx].chksumFlag == 0 ) {
878 if ( strlen(
L1desc[l1descInx].chksum ) > 0 ) {
879 if ( strlen(
L1desc[l1descInx].chksum ) > 0 ) {
891 if ( strcmp(
L1desc[l1descInx].chksum, *chksumStr ) != 0 ) {
893 "procChksumForClose: mismatch chksum for %s.inp=%s,compute %s",
901 if ( strcmp( dataObjInfo->
chksum, *chksumStr ) == 0 ) {
908 if ( strlen( dataObjInfo->
chksum ) > 0 ) {
916 if ( *chksumStr ==
NULL ) {
921 if ( strlen( dataObjInfo->
chksum ) > 0 ) {
925 if ( strcmp( dataObjInfo->
chksum, *chksumStr ) != 0 ) {
927 "procChksumForClose:mismach chksum for %s.Rcat=%s,comp %s",
943 if ( srcL1descInx <= 2 ) {
946 "procChksumForClose: invalid srcL1descInx %d for copy",
952 if ( strlen( srcDataObjInfo->
chksum ) > 0 ) {
960 if ( *chksumStr ==
NULL ) {
964 if ( strlen( srcDataObjInfo->
chksum ) > 0 ) {
966 if ( strcmp( srcDataObjInfo->
chksum, *chksumStr ) != 0 ) {
968 "procChksumForClose:mismach chksum for %s.Rcat=%s,comp %s",
980 if ( strlen(
L1desc[l1descInx].chksum ) > 0 ) {
989 if ( strlen(
L1desc[l1descInx].chksum ) > 0 ) {
1003 if ( srcL1descInx <= 2 ) {
1006 "procChksumForClose: invalid srcL1descInx %d for copy",
1011 if ( strlen( srcDataObjInfo->
chksum ) == 0 ) {