Lines Matching refs:ni
269 * @ni: ntfs inode with which to initialize the ntfs attribute
274 * Initialize the ntfs attribute @na with @ni, @type, @name, and @name_len.
276 static void __ntfs_attr_init(ntfs_attr *na, ntfs_inode *ni,
280 na->ni = ni;
323 ntfs_volume *vol = na->ni->vol;
338 * @ni: open ntfs inode in which the ntfs attribute resides
343 * Allocate a new ntfs attribute structure, initialize it with @ni, @type,
351 ntfs_attr *ntfs_attr_open(ntfs_inode *ni, const ATTR_TYPES type,
362 (unsigned long long)ni->mft_no, type);
363 if (!ni || !ni->vol || !ni->mrec) {
368 list_for_each(pos, &ni->attr_cache) {
395 ctx = ntfs_attr_get_search_ctx(ni, NULL);
428 __ntfs_attr_init(na, ni, type, name, name_len);
448 list_add_tail(&na->list_entry, &ni->attr_cache);
503 (unsigned long long)na->ni->mft_no, na->type, (long long)vcn);
509 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
519 rl = ntfs_mapping_pairs_decompress(na->ni->vol, ctx->attr,
549 (unsigned long long)na->ni->mft_no, na->type,
577 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
588 rl = ntfs_mapping_pairs_decompress(na->ni->vol, ctx->attr,
620 ntfs_volume *vol = na->ni->vol;
625 (unsigned long long)na->ni->mft_no, na->type);
627 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
649 rl = ntfs_mapping_pairs_decompress(na->ni->vol,
748 long)na->ni->mft_no, na->type);
800 (unsigned long long)na->ni->mft_no, na->type,
873 "count 0x%llx.\n", (unsigned long long)na->ni->mft_no,
875 if (!na || !na->ni || !na->ni->vol || !b || pos < 0 || count < 0) {
892 vol = na->ni->vol;
906 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
1052 "count 0x%llx.\n", na->ni->mft_no, na->type,
1054 if (!na || !na->ni || !na->ni->vol || !b || pos < 0 || count < 0) {
1058 vol = na->ni->vol;
1093 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
1133 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
1437 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
1513 "pos 0x%llx.\n", (unsigned long long)na->ni->mft_no,
1566 "pos 0x%llx.\n", (unsigned long long)na->ni->mft_no,
1879 ntfs_inode *base_ni, *ni;
1888 ni = ctx->ntfs_ino;
1891 (unsigned long long)ni->mft_no, type);
1897 if (ni == base_ni)
2074 if (MREF_LE(al_entry->mft_reference) == ni->mft_no) {
2077 ni->mrec->sequence_number)) {
2086 ni = ctx->ntfs_ino = base_ni;
2090 ni = ntfs_extent_inode_open(base_ni,
2092 if (!ni) {
2097 ctx->ntfs_ino = ni;
2098 ctx->mrec = ni->mrec;
2160 if (ni != base_ni) {
2313 * @ni: ntfs inode with which to initialize the search context
2316 * Initialize the attribute search context @ctx with @ni and @mrec.
2319 ntfs_inode *ni, MFT_RECORD *mrec)
2322 mrec = ni->mrec;
2327 ctx->ntfs_ino = ni;
2364 * @ni: ntfs inode with which to initialize the search context
2367 * Allocate a new attribute search context, initialize it with @ni and @mrec,
2370 * @mrec can be NULL, in which case the mft record is taken from @ni.
2372 * Note: For low level utilities which know what they are doing we allow @ni to
2377 ntfs_attr_search_ctx *ntfs_attr_get_search_ctx(ntfs_inode *ni, MFT_RECORD *mrec)
2381 if (!ni && !mrec) {
2387 ntfs_attr_init_search_ctx(ctx, ni, mrec);
2614 * @ni: opened ntfs inode to which MFT record add attribute
2629 int ntfs_resident_attr_record_add(ntfs_inode *ni, ATTR_TYPES type,
2641 (long long) ni->mft_no, le32_to_cpu(type), le16_to_cpu(flags));
2643 if (!ni || (!name && name_len)) {
2648 if (ntfs_attr_can_be_resident(ni->vol, type)) {
2657 ctx = ntfs_attr_get_search_ctx(ni, NULL);
2662 * attribute in @ni->mrec, not any extent inode in case if @ni is base
2712 if (ni->nr_extents == -1)
2713 base_ni = ni->u.base_ni;
2715 base_ni = ni;
2717 if (ntfs_attrlist_entry_add(ni, a)) {
2725 ntfs_inode_mark_dirty(ni);
2736 * @ni: opened ntfs inode to which MFT record add attribute
2752 int ntfs_non_resident_attr_record_add(ntfs_inode *ni, ATTR_TYPES type,
2765 (long long) ni->mft_no, le32_to_cpu(type),
2769 if (!ni || dataruns_size <= 0 || (!name && name_len)) {
2774 if (ntfs_attr_can_be_non_resident(ni->vol, type)) {
2784 ctx = ntfs_attr_get_search_ctx(ni, NULL);
2789 * attribute in @ni->mrec, not any extent inode in case if @ni is base
2844 if (ni->nr_extents == -1)
2845 base_ni = ni->u.base_ni;
2847 base_ni = ni;
2849 if (ntfs_attrlist_entry_add(ni, a)) {
2857 ntfs_inode_mark_dirty(ni);
2896 ntfs_inode *base_ni, *ni;
2909 ni = ctx->ntfs_ino;
2920 if (ntfs_attrlist_entry_add(ni, ctx->attr))
2926 ntfs_inode_mark_dirty(ni);
2952 if (ntfs_mft_record_free(ni->vol, ni)) {
2959 if (ni == base_ni)
3016 * @ni: opened ntfs inode to which add attribute
3040 int ntfs_attr_add(ntfs_inode *ni, ATTR_TYPES type,
3050 if (!ni || size < 0 || type == AT_ATTRIBUTE_LIST) {
3057 (long long) ni->mft_no, type, size);
3059 if (ni->nr_extents == -1)
3060 ni = ni->u.base_ni;
3063 if (ntfs_attr_size_bounds_check(ni->vol, type, size)) {
3074 if (ntfs_attr_can_be_non_resident(ni->vol, type)) {
3088 if (size > ni->vol->mft_record_size) {
3097 if (ntfs_attr_can_be_resident(ni->vol, type)) {
3121 if (le32_to_cpu(ni->mrec->bytes_allocated) -
3122 le32_to_cpu(ni->mrec->bytes_in_use) >= attr_rec_size) {
3123 attr_ni = ni;
3128 if (ntfs_inode_attach_all_extents(ni)) {
3133 for (i = 0; i < ni->nr_extents; i++) {
3134 attr_ni = ni->u.extent_nis[i];
3156 if (!NInoAttrList(ni)) {
3158 if (ntfs_inode_add_attrlist(ni)) {
3163 return ntfs_attr_add(ni, type, name, name_len, val, size);
3166 attr_ni = ntfs_mft_record_alloc(ni->vol, ni);
3215 na = ntfs_attr_open(ni, type, name, name_len);
3278 (long long) na->ni->mft_no, na->type);
3286 if (ntfs_cluster_free(na->ni->vol, na, 0, -1) < 0) {
3294 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
3421 * @ni: opened ntfs inode to which move attribute record
3428 int ntfs_attr_record_move_to(ntfs_attr_search_ctx *ctx, ntfs_inode *ni)
3434 if (!ctx || !ctx->attr || !ctx->ntfs_ino || !ni) {
3441 "ctx->ntfs_ino->mft_no 0x%llx, ni->mft_no 0x%llx.\n",
3444 (long long) ni->mft_no);
3446 if (ctx->ntfs_ino == ni)
3458 nctx = ntfs_attr_get_search_ctx(ni, NULL);
3465 * attribute in @ni->mrec, not any extent inode in case if @ni is base
3483 if (ntfs_make_room_for_attr(ni->mrec, (u8*) nctx->attr,
3495 ntfs_inode_mark_dirty(ni);
3499 MK_LE_MREF(ni->mft_no, le16_to_cpu(ni->mrec->sequence_number));
3501 ntfs_attrlist_mark_dirty(ni);
3526 ntfs_inode *base_ni, *ni;
3559 ni = base_ni->u.extent_nis[i];
3560 m = ni->mrec;
3562 if (ctx->ntfs_ino->mft_no == ni->mft_no)
3575 if (!ntfs_attr_record_move_to(ctx, ni))
3583 ni = ntfs_mft_record_alloc(base_ni->vol, base_ni);
3584 if (!ni) {
3588 if (ntfs_attr_record_move_to(ctx, ni)) {
3618 ntfs_volume *vol = na->ni->vol;
3624 long)na->ni->mft_no, na->type);
3797 ntfs_inode *ni;
3801 (unsigned long long)na->ni->mft_no, na->type,
3805 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
3813 vol = na->ni->vol;
3842 na->ni->data_size = na->data_size;
3843 na->ni->allocated_size = na->allocated_size;
3844 NInoFileNameSetDirty(na->ni);
3872 ntfs_attr_init_search_ctx(ctx, NULL, na->ni->mrec);
3890 tna = ntfs_attr_open(na->ni, a->type, (ntfschar*)((u8*)a +
3901 ntfs_inode_mark_dirty(tna->ni);
3916 if (ntfs_inode_free_space(na->ni, offsetof(ATTR_RECORD,
3932 ntfs_attr_init_search_ctx(ctx, na->ni, NULL);
3968 if (na->ni->nr_extents == -1)
3969 ni = na->ni->u.base_ni;
3971 ni = na->ni;
3972 if (!NInoAttrList(ni)) {
3974 if (ntfs_inode_add_attrlist(ni))
3979 ni = ntfs_mft_record_alloc(vol, ni);
3980 if (!ni) {
3986 if (ntfs_attr_record_move_to(ctx, ni)) {
3992 if (na->ni->nr_extents == -1)
3993 na->ni = ni;
4035 ntfs_volume *vol = na->ni->vol;
4041 long)na->ni->mft_no, na->type);
4060 if (na->type == AT_BITMAP && na->ni->mft_no == FILE_MFT) {
4227 ntfs_inode *ni, *base_ni;
4248 "\n", (unsigned long long)na->ni->mft_no, na->type,
4251 if (na->ni->nr_extents == -1)
4252 base_ni = na->ni->u.base_ni;
4254 base_ni = na->ni;
4385 if (!NInoAttrList(na->ni)) {
4388 na->ni))
4466 na->ni->vol, na->rl);
4484 na->ni->allocated_size =
4487 na->ni->allocated_size =
4489 NInoFileNameSetDirty(na->ni);
4507 mp_size = ntfs_get_size_for_mapping_pairs(na->ni->vol, na->rl,
4536 if (ntfs_inode_free_space(na->ni, mp_size -
4601 if (!ntfs_mapping_pairs_build(na->ni->vol, (u8*)a + le16_to_cpu(
4663 mp_size = ntfs_get_size_for_mapping_pairs(na->ni->vol,
4671 ni = ntfs_mft_record_alloc(na->ni->vol, base_ni);
4672 if (!ni) {
4677 m = ni->mrec;
4691 err = ntfs_non_resident_attr_record_add(ni, na->type,
4697 if (ntfs_mft_record_free(na->ni->vol, ni)) {
4704 err = ntfs_mapping_pairs_build(na->ni->vol, (u8*)a +
4713 if (ntfs_mft_record_free(na->ni->vol, ni))
4718 ntfs_inode_mark_dirty(ni);
4754 (unsigned long long)na->ni->mft_no, na->type,
4757 vol = na->ni->vol;
4820 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
4844 na->ni->data_size = na->data_size;
4845 NInoFileNameSetDirty(na->ni);
4896 (unsigned long long)na->ni->mft_no, na->type,
4899 vol = na->ni->vol;
5011 ctx = ntfs_attr_get_search_ctx(na->ni, NULL);
5039 na->ni->data_size = na->data_size;
5040 NInoFileNameSetDirty(na->ni);
5112 (na->ni->mft_no == FILE_MFT && na->type == AT_DATA)) {
5119 long)na->ni->mft_no, na->type);
5167 * @ni: open ntfs inode in which the ntfs attribute resides
5184 void *ntfs_attr_readall(ntfs_inode *ni, const ATTR_TYPES type,
5191 na = ntfs_attr_open(ni, type, name, name_len);
5217 int ntfs_attr_exist(ntfs_inode *ni, const ATTR_TYPES type, ntfschar *name,
5225 ctx = ntfs_attr_get_search_ctx(ni, NULL);