Lines Matching full:attribute

28  * Compare the ntfs attribute embedded in the ntfs specific part of the vfs
29 * inode @vi for equality with the ntfs attribute @data.
53 /* A fake inode describing an attribute. */
74 * Initialize the vfs inode @vi with the values from the ntfs attribute @data in
187 * ntfs_attr_iget - obtain a struct inode corresponding to an attribute
188 * @base_vi: vfs base inode containing the attribute
189 * @type: attribute type
190 * @name: Unicode name of the attribute (NULL if unnamed)
193 * Obtain the (fake) struct inode corresponding to the attribute specified by
197 * If the attribute inode is in the cache, it is just returned with an
200 * attribute and fill in the inode structure.
205 * Return the struct inode of the attribute inode on success. Check the return
236 * There is no point in keeping bad attribute inodes around. This also
237 * simplifies things in that we never need to check for bad attribute
364 "Failed to free attribute clusters. Leaving inconsistent metadata.\n");
440 * The attribute runlist lock has separate locking rules from the
523 * @ctx: initialized attribute search context
525 * Search all file name attributes in the inode described by the attribute
563 "Corrupt file name attribute. You should run chkdsk.");
586 /* This attribute is ok, but is it in the $Extend directory? */
747 * Find the standard information attribute in the mft record. At this
748 * stage we haven't setup the attribute list stuff yet, so this could
757 ntfs_error(vi->i_sb, "$STANDARD_INFORMATION attribute is missing.");
761 /* Get the standard information attribute value. */
791 /* Find the attribute list attribute if present. */
796 ntfs_error(vi->i_sb, "Failed to lookup attribute list attribute.");
802 ntfs_debug("Attribute list found in inode 0x%llx.", ni->mft_no);
807 "Attribute list attribute is compressed.");
814 "Non-resident attribute list attribute is encrypted/sparse.");
818 "Resident attribute list attribute in inode 0x%llx is marked encrypted/sparse which is not true. However, Windows allows this and chkdsk does not detect or correct it so we will just ignore the invalid flags and pretend they are not set.",
821 /* Now allocate memory for the attribute list. */
830 "Not enough memory to allocate buffer for attribute list.");
837 ntfs_error(vi->i_sb, "Attribute list has non zero lowest_vcn.");
841 /* Now load the attribute list. */
844 ntfs_error(vi->i_sb, "Failed to load attribute list attribute.");
848 /* Now copy the attribute list. */
856 ntfs_error(vi->i_sb, "Corrupt attribute list.");
902 * If an attribute list is present we now have the attribute list value
909 /* It is a directory, find index root attribute. */
915 ntfs_error(vi->i_sb, "$INDEX_ROOT attribute is missing.");
922 "$INDEX_ROOT attribute is not resident.");
925 /* Ensure the attribute name is placed before the value. */
929 "$INDEX_ROOT attribute name is placed after the attribute value.");
944 ntfs_error(vi->i_sb, "Found encrypted and compressed attribute.");
965 ntfs_error(vi->i_sb, "Indexed attribute is not zero.");
970 ntfs_error(vi->i_sb, "Indexed attribute is not $FILE_NAME.");
1016 /* Setup the index allocation attribute, even if not present. */
1036 /* Setup the data attribute, even if not present. */
1041 /* Find first extent of the unnamed data attribute. */
1047 ntfs_error(vi->i_sb, "Failed to lookup $DATA attribute.");
1052 * attribute, so we special case it here.
1082 ntfs_error(vi->i_sb, "$DATA attribute is missing, err : %d", err);
1162 "First extent of $DATA attribute has non zero lowest_vcn.");
1168 } else { /* Resident attribute. */
1176 "Resident data attribute is corrupt (size exceeds allocation).");
1233 * ntfs_read_locked_attr_inode - read an attribute inode from its base inode
1235 * @vi: attribute inode to read
1238 * attribute inode described by @vi into memory from the base mft record
1242 * reading and looks up the attribute described by @vi before setting up the
1288 /* Find the attribute. */
1301 "Found compressed non-data or named data attribute.");
1306 "Found compressed attribute but compression is disabled due to cluster size (%i) > 4kiB.",
1322 "Found mst protected attribute but the attribute is %s.",
1342 "Found mst protected attribute but the attribute is encrypted.");
1347 "Found encrypted non-data attribute.");
1354 /* Ensure the attribute name is placed before the value. */
1358 "Attribute name is placed after the attribute value.");
1363 "Found mst protected attribute but the attribute is resident.");
1372 "Resident attribute is corrupt (size exceeds allocation).");
1378 * Ensure the attribute name is placed before the mapping pairs
1385 "Attribute name is placed after the mapping pairs array.");
1413 ntfs_error(vi->i_sb, "First extent of attribute has non-zero lowest_vcn.");
1427 * attribute inode.
1451 "Failed with error code %i while reading attribute inode (mft_no 0x%llx, type 0x%x, name_len %i). Marking corrupt inode and base inode 0x%llx as bad. Run chkdsk.",
1473 * Note, index inodes are essentially attribute inodes (NInoAttr() is true)
1474 * with the attribute type set to AT_INDEX_ALLOCATION. Apart from that, they
1477 * for small indices the index allocation attribute might not actually exist.
1478 * However, the index root attribute always exists but this does not need to
1480 * index. Also, like for directories, we need to have an attribute inode for
1481 * the bitmap attribute corresponding to the index allocation attribute and we
1528 /* Find the index root attribute. */
1533 ntfs_error(vi->i_sb, "$INDEX_ROOT attribute is missing.");
1539 ntfs_error(vol->sb, "$INDEX_ROOT attribute is not resident.");
1542 /* Ensure the attribute name is placed before the value. */
1546 "$INDEX_ROOT attribute name is placed after the attribute value.");
1590 /* Find index allocation attribute. */
1605 ntfs_error(vi->i_sb, "Failed to lookup $INDEX_ALLOCATION attribute.");
1614 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is resident.");
1618 * Ensure the attribute name is placed before the mapping pairs array.
1623 "$INDEX_ALLOCATION attribute name is placed after the mapping pairs array.");
1627 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is encrypted.");
1631 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is sparse.");
1636 "$INDEX_ALLOCATION attribute is compressed.");
1641 "First extent of $INDEX_ALLOCATION attribute has non zero lowest_vcn.");
1655 /* Get the index bitmap attribute inode. */
1658 ntfs_error(vi->i_sb, "Failed to get bitmap attribute.");
1666 "$BITMAP attribute is compressed and/or encrypted and/or sparse.");
1712 * load_attribute_list_mount - load an attribute list into memory
1714 * @rl: runlist of the attribute list
1717 * @initialized_size: initialized size of the attribute list
1754 /* The attribute list cannot be sparse. */
1756 ntfs_error(sb, "ntfs_rl_vcn_to_lcn() failed. Cannot read attribute list.");
1769 ntfs_error(sb, "Cannot read attribute list.");
1814 * attribute list is actually present in $MFT inode.
1816 * We solve these problems by starting with the $DATA attribute before anything
1844 /* Setup the data attribute. It is special as it is mst protected. */
1878 /* Determine the first block of the $MFT/$DATA attribute. */
1908 /* Need this to sanity check attribute list references to $MFT. */
1920 /* Find the attribute list attribute if present. */
1925 "Failed to lookup attribute list attribute. You should run chkdsk.");
1933 ntfs_debug("Attribute list attribute found in $MFT.");
1938 "Attribute list attribute is compressed.%s",
1946 "Non-resident attribute list attribute is encrypted/sparse.%s",
1951 "Resident attribute list attribute in $MFT system file is marked encrypted/sparse which is not true. However, Windows allows this and chkdsk does not detect or correct it so we will just ignore the invalid flags and pretend they are not set.");
1953 /* Now allocate memory for the attribute list. */
1962 ntfs_error(sb, "Not enough memory to allocate buffer for attribute list.");
1972 "Attribute list has non zero lowest_vcn. $MFT is corrupt. You should run chkdsk.");
1990 "Failed to load attribute list with error code %i.",
1995 /* Now copy the attribute list. */
2000 /* The attribute list is now setup in memory. */
2008 /* Catch the end of the attribute list. */
2019 /* We want an unnamed attribute. */
2044 /* Now load all attribute extents. */
2051 /* Cache the current attribute. */
2088 "First extent of $DATA attribute has non zero lowest_vcn. $MFT is corrupt. You should run chkdsk.");
2091 /* Get the last vcn in the $DATA attribute. */
2158 ntfs_error(sb, "$MFT has corrupt attribute list attribute. Run chkdsk.");
2163 ntfs_error(sb, "Failed to lookup $MFT/$DATA attribute extent. Run chkdsk.\n");
2167 ntfs_error(sb, "$MFT/$DATA attribute not found. $MFT is corrupt. Run chkdsk.");
2192 "Couldn't find first extent of $DATA attribute in attribute list. $MFT is corrupt. Run chkdsk.");
2453 * ntfs_inode_sync_standard_information - update standard information attribute
2468 /* Update the access times in the standard information attribute. */
2524 * If we just modified the standard information attribute we need to
2644 * attribute update implied the unnamed data to be
2667 ntfs_error(sb, "Attribute lookup failed, err : %d, inode %llu", err,
2738 * Dirty attribute inodes are written via their real inodes so just
3000 /* Inode haven't got attribute list, thus nothing to attach. */
3009 /* Walk through attribute list and attach all extents. */
3026 * ntfs_inode_add_attrlist - add attribute list to inode and fill it
3027 * @ni: opened ntfs inode to which add attribute list
3047 ntfs_error(ni->vol->sb, "Inode already has attribute list");
3055 /* Form attribute list. */
3068 ntfs_error(ni->vol->sb, "Attribute list already present");
3087 /* Add attribute to attribute list. */
3109 ntfs_error(ni->vol->sb, "%s: Attribute lookup failed, inode %llu",
3114 /* Set in-memory attribute list. */
3149 /* Prevent ntfs_attr_recorm_rm from freeing attribute list. */
3168 * Scan attribute list for attributes that placed not in the base MFT
3182 "Rollback failed to move attribute");
3191 /* Remove in-memory attribute list. */
3324 * could point to an attribute in an extent mft record, but
3382 * search context on first attribute after $STANDARD_INFORMATION and
3386 * enumeration? Because in case we have got only in-memory attribute
3398 * Check whether attribute is from different MFT record. If so,
3427 /* Move away attribute. */
3430 ntfs_error(sb, "Failed to move out attribute #2");
3442 * Reposition to first attribute after $STANDARD_INFORMATION and
3552 ntfs_debug("Failed to truncate attribute");