remove ObjectID creation and all related code: ObjectID's are created and

managed based on (mostly) DLT Service requests, format doesn't care about them
edge.strict_endians
szaka 2005-11-10 20:24:07 +00:00
parent 4652ad72c6
commit c832d4b2e2
1 changed files with 0 additions and 74 deletions

View File

@ -178,7 +178,6 @@ int g_mft_bitmap_byte_size = 0;
u8 *g_mft_bitmap = NULL;
int g_lcn_bitmap_byte_size = 0;
u8 *g_lcn_bitmap = NULL;
OBJECT_ID_ATTR *g_volume_obj_id = NULL;
runlist *g_rl_mft = NULL;
runlist *g_rl_mft_bmp = NULL;
runlist *g_rl_mftmirr = NULL;
@ -2147,32 +2146,6 @@ static int add_attr_file_name(MFT_RECORD *m, const MFT_REF parent_dir,
return i;
}
/**
* add_attr_object_id
*
* add an object_id attribute to the mft record @m
* return 0 on success or -errno on error
*/
static int add_attr_object_id(MFT_RECORD *m, OBJECT_ID_ATTR *objid_attr,
int objid_attr_len)
{
int err;
/* Does it fit? NO: create non-resident. YES: create resident. */
if (le32_to_cpu(m->bytes_in_use) + 24 + objid_attr_len >
le32_to_cpu(m->bytes_allocated))
err = insert_non_resident_attr_in_mft_record(m,
AT_OBJECT_ID, NULL, 0, 0, 0, (u8*)objid_attr,
objid_attr_len);
else
err = insert_resident_attr_in_mft_record(m,
AT_OBJECT_ID, NULL, 0, 0, 0, 0,
(u8*)objid_attr, objid_attr_len);
if (err < 0)
ntfs_log_error("add_attr_volume_id failed: %s\n", strerror(-err));
return err;
}
/**
* add_attr_sd
*
@ -3074,45 +3047,6 @@ static int initialize_quota(MFT_RECORD *m)
return err;
}
/**
* initialize_objid
*
* initialize $ObjId with the default index-entries.
* It is one entry which belongs to $Volume. (W2k3)
*/
static int initialize_objid(MFT_RECORD *m, GUID guid, const MFT_REF mref)
{
int o_size, err;
INDEX_ENTRY *idx_entry_o;
OBJ_ID_INDEX_DATA *idx_entry_o_data;
err = 0;
o_size = cpu_to_le32(0x58);
idx_entry_o = calloc(1, o_size);
/* o index entry */
idx_entry_o->data_offset = cpu_to_le16(0x20);
idx_entry_o->data_length = cpu_to_le16(0x38);
idx_entry_o->reservedV = cpu_to_le32(0x00);
idx_entry_o->length = cpu_to_le16(0x58);
idx_entry_o->key_length = cpu_to_le16(0x10);
idx_entry_o->flags = cpu_to_le16(0x00);
idx_entry_o->reserved = cpu_to_le16(0x00);
idx_entry_o->key.object_id = guid;
idx_entry_o_data = (OBJ_ID_INDEX_DATA*)((char*)idx_entry_o
+ idx_entry_o->data_offset);
idx_entry_o_data->mft_reference = mref;
idx_entry_o_data->birth_volume_id = *zero_guid;
idx_entry_o_data->birth_object_id = *zero_guid;
idx_entry_o_data->domain_id = *zero_guid;
err = insert_index_entry_in_res_dir_index(idx_entry_o,
o_size, m,
NTFS_INDEX_O, 2, AT_UNUSED);
free(idx_entry_o);
return err;
}
/**
* insert_file_link_in_dir_index
*
@ -4270,11 +4204,6 @@ static void create_file_volume(MFT_RECORD *m, MFT_REF root_ref, VOLUME_FLAGS fl)
init_system_file_sd(FILE_Volume, &sd, &i);
err = add_attr_sd(m, sd, i);
}
if (!err && g_vol->major_ver >= 3) {
g_volume_obj_id = calloc(1,0x10);
ntfs_generate_guid(&g_volume_obj_id->object_id);
err = add_attr_object_id(m, g_volume_obj_id, 0x10);
}
if (!err)
err = add_attr_data(m, NULL, 0, 0, 0, NULL, 0);
if (!err)
@ -4919,9 +4848,6 @@ static void mkntfs_create_root_structures(void)
if (!err)
err = add_attr_index_root(m, "$O", 2, 0, AT_UNUSED,
COLLATION_NTOFS_ULONGS, g_vol->indx_record_size);
if (!err)
err = initialize_objid(m, g_volume_obj_id->object_id,
MK_LE_MREF(FILE_Volume, FILE_Volume));
if (err < 0)
err_exit("Couldn't create $ObjId: %s\n", strerror(-err));
ntfs_log_verbose("Creating $Reparse (mft record 26)\n");