• Home
  • Raw
  • Download

Lines Matching full:attribute

47  * @na:		ntfs attribute which is being tested with
49 * Compare the ntfs attribute embedded in the ntfs specific part of the vfs
50 * inode @vi for equality with the ntfs attribute @na.
73 /* A fake inode describing an attribute. */ in ntfs_test_inode()
89 * @na: ntfs attribute which to initialize @vi to
91 * Initialize the vfs inode @vi with the values from the ntfs attribute @na in
205 * ntfs_attr_iget - obtain a struct inode corresponding to an attribute
206 * @base_vi: vfs base inode containing the attribute
207 * @type: attribute type
208 * @name: Unicode name of the attribute (NULL if unnamed)
211 * Obtain the (fake) struct inode corresponding to the attribute specified by
215 * If the attribute inode is in the cache, it is just returned with an
218 * attribute and fill in the inode structure.
223 * Return the struct inode of the attribute inode on success. Check the return
255 * There is no point in keeping bad attribute inodes around. This also in ntfs_attr_iget()
256 * simplifies things in that we never need to check for bad attribute in ntfs_attr_iget()
376 * The attribute runlist lock has separate locking rules from the
446 * @ctx: initialized attribute search context
448 * Search all file name attributes in the inode described by the attribute
484 "attribute. You should run chkdsk."); in ntfs_is_extended_system_file()
508 /* This attribute is ok, but is it in the $Extend directory? */ in ntfs_is_extended_system_file()
636 * Find the standard information attribute in the mft record. At this in ntfs_read_locked_inode()
637 * stage we haven't setup the attribute list stuff yet, so this could in ntfs_read_locked_inode()
648 * attribute. in ntfs_read_locked_inode()
650 ntfs_error(vi->i_sb, "$STANDARD_INFORMATION attribute " in ntfs_read_locked_inode()
656 /* Get the standard information attribute value. */ in ntfs_read_locked_inode()
683 /* Find the attribute list attribute if present. */ in ntfs_read_locked_inode()
688 ntfs_error(vi->i_sb, "Failed to lookup attribute list " in ntfs_read_locked_inode()
689 "attribute."); in ntfs_read_locked_inode()
695 ntfs_debug("Attribute list found in inode 0x%lx.", vi->i_ino); in ntfs_read_locked_inode()
699 ntfs_error(vi->i_sb, "Attribute list attribute is " in ntfs_read_locked_inode()
706 ntfs_error(vi->i_sb, "Non-resident attribute " in ntfs_read_locked_inode()
707 "list attribute is encrypted/" in ntfs_read_locked_inode()
711 ntfs_warning(vi->i_sb, "Resident attribute list " in ntfs_read_locked_inode()
712 "attribute in inode 0x%lx is marked " in ntfs_read_locked_inode()
720 /* Now allocate memory for the attribute list. */ in ntfs_read_locked_inode()
725 "buffer for attribute list."); in ntfs_read_locked_inode()
732 ntfs_error(vi->i_sb, "Attribute list has non " in ntfs_read_locked_inode()
749 /* Now load the attribute list. */ in ntfs_read_locked_inode()
755 "attribute list attribute."); in ntfs_read_locked_inode()
763 ntfs_error(vi->i_sb, "Corrupt attribute list " in ntfs_read_locked_inode()
767 /* Now copy the attribute list. */ in ntfs_read_locked_inode()
776 * If an attribute list is present we now have the attribute list value in ntfs_read_locked_inode()
785 /* It is a directory, find index root attribute. */ in ntfs_read_locked_inode()
792 // index root attribute if recovery option is in ntfs_read_locked_inode()
794 ntfs_error(vi->i_sb, "$INDEX_ROOT attribute " in ntfs_read_locked_inode()
802 ntfs_error(vol->sb, "$INDEX_ROOT attribute is not " in ntfs_read_locked_inode()
806 /* Ensure the attribute name is placed before the value. */ in ntfs_read_locked_inode()
809 ntfs_error(vol->sb, "$INDEX_ROOT attribute name is " in ntfs_read_locked_inode()
810 "placed after the attribute value."); in ntfs_read_locked_inode()
824 "compressed attribute."); in ntfs_read_locked_inode()
835 ntfs_error(vi->i_sb, "$INDEX_ROOT attribute is " in ntfs_read_locked_inode()
846 ntfs_error(vi->i_sb, "Indexed attribute is not " in ntfs_read_locked_inode()
893 /* Setup the index allocation attribute, even if not present. */ in ntfs_read_locked_inode()
911 /* Find index allocation attribute. */ in ntfs_read_locked_inode()
918 "attribute is not present but " in ntfs_read_locked_inode()
923 "attribute."); in ntfs_read_locked_inode()
928 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute " in ntfs_read_locked_inode()
933 * Ensure the attribute name is placed before the mapping pairs in ntfs_read_locked_inode()
939 ntfs_error(vol->sb, "$INDEX_ALLOCATION attribute name " in ntfs_read_locked_inode()
945 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute " in ntfs_read_locked_inode()
950 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute " in ntfs_read_locked_inode()
955 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute " in ntfs_read_locked_inode()
961 "$INDEX_ALLOCATION attribute has non " in ntfs_read_locked_inode()
978 /* Get the index bitmap attribute inode. */ in ntfs_read_locked_inode()
981 ntfs_error(vi->i_sb, "Failed to get bitmap attribute."); in ntfs_read_locked_inode()
988 ntfs_error(vi->i_sb, "$BITMAP attribute is compressed " in ntfs_read_locked_inode()
1001 /* No longer need the bitmap attribute inode. */ in ntfs_read_locked_inode()
1012 /* Setup the data attribute, even if not present. */ in ntfs_read_locked_inode()
1017 /* Find first extent of the unnamed data attribute. */ in ntfs_read_locked_inode()
1024 "attribute."); in ntfs_read_locked_inode()
1029 * attribute, so we special case it here. in ntfs_read_locked_inode()
1045 // attribute if recovery option is set. in ntfs_read_locked_inode()
1046 ntfs_error(vi->i_sb, "$DATA attribute is missing."); in ntfs_read_locked_inode()
1124 "attribute has non zero " in ntfs_read_locked_inode()
1134 } else { /* Resident attribute. */ in ntfs_read_locked_inode()
1141 ntfs_error(vi->i_sb, "Resident data attribute " in ntfs_read_locked_inode()
1198 * ntfs_read_locked_attr_inode - read an attribute inode from its base inode
1200 * @vi: attribute inode to read
1203 * attribute inode described by @vi into memory from the base mft record
1207 * reading and looks up the attribute described by @vi before setting up the
1257 /* Find the attribute. */ in ntfs_read_locked_attr_inode()
1270 "attribute. Please report " in ntfs_read_locked_attr_inode()
1278 "attribute but compression is " in ntfs_read_locked_attr_inode()
1296 ntfs_error(vi->i_sb, "Found mst protected attribute " in ntfs_read_locked_attr_inode()
1297 "but the attribute is %s. Please " in ntfs_read_locked_attr_inode()
1318 ntfs_error(vi->i_sb, "Found mst protected attribute " in ntfs_read_locked_attr_inode()
1319 "but the attribute is encrypted. " in ntfs_read_locked_attr_inode()
1327 "attribute."); in ntfs_read_locked_attr_inode()
1333 /* Ensure the attribute name is placed before the value. */ in ntfs_read_locked_attr_inode()
1336 ntfs_error(vol->sb, "Attribute name is placed after " in ntfs_read_locked_attr_inode()
1337 "the attribute value."); in ntfs_read_locked_attr_inode()
1341 ntfs_error(vi->i_sb, "Found mst protected attribute " in ntfs_read_locked_attr_inode()
1342 "but the attribute is resident. " in ntfs_read_locked_attr_inode()
1352 ntfs_error(vi->i_sb, "Resident attribute is corrupt " in ntfs_read_locked_attr_inode()
1359 * Ensure the attribute name is placed before the mapping pairs in ntfs_read_locked_attr_inode()
1365 ntfs_error(vol->sb, "Attribute name is placed after " in ntfs_read_locked_attr_inode()
1400 ntfs_error(vi->i_sb, "First extent of attribute has " in ntfs_read_locked_attr_inode()
1421 * attribute inode. in ntfs_read_locked_attr_inode()
1440 ntfs_error(vol->sb, "Failed with error code %i while reading attribute " in ntfs_read_locked_attr_inode()
1465 * Note, index inodes are essentially attribute inodes (NInoAttr() is true)
1466 * with the attribute type set to AT_INDEX_ALLOCATION. Apart from that, they
1469 * for small indices the index allocation attribute might not actually exist.
1470 * However, the index root attribute always exists but this does not need to
1472 * index. Also, like for directories, we need to have an attribute inode for
1473 * the bitmap attribute corresponding to the index allocation attribute and we
1522 /* Find the index root attribute. */ in ntfs_read_locked_index_inode()
1527 ntfs_error(vi->i_sb, "$INDEX_ROOT attribute is " in ntfs_read_locked_index_inode()
1534 ntfs_error(vol->sb, "$INDEX_ROOT attribute is not resident."); in ntfs_read_locked_index_inode()
1537 /* Ensure the attribute name is placed before the value. */ in ntfs_read_locked_index_inode()
1540 ntfs_error(vol->sb, "$INDEX_ROOT attribute name is placed " in ntfs_read_locked_index_inode()
1541 "after the attribute value."); in ntfs_read_locked_index_inode()
1551 "root attribute."); in ntfs_read_locked_index_inode()
1557 ntfs_error(vi->i_sb, "$INDEX_ROOT attribute is corrupt."); in ntfs_read_locked_index_inode()
1602 /* Check for presence of index allocation attribute. */ in ntfs_read_locked_index_inode()
1614 /* Find index allocation attribute. */ in ntfs_read_locked_index_inode()
1620 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is " in ntfs_read_locked_index_inode()
1625 "$INDEX_ALLOCATION attribute."); in ntfs_read_locked_index_inode()
1630 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is " in ntfs_read_locked_index_inode()
1635 * Ensure the attribute name is placed before the mapping pairs array. in ntfs_read_locked_index_inode()
1640 ntfs_error(vol->sb, "$INDEX_ALLOCATION attribute name is " in ntfs_read_locked_index_inode()
1645 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is " in ntfs_read_locked_index_inode()
1650 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is sparse."); in ntfs_read_locked_index_inode()
1654 ntfs_error(vi->i_sb, "$INDEX_ALLOCATION attribute is " in ntfs_read_locked_index_inode()
1660 "attribute has non zero lowest_vcn."); in ntfs_read_locked_index_inode()
1675 /* Get the index bitmap attribute inode. */ in ntfs_read_locked_index_inode()
1678 ntfs_error(vi->i_sb, "Failed to get bitmap attribute."); in ntfs_read_locked_index_inode()
1685 ntfs_error(vi->i_sb, "$BITMAP attribute is compressed and/or " in ntfs_read_locked_index_inode()
1755 * attribute list is actually present in $MFT inode.
1757 * We solve these problems by starting with the $DATA attribute before anything
1787 /* Setup the data attribute. It is special as it is mst protected. */ in ntfs_read_inode_mount()
1819 /* Determine the first block of the $MFT/$DATA attribute. */ in ntfs_read_inode_mount()
1851 /* Need this to sanity check attribute list references to $MFT. */ in ntfs_read_inode_mount()
1863 /* Find the attribute list attribute if present. */ in ntfs_read_inode_mount()
1867 ntfs_error(sb, "Failed to lookup attribute list " in ntfs_read_inode_mount()
1868 "attribute. You should run chkdsk."); in ntfs_read_inode_mount()
1877 ntfs_debug("Attribute list attribute found in $MFT."); in ntfs_read_inode_mount()
1881 ntfs_error(sb, "Attribute list attribute is " in ntfs_read_inode_mount()
1888 ntfs_error(sb, "Non-resident attribute list " in ntfs_read_inode_mount()
1889 "attribute is encrypted/" in ntfs_read_inode_mount()
1893 ntfs_warning(sb, "Resident attribute list attribute " in ntfs_read_inode_mount()
1901 /* Now allocate memory for the attribute list. */ in ntfs_read_inode_mount()
1906 "for attribute list."); in ntfs_read_inode_mount()
1912 ntfs_error(sb, "Attribute list has non zero " in ntfs_read_inode_mount()
1928 /* Now load the attribute list. */ in ntfs_read_inode_mount()
1933 ntfs_error(sb, "Failed to load attribute list " in ntfs_read_inode_mount()
1934 "attribute with error code %i.", in ntfs_read_inode_mount()
1944 ntfs_error(sb, "Corrupt attribute list " in ntfs_read_inode_mount()
1945 "attribute."); in ntfs_read_inode_mount()
1948 /* Now copy the attribute list. */ in ntfs_read_inode_mount()
1954 /* The attribute list is now setup in memory. */ in ntfs_read_inode_mount()
1973 /* Catch the end of the attribute list. */ in ntfs_read_inode_mount()
1987 /* We want an unnamed attribute. */ in ntfs_read_inode_mount()
2016 /* Now load all attribute extents. */ in ntfs_read_inode_mount()
2023 /* Cache the current attribute. */ in ntfs_read_inode_mount()
2062 "attribute has non zero " in ntfs_read_inode_mount()
2067 /* Get the last vcn in the $DATA attribute. */ in ntfs_read_inode_mount()
2145 ntfs_error(sb, "$MFT has corrupt attribute list " in ntfs_read_inode_mount()
2146 "attribute. Run chkdsk."); in ntfs_read_inode_mount()
2151 ntfs_error(sb, "Failed to lookup $MFT/$DATA attribute extent. " in ntfs_read_inode_mount()
2156 ntfs_error(sb, "$MFT/$DATA attribute not found. $MFT is " in ntfs_read_inode_mount()
2183 ntfs_error(sb, "Couldn't find first extent of $DATA attribute in " in ntfs_read_inode_mount()
2184 "attribute list. $MFT is corrupt. Run chkdsk."); in ntfs_read_inode_mount()
2354 * or attribute inode as well as that @vi is a base inode.
2382 * safe to mess with the attribute runlist and sizes. in ntfs_truncate()
2410 ntfs_error(vi->i_sb, "Open attribute is missing from " in ntfs_truncate()
2415 ntfs_error(vi->i_sb, "Failed to lookup attribute in " in ntfs_truncate()
2423 * The i_size of the vfs inode is the new size for the attribute value. in ntfs_truncate()
2426 /* The current size of the attribute value is the old size. */ in ntfs_truncate()
2468 "for its attribute type " in ntfs_truncate()
2477 "attribute type 0x%x. " in ntfs_truncate()
2499 /* Resize the attribute record to best fit the new attribute size. */ in ntfs_truncate()
2511 * necessary data clearing in the attribute record. When the in ntfs_truncate()
2541 /* If the above resize failed, this must be an attribute extension. */ in ntfs_truncate()
2556 * Not enough space in the mft record, try to make the attribute in ntfs_truncate()
2564 * permitted for this attribute type or there not being enough space, in ntfs_truncate()
2568 ntfs_error(vol->sb, "Cannot truncate inode 0x%lx, attribute " in ntfs_truncate()
2570 "resident to non-resident attribute failed " in ntfs_truncate()
2580 "disk for the non-resident attribute value. " in ntfs_truncate()
2583 ntfs_error(vol->sb, "This attribute type may not be " in ntfs_truncate()
2593 * Both the attribute list attribute and the standard information in ntfs_truncate()
2594 * attribute must remain in the base inode. Thus, if this is one of in ntfs_truncate()
2607 // TODO: Attempt to move this attribute to an extent mft record, but in ntfs_truncate()
2608 // only if it is not already the only attribute in an mft record in in ntfs_truncate()
2624 * This attribute has multiple extents. Not yet in ntfs_truncate()
2628 "attribute type 0x%x, because the " in ntfs_truncate()
2629 "attribute is highly fragmented (it " in ntfs_truncate()
2681 * attribute truncate case. To do this, we simply drop in ntfs_truncate()
2717 * longer valid, we cannot resize the attribute record or build the in ntfs_truncate()
2724 "restore attribute search context" : in ntfs_truncate()
2725 "truncate attribute runlist", in ntfs_truncate()
2734 "attribute type 0x%x, because determining the " in ntfs_truncate()
2742 * Shrink the attribute record for the new mapping pairs array. Note, in ntfs_truncate()
2743 * this cannot fail since we are making the attribute smaller thus by in ntfs_truncate()
2751 * Generate the mapping pairs array directly into the attribute record. in ntfs_truncate()
2758 "attribute type 0x%x, because building the " in ntfs_truncate()
2874 * ntfs_setattr - called from notify_change() when an attribute is being changed
2976 * Dirty attribute inodes are written via their real inodes so just in __ntfs_write_inode()
2991 /* Update the access times in the standard information attribute. */ in __ntfs_write_inode()
3034 * If we just modified the standard information attribute we need to in __ntfs_write_inode()