@@ -59,7 +59,6 @@ const XATTR_PART_OFFSET = XATTR_NOOBAA_INTERNAL_PREFIX + 'part_offset';
59
59
const XATTR_PART_SIZE = XATTR_NOOBAA_INTERNAL_PREFIX + 'part_size' ;
60
60
const XATTR_PART_ETAG = XATTR_NOOBAA_INTERNAL_PREFIX + 'part_etag' ;
61
61
const XATTR_VERSION_ID = XATTR_NOOBAA_INTERNAL_PREFIX + 'version_id' ;
62
- const XATTR_PREV_VERSION_ID = XATTR_NOOBAA_INTERNAL_PREFIX + 'prev_version_id' ;
63
62
const XATTR_DELETE_MARKER = XATTR_NOOBAA_INTERNAL_PREFIX + 'delete_marker' ;
64
63
const XATTR_DIR_CONTENT = XATTR_NOOBAA_INTERNAL_PREFIX + 'dir_content' ;
65
64
const XATTR_TAG = XATTR_NOOBAA_INTERNAL_PREFIX + 'tag.' ;
@@ -1314,8 +1313,7 @@ class NamespaceFS {
1314
1313
fs_xattr = await this . _assign_part_props_to_fs_xattr ( fs_context , params . size , digest , offset , fs_xattr ) ;
1315
1314
}
1316
1315
if ( ! part_upload && ( this . _is_versioning_enabled ( ) || this . _is_versioning_suspended ( ) ) ) {
1317
- const cur_ver_info = await this . _get_version_info ( fs_context , file_path ) ;
1318
- fs_xattr = await this . _assign_versions_to_fs_xattr ( fs_context , cur_ver_info , stat , params . key , fs_xattr ) ;
1316
+ fs_xattr = await this . _assign_versions_to_fs_xattr ( stat , fs_xattr , undefined ) ;
1319
1317
}
1320
1318
if ( ! part_upload && params . storage_class ) {
1321
1319
fs_xattr = Object . assign ( fs_xattr || { } , {
@@ -2175,14 +2173,11 @@ class NamespaceFS {
2175
2173
return fs_xattr ;
2176
2174
}
2177
2175
2178
- async _assign_versions_to_fs_xattr ( fs_context , prev_ver_info , new_ver_stat , key , fs_xattr , delete_marker ) {
2179
- if ( ! prev_ver_info ) prev_ver_info = await this . find_max_version_past ( fs_context , key ) ;
2180
-
2176
+ async _assign_versions_to_fs_xattr ( new_ver_stat , fs_xattr , delete_marker ) {
2181
2177
fs_xattr = Object . assign ( fs_xattr || { } , {
2182
2178
[ XATTR_VERSION_ID ] : this . _get_version_id_by_mode ( new_ver_stat )
2183
2179
} ) ;
2184
2180
2185
- if ( prev_ver_info ) fs_xattr [ XATTR_PREV_VERSION_ID ] = prev_ver_info . version_id_str ;
2186
2181
if ( delete_marker ) fs_xattr [ XATTR_DELETE_MARKER ] = delete_marker ;
2187
2182
2188
2183
return fs_xattr ;
@@ -2661,7 +2656,6 @@ class NamespaceFS {
2661
2656
// mtimeNsBigint - modified timestmap in bigint - last time the content of the file was modified
2662
2657
// ino - refers to the data stored in a particular location
2663
2658
// delete_marker - specifies if the version is a delete marker
2664
- // prev_version_id - specifies the previous version of the wanted version
2665
2659
// path - specifies the path to version
2666
2660
// if version xattr contains version info - return info by xattr
2667
2661
// else - it's a null version - return stat
@@ -2676,7 +2670,6 @@ class NamespaceFS {
2676
2670
...( ver_info_by_xattr || stat ) ,
2677
2671
version_id_str,
2678
2672
delete_marker : stat . xattr [ XATTR_DELETE_MARKER ] ,
2679
- prev_version_id : stat . xattr [ XATTR_PREV_VERSION_ID ] ,
2680
2673
path : version_path
2681
2674
} ;
2682
2675
} catch ( err ) {
@@ -2732,13 +2725,12 @@ class NamespaceFS {
2732
2725
}
2733
2726
2734
2727
/**
2735
- * @param {nb.NativeFSContext } fs_context
2736
- * @param {string } key
2737
- * @param {string } version_id
2728
+ * @param {nb.NativeFSContext } fs_context
2729
+ * @param {string } key
2730
+ * @param {string } version_id
2738
2731
* @returns {Promise<{
2739
2732
* version_id_str: any;
2740
2733
* delete_marker: string;
2741
- * prev_version_id: string;
2742
2734
* path: any;
2743
2735
* mtimeNsBigint: bigint;
2744
2736
* ino: number;
@@ -2857,17 +2849,13 @@ class NamespaceFS {
2857
2849
// condition 2 guards on situations where we don't want to try move max version past to latest
2858
2850
async _promote_version_to_latest ( fs_context , params , deleted_version_info , latest_ver_path ) {
2859
2851
dbg . log1 ( 'Namespace_fs._promote_version_to_latest' , params , deleted_version_info , latest_ver_path ) ;
2860
- const deleted_latest = deleted_version_info && deleted_version_info . path === latest_ver_path ;
2861
- const prev_version_id = deleted_latest && deleted_version_info . prev_version_id ;
2862
2852
2863
2853
let retries = config . NSFS_RENAME_RETRIES ;
2864
2854
for ( ; ; ) {
2865
2855
try {
2866
2856
const latest_version_info = await this . _get_version_info ( fs_context , latest_ver_path ) ;
2867
2857
if ( latest_version_info ) return ;
2868
- const max_past_ver_info = ( prev_version_id &&
2869
- ( await this . get_prev_version_info ( fs_context , params . key , prev_version_id ) ) ) ||
2870
- ( await this . find_max_version_past ( fs_context , params . key ) ) ;
2858
+ const max_past_ver_info = await this . find_max_version_past ( fs_context , params . key ) ;
2871
2859
2872
2860
if ( ! max_past_ver_info || max_past_ver_info . delete_marker ) return ;
2873
2861
// 2 - if deleted file is a delete marker and is older than max past version - no need to promote max - return
@@ -3013,16 +3001,7 @@ class NamespaceFS {
3013
3001
}
3014
3002
const file_path = this . _get_version_path ( params . key , delete_marker_version_id ) ;
3015
3003
3016
- let fs_xattr ;
3017
- if ( this . _is_versioning_suspended ( ) &&
3018
- ( deleted_version_info ?. version_id_str === NULL_VERSION_ID ) ) {
3019
- fs_xattr = await this . _assign_versions_to_fs_xattr ( fs_context , undefined ,
3020
- stat , params . key , undefined , true ) ;
3021
- } else {
3022
- // the previous version will be the deleted version
3023
- fs_xattr = await this . _assign_versions_to_fs_xattr ( fs_context , deleted_version_info ,
3024
- stat , params . key , undefined , true ) ;
3025
- }
3004
+ const fs_xattr = await this . _assign_versions_to_fs_xattr ( stat , undefined , true ) ;
3026
3005
if ( fs_xattr ) await upload_params . target_file . replacexattr ( fs_context , fs_xattr ) ;
3027
3006
// create .version in case we don't have it yet
3028
3007
await native_fs_utils . _make_path_dirs ( file_path , fs_context ) ;
@@ -3042,12 +3021,6 @@ class NamespaceFS {
3042
3021
}
3043
3022
}
3044
3023
3045
- async get_prev_version_info ( fs_context , key , prev_version_id ) {
3046
- const prev_path = this . _get_version_path ( key , prev_version_id ) ;
3047
- const prev_path_info = await this . _get_version_info ( fs_context , prev_path ) ;
3048
- return prev_path_info ;
3049
- }
3050
-
3051
3024
// try find prev version by hint or by iterating on .versions/ dir
3052
3025
async find_max_version_past ( fs_context , key ) {
3053
3026
const versions_dir = path . normalize ( path . join ( this . bucket_path , path . dirname ( key ) , HIDDEN_VERSIONS_PATH ) ) ;
0 commit comments