don't move INDEX_ROOT to an extent MFT record

master
szaka 2009-03-22 00:08:50 +00:00
parent bac5d23b7b
commit 6b04b569ee
2 changed files with 12 additions and 0 deletions

View File

@ -3922,6 +3922,15 @@ static int ntfs_resident_attr_resize_i(ntfs_attr *na, const s64 newsize)
ntfs_log_perror("%s: Attribute lookup failed 1", __FUNCTION__);
goto put_err_out;
}
/* Prefer to add AT_INDEX_ALLOCATION instead of AT_ATTRIBUTE_LIST */
if (na->type == AT_INDEX_ROOT) {
err = ENOSPC;
ntfs_log_trace("INDEX_ROOT can not be enlarged\n");
ret = STATUS_RESIDENT_ATTRIBUTE_FILLED_MFT;
goto put_err_out;
}
/*
* The standard information and attribute list attributes can't be
* moved out from the base MFT record, so try to move out others.

View File

@ -1035,6 +1035,9 @@ retry:
ctx->attr->type == AT_DATA)
goto retry;
if (ctx->attr->type == AT_INDEX_ROOT)
goto retry;
record_size = le32_to_cpu(ctx->attr->length);
if (ntfs_attr_record_move_away(ctx, 0)) {