Minor update.

(Logical change 1.292)
edge.strict_endians
cantab.net!aia21 2004-03-04 17:03:27 +00:00
parent 32ee437ae4
commit b87932368a
2 changed files with 3 additions and 16 deletions

View File

@ -2175,10 +2175,8 @@ int ntfs_attr_can_be_resident(const ntfs_volume *vol, const ATTR_TYPES type)
errno = EINVAL;
return -1;
}
if (type != AT_INDEX_ALLOCATION && type != AT_EA)
return 0;
errno = EPERM;
return -1;
}
@ -2204,7 +2202,6 @@ static int ntfs_attr_record_resize(MFT_RECORD *m, ATTR_RECORD *a, u32 new_size)
{
/* Align to 8 bytes, just in case the caller hasn't. */
new_size = (new_size + 7) & ~7;
/* If the actual attribute length has changed, move things around. */
if (new_size != le32_to_cpu(a->length)) {
u32 new_muse = le32_to_cpu(m->bytes_in_use) -
@ -2275,7 +2272,6 @@ int ntfs_resident_attr_value_resize(MFT_RECORD *m, ATTR_RECORD *a,
new_size + 7) & ~7) < 0) {
if (errno != ENOSPC) {
int eo = errno;
// FIXME: Eeek!
fprintf(stderr, "%s(): Eeek! Attribute record resize "
"failed. Aborting...\n", __FUNCTION__);
@ -2603,6 +2599,9 @@ static int ntfs_resident_attr_resize(ntfs_attr *na, const s64 newsize)
// TODO: Move the attribute to a new mft record, creating an attribute
// list attribute or modifying it if it is already present.
// TODO: If that is still not enough, split the attribute into multiple
// extents and save them to several mft records.
err = ENOTSUP;
goto put_err_out;
@ -3133,9 +3132,7 @@ int ntfs_attr_truncate(ntfs_attr *na, const s64 newsize)
errno = ENOTSUP;
return -1;
}
if (NAttrNonResident(na))
return ntfs_non_resident_attr_shrink(na, newsize);
return ntfs_resident_attr_resize(na, newsize);
}

View File

@ -1427,9 +1427,7 @@ int ntfs_rl_truncate(runlist **arl, const VCN start_vcn)
errno = EINVAL;
return -1;
}
rl = *arl;
if (start_vcn < rl->vcn) {
// FIXME: Eeek! BUG()
fprintf(stderr, "%s(): Eeek! start_vcn lies outside front of "
@ -1437,7 +1435,6 @@ int ntfs_rl_truncate(runlist **arl, const VCN start_vcn)
errno = EIO;
return -1;
}
/* Find the starting vcn in the run list. */
while (rl->length) {
if (start_vcn < rl[1].vcn)
@ -1458,13 +1455,10 @@ int ntfs_rl_truncate(runlist **arl, const VCN start_vcn)
errno = EIO;
return -1;
}
if (rl->length) {
is_end = FALSE;
/* Truncate the run. */
rl->length = start_vcn - rl->vcn;
/*
* If a run was partially truncated, make the following runlist
* element a terminator instead of the truncated runlist
@ -1479,9 +1473,7 @@ int ntfs_rl_truncate(runlist **arl, const VCN start_vcn)
}
} else
is_end = TRUE;
rl->lcn = (LCN)LCN_ENOENT;
/* Reallocate memory if necessary. */
if (!is_end) {
size_t new_size = (rl - *arl + 1) * sizeof(runlist_element);
@ -1498,8 +1490,6 @@ int ntfs_rl_truncate(runlist **arl, const VCN start_vcn)
__FUNCTION__);
}
}
/* Done! */
return 0;
}