Lines Matching defs:base_ni

89 	ntfs_inode *base_ni;
107 base_ni = ni;
109 base_ni = ni->base_ni;
110 err = ntfs_mft_record_map(base_ni, &m);
113 ctx = ntfs_attr_search_ctx_get(base_ni, m);
133 (unsigned long long)base_ni->mft_no);
166 ntfs_mft_record_unmap(base_ni);
230 ntfs_inode *base_ni;
240 base_ni = ni;
242 base_ni = ni->base_ni;
245 err = ntfs_mft_record_map(base_ni, &m);
248 ctx = ntfs_attr_search_ctx_get(base_ni, m);
320 ntfs_mft_record_unmap(base_ni);
329 if (NInoAttrList(base_ni)) {
340 if (ctx->base_ni && ctx->ni != ctx->base_ni) {
351 if (old_ctx.base_ni && old_ctx.ni !=
352 old_ctx.base_ni) {
375 old_ctx.ni = old_ctx.base_ni;
673 if (!ctx->base_ni) {
683 * despite having zeroed ctx->base_ni.
689 if (ctx->ni != ctx->base_ni)
691 ntfs_attr_search_ctx_init(ctx, ctx->base_ni, ctx->base_m);
723 if (ctx->base_ni && ctx->ni != ctx->base_ni)
931 * @ctx->ni can be any extent inode, too (@ctx->base_ni is then the base
978 ntfs_inode *base_ni, *ni = ctx->ni;
993 base_ni = ctx->base_ni;
996 if (!base_ni) {
998 base_ni = ctx->base_ni = ctx->ni;
1001 if (ni == base_ni)
1005 al_start = base_ni->attr_list;
1006 al_end = al_start + base_ni->attr_list_size;
1022 if ((u8*)al_entry < base_ni->attr_list ||
1111 base_ni->mft_no, es);
1117 if (ni != base_ni)
1121 base_ni->mft_no) {
1122 ni = ctx->ni = base_ni;
1126 err = ntfs_extent_mft_record_map_ext(base_ni,
1139 base_ni->mft_no, es);
1211 (unsigned long long)base_ni->mft_no, es);
1214 if (ni != base_ni) {
1217 ctx->ni = base_ni;
1246 if (ni != base_ni)
1252 ctx->ni = base_ni;
1314 ntfs_inode *base_ni;
1317 if (ctx->base_ni)
1318 base_ni = ctx->base_ni;
1320 base_ni = ctx->ni;
1322 if (!base_ni)
1323 panic("%s(): !base_ni\n", __FUNCTION__);
1324 if (!NInoAttrList(base_ni) || type == AT_ATTRIBUTE_LIST)
1504 * @base_ni: base ntfs inode from which to delete the attribute
1533 errno_t ntfs_attr_record_delete(ntfs_inode *base_ni, ntfs_attr_search_ctx *ctx)
1549 (base_ni == ni) ? "base" : "extent",
1551 NInoAttrList(base_ni) ? "" : "not ");
1559 if (!NInoAttrList(base_ni)) {
1561 NInoSetMrecNeedsDirtying(base_ni);
1580 if (base_ni == ni || (u8*)m + le16_to_cpu(m->attrs_offset) != (u8*)a ||
1593 * record and we set @ctx->ni to equal the base inode @base_ni
1598 if (base_ni != ni) {
1601 ctx->ni = base_ni;
1604 err = ntfs_extent_mft_record_free(base_ni, ni, m);
1628 ctx->ni = base_ni;
1644 err = ntfs_attr_list_is_needed(base_ni, al_entry, &al_needed);
1651 (unsigned long long)base_ni->mft_no,
1659 err = ntfs_attr_list_delete(base_ni, ctx);
1675 (unsigned long long)base_ni->mft_no,
1686 al_ofs = (u8*)al_entry - base_ni->attr_list;
1687 ntfs_attr_list_entry_delete(base_ni, al_entry);
1689 err = ntfs_attr_list_sync_shrink(base_ni, al_ofs, ctx);
1694 NInoSetMrecNeedsDirtying(base_ni);
1698 (unsigned long long)base_ni->mft_no, err);
1791 * @base_ni: base ntfs inode to which the attribute belongs
1826 * the base ntfs inode @base_ni is updated appropriately both in memory and in
1844 errno_t ntfs_attr_mapping_pairs_update(ntfs_inode *base_ni, ntfs_inode *ni,
1857 (unsigned long long)base_ni->mft_no,
1862 vol = base_ni->vol;
1875 err = ntfs_mft_record_map(base_ni, &base_m);
1880 base_ni->mft_no, err);
1884 ntfs_attr_search_ctx_init(ctx, base_ni, base_m);
1893 (unsigned long long)base_ni->mft_no,
2048 if (!NInoAttrList(base_ni)) {
2049 err = ntfs_attr_list_add(base_ni, ctx->m, ctx);
2059 base_ni->mft_no, err);
2090 lck_rw_lock_shared(&base_ni->attr_list_rl.lock);
2092 lck_rw_unlock_shared(&base_ni->attr_list_rl.lock);
2255 (unsigned long long)base_ni->mft_no,
2300 if (ctx->ni != base_ni)
2302 ntfs_mft_record_unmap(base_ni);
2932 ntfs_inode *base_ni;
3008 base_ni = ni;
3010 base_ni = ni->base_ni;
3011 err = ntfs_mft_record_map(base_ni, &base_m);
3014 ntfs_attr_search_ctx_init(&ctx, base_ni, base_m);
3098 if (!NInoAttrList(base_ni)) {
3099 err = ntfs_attr_list_add(base_ni, base_m, &ctx);
3107 (unsigned long long)base_ni->mft_no,
3152 if (ctx.ni != base_ni)
3153 panic("%s(): ctx.ni != base_ni\n", __FUNCTION__);
3172 lck_rw_lock_shared(&base_ni->attr_list_rl.lock);
3174 lck_rw_unlock_shared(&base_ni->attr_list_rl.lock);
3185 base_ni->mft_no, err);
3198 mref = MK_LE_MREF(base_ni->mft_no, base_ni->seq_no);
3199 al_ofs = base_ni->attr_list_size;
3200 al_end = base_ni->attr_list + al_ofs;
3202 ntfs_attr_search_ctx_init(&actx, base_ni, base_m);
3248 base_ni->mft_no);
3256 (unsigned long long)base_ni->mft_no,
3287 al_entry = (ATTR_LIST_ENTRY*)base_ni->attr_list;
3300 base_ni->mft_no);
3328 base_ni->mft_no);
3346 (unsigned long long)base_ni->mft_no,
3357 if ((u8*)al_entry - base_ni->attr_list < (long)al_ofs) {
3358 al_ofs = (u8*)al_entry - base_ni->attr_list;
3365 if (ctx.ni != base_ni) {
3389 ctx.ni = base_ni;
3470 if (ctx.ni != base_ni)
3474 err = ntfs_attr_list_sync(base_ni, al_ofs, &actx);
3480 (unsigned long long)base_ni->mft_no,
3485 NInoSetMrecNeedsDirtying(base_ni);
3487 ntfs_mft_record_unmap(base_ni);
3496 if (ni == base_ni && !S_ISDIR(ni->mode))
3503 if (ctx.ni != base_ni) {
3509 err2 = ntfs_attr_list_sync(base_ni, al_ofs, &actx);
3518 NInoSetMrecNeedsDirtying(base_ni);
3519 ntfs_mft_record_unmap(base_ni);
3576 ntfs_inode *base_ni, *ni;
3582 base_ni = al_ctx->ni;
3584 (unsigned long long)base_ni->mft_no,
3591 * will all be attached to @base_ni->extent_nis and for each of them we
3596 err = ntfs_mft_record_alloc(base_ni->vol, NULL, NULL, base_ni, &ni, &m,
3599 ntfs_error(base_ni->vol->mp, "Failed to move attribute to a "
3653 if (ctx && ctx->ni == base_ni) {
3684 * @ctx->base_ni->attr_list_rl.lock.
3688 ntfs_inode *base_ni, *ni;
3698 base_ni = ctx->base_ni;
3699 if (!base_ni || !NInoAttrList(base_ni))
3700 panic("%s(): !base_ni || !NInoAttrList(base_ni)\n",
3707 (unsigned long long)base_ni->mft_no,
3739 if (ni != base_ni)
3745 ntfs_attr_search_ctx_init(&al_ctx, base_ni, ctx->base_m);
3749 ntfs_error(base_ni->vol->mp, "Failed to move attribute to a "
3759 err = ntfs_mft_record_alloc(base_ni->vol, NULL, NULL, base_ni, &ni, &m,
3762 ntfs_error(base_ni->vol->mp, "Failed to move attribute to a "
3805 ofs = (u8*)ctx->al_entry - base_ni->attr_list;
3806 err = ntfs_rl_write(base_ni->vol, base_ni->attr_list,
3807 base_ni->attr_list_size,
3808 &base_ni->attr_list_rl, ofs,
3811 ntfs_error(base_ni->vol->mp, "Failed to update "
3814 (unsigned long long)base_ni->mft_no,
3823 ((u8*)ctx->al_entry - base_ni->attr_list));
3827 NInoSetMrecNeedsDirtying(base_ni);
3837 if (ni != base_ni) {
3844 ctx->ni = base_ni;
3845 ntfs_error(base_ni->vol->mp, "Failed to restore "
3848 (unsigned long long)base_ni->mft_no,
3850 NVolSetErrors(base_ni->vol);
3917 ntfs_inode *base_ni;
3936 base_ni = ni;
3938 base_ni = ni->base_ni;
3940 err = ntfs_mft_record_map(base_ni, &m);
3943 ctx = ntfs_attr_search_ctx_get(base_ni, m);
3987 if (ni == base_ni && !S_ISDIR(ni->mode))
4010 lck_spin_lock(&base_ni->size_lock);
4012 base_ni->data_size = new_init_size;
4013 base_ni->initialized_size = new_init_size;
4014 lck_spin_unlock(&base_ni->size_lock);
4021 ntfs_mft_record_unmap(base_ni);
4076 ntfs_inode *base_ni;
4104 base_ni = ni;
4106 base_ni = ni->base_ni;
4113 err = ntfs_mft_record_map(base_ni, &m);
4116 ctx = ntfs_attr_search_ctx_get(base_ni, m);
4149 ntfs_mft_record_unmap(base_ni);
4160 err = ntfs_mft_record_map(base_ni, &m);
4163 ctx = ntfs_attr_search_ctx_get(base_ni, m);
4189 ntfs_mft_record_unmap(base_ni);
4476 if (mark_sizes_dirty && ni == base_ni && !S_ISDIR(ni->mode))
4500 ntfs_mft_record_unmap(base_ni);
4508 * @base_ni: base ntfs inode to which the attribute belongs
4513 * the base ntfs inode @base_ni to be sparse.
4521 static errno_t ntfs_attr_sparse_set(ntfs_inode *base_ni, ntfs_inode *ni,
4539 (unsigned long long)base_ni->mft_no,
4543 vol = base_ni->vol;
4544 base_m = base_ni->m;
4604 if (!NInoAttrList(base_ni)) {
4605 err = ntfs_attr_list_add(base_ni, base_m, ctx);
4613 (unsigned long long)base_ni->mft_no,
4640 lck_rw_lock_shared(&base_ni->attr_list_rl.lock);
4642 lck_rw_unlock_shared(&base_ni->attr_list_rl.lock);
4754 if (ni == base_ni) {
4793 if (ctx->ni != base_ni) {
4797 ctx->ni = base_ni;
4869 new_al_size = base_ni->attr_list_size + al_entry_len;
4871 if ((u8*)al_entry < base_ni->attr_list || (u8*)al_entry >
4872 base_ni->attr_list + new_al_size || (u8*)al_entry +
4873 al_entry_len > base_ni->attr_list + new_al_size) {
4876 (unsigned long long)base_ni->mft_no);
4903 if (new_al_alloc > base_ni->attr_list_alloc) {
4914 al = base_ni->attr_list;
4916 al_end = al + base_ni->attr_list_size;
4920 al_entry_ofs, base_ni->attr_list_size -
4924 OSFree(base_ni->attr_list, base_ni->attr_list_alloc,
4926 base_ni->attr_list_alloc = new_al_alloc;
4927 base_ni->attr_list = tmp;
4928 } else if ((u8*)al_entry < base_ni->attr_list +
4929 base_ni->attr_list_size)
4931 base_ni->attr_list_size - ((u8*)al_entry -
4932 base_ni->attr_list));
4933 base_ni->attr_list_size = new_al_size;
4968 err = ntfs_attr_list_sync_extend(base_ni, base_m,
4969 (u8*)al_entry - base_ni->attr_list, ctx);
4988 (unsigned long long)base_ni->mft_no, err);
5015 if (eni != base_ni) {
5019 ctx->ni = base_ni;
5052 * @base_ni: base ntfs inode to which the attribute belongs
5057 * ntfs inode @base_ni to not be sparse any more.
5061 static void ntfs_attr_sparse_clear(ntfs_inode *base_ni, ntfs_inode *ni,
5141 if (ni == base_ni) {
5184 ntfs_inode *base_ni;
5217 base_ni = ni;
5219 base_ni = ni->base_ni;
5458 err = ntfs_mft_record_map(base_ni, &base_m);
5462 (unsigned long long)base_ni->mft_no,
5466 ctx = ntfs_attr_search_ctx_get(base_ni, base_m);
5483 (unsigned long long)base_ni->mft_no,
5506 ntfs_attr_sparse_clear(base_ni, ni, ctx);
5522 if (ni == base_ni)
5539 base_ni->mft_no, err);
5584 if (!NInoAttrList(base_ni)) {
5585 err = ntfs_attr_list_add(base_ni, base_m, ctx);
5595 base_ni->mft_no, err);
5622 lck_rw_lock_shared(&base_ni->attr_list_rl.lock);
5624 lck_rw_unlock_shared(&base_ni->attr_list_rl.lock);
5740 if (ctx->ni != base_ni)
5748 ntfs_mft_record_unmap(base_ni);
5811 err2 = ntfs_attr_sparse_set(base_ni, ni, ctx);
5835 if (ni == base_ni)
5840 ntfs_mft_record_unmap(base_ni);
5951 ntfs_inode *base_ni;
5981 base_ni = ni;
5983 base_ni = ni->base_ni;
6042 err = ntfs_mft_record_map(base_ni, &base_m);
6048 actx = ntfs_attr_search_ctx_get(base_ni, base_m);
6152 ntfs_mft_record_unmap(base_ni);
6745 if (!NInoAttrList(base_ni)) {
6746 err = ntfs_attr_list_add(base_ni, base_m, actx);
6754 (unsigned long long)base_ni->mft_no,
6796 lck_rw_lock_shared(&base_ni->attr_list_rl.lock);
6798 lck_rw_unlock_shared(&base_ni->attr_list_rl.lock);
6927 if (actx->ni != base_ni)
6937 err = ntfs_mft_record_alloc(vol, NULL, NULL, base_ni,
6944 actx->ni = base_ni;
7009 new_al_size = base_ni->attr_list_size + al_entry_len;
7011 if ((u8*)al_entry < base_ni->attr_list || (u8*)al_entry >
7012 base_ni->attr_list + new_al_size ||
7014 base_ni->attr_list + new_al_size) {
7075 if (new_al_alloc > base_ni->attr_list_alloc) {
7097 al = base_ni->attr_list;
7099 al_end = al + base_ni->attr_list_size;
7104 base_ni->attr_list_size -
7108 OSFree(base_ni->attr_list, base_ni->attr_list_alloc,
7110 base_ni->attr_list_alloc = new_al_alloc;
7111 base_ni->attr_list = tmp;
7112 } else if ((u8*)al_entry < base_ni->attr_list +
7113 base_ni->attr_list_size)
7115 base_ni->attr_list_size -
7116 ((u8*)al_entry - base_ni->attr_list));
7117 base_ni->attr_list_size = new_al_size;
7160 err = ntfs_attr_list_sync_extend(base_ni, base_m,
7161 (u8*)al_entry - base_ni->attr_list, actx);
7184 (unsigned long long)base_ni->mft_no,
7212 if (a->lowest_vcn || (!S_ISDIR(base_ni->mode) &&
7214 (S_ISDIR(base_ni->mode) &&
7310 base_ni->mft_no, (unsigned)
7324 err = ntfs_attr_sparse_set(base_ni, ni, actx);
7346 lck_spin_lock(&base_ni->size_lock);
7347 base_ni->allocated_size = new_alloc_size;
7348 lck_spin_unlock(&base_ni->size_lock);
7371 lck_spin_lock(&base_ni->size_lock);
7372 base_ni->data_size = new_data_size;
7373 lck_spin_unlock(&base_ni->size_lock);
7386 if (ni == base_ni && !S_ISDIR(ni->mode))
7390 ntfs_mft_record_unmap(base_ni);
7467 if (actx->ni != base_ni)
7478 if (actx->ni != base_ni)
7482 if (!ntfs_extent_mft_record_free(base_ni, actx->ni,
7488 actx->ni = base_ni;
7498 base_ni->mft_no);
7503 ntfs_attr_list_entry_delete(base_ni, actx->al_entry);
7505 if (ntfs_attr_list_sync_shrink(base_ni, 0, actx)) {
7512 base_ni->mft_no);
7547 lck_spin_lock(&base_ni->size_lock);
7548 base_ni->allocated_size = alloc_size;
7549 lck_spin_unlock(&base_ni->size_lock);
7552 if (actx->ni != base_ni)
7561 if (ni == base_ni && !S_ISDIR(ni->mode))
7565 NInoSetMrecNeedsDirtying(base_ni);
7566 ntfs_mft_record_unmap(base_ni);
7587 (unsigned long long)base_ni->mft_no);
7598 ntfs_mft_record_unmap(base_ni);
7669 ntfs_inode *eni, *base_ni;
7691 base_ni = ni;
7693 base_ni = ni->base_ni;
7723 err = ntfs_mft_record_map(base_ni, &m);
7730 actx = ntfs_attr_search_ctx_get(base_ni, m);
8095 ntfs_mft_record_unmap(base_ni);
8196 lck_spin_lock(&base_ni->size_lock);
8197 base_ni->initialized_size = new_size;
8198 lck_spin_unlock(&base_ni->size_lock);
8235 ntfs_mft_record_unmap(base_ni);
8252 lck_spin_lock(&base_ni->size_lock);
8253 base_ni->data_size = new_size;
8254 lck_spin_unlock(&base_ni->size_lock);
8334 ntfs_attr_sparse_clear(base_ni, ni, actx);
8352 lck_spin_lock(&base_ni->size_lock);
8353 base_ni->allocated_size = new_alloc_size;
8354 lck_spin_unlock(&base_ni->size_lock);
8461 if (!NInoAttrList(base_ni)) {
8463 NInoSetMrecNeedsDirtying(base_ni);
8487 al_end = base_ni->attr_list + base_ni->attr_list_size;
8496 actx->ni = base_ni;
8519 (u8*)al_entry < base_ni->attr_list) {
8523 (unsigned long long)base_ni->mft_no);
8532 if (MREF_LE(al_entry->mft_reference) == base_ni->mft_no) {
8535 base_ni->seq_no) {
8541 base_ni->mft_no);
8545 eni = base_ni;
8549 err = ntfs_extent_mft_record_map(base_ni,
8560 base_ni->mft_no);
8621 err = ntfs_extent_mft_record_free(base_ni, eni, m);
8630 if (eni != base_ni) {
8638 if (eni != base_ni) {
8655 al_ofs = del_al_start - base_ni->attr_list;
8656 ntfs_attr_list_entries_delete(base_ni,
8666 err = ntfs_attr_list_is_needed(base_ni, NULL,
8675 err = ntfs_attr_list_delete(base_ni, actx);
8684 err = ntfs_attr_list_sync_shrink(base_ni, al_ofs, actx);
8691 ntfs_mft_record_unmap(base_ni);
8713 if (ni == base_ni && !S_ISDIR(ni->mode) &&
8721 * (ctime) on the base ntfs inode @base_ni unless this is an attribute
8734 base_ni->last_mft_change_time = ntfs_utc_current_time();
8735 if (ni == base_ni)
8736 base_ni->last_data_change_time = base_ni->last_mft_change_time;
8737 NInoSetDirtyTimes(base_ni);
8742 if (!S_ISDIR(base_ni->mode) || NInoEncrypted(base_ni)) {
8752 base_ni->file_attributes |= FILE_ATTR_ARCHIVE;
8753 NInoSetDirtyFileAttributes(base_ni);
8762 (unsigned long long)base_ni->mft_no);
8763 if (eni != base_ni)
8772 ntfs_mft_record_unmap(base_ni);
8939 ntfs_inode *base_ni;
8946 base_ni = ni;
8948 base_ni = ni->base_ni;
8950 err = ntfs_mft_record_map(base_ni, &m);
8961 ctx = ntfs_attr_search_ctx_get(base_ni, m);
9003 ntfs_mft_record_unmap(base_ni);
9032 ntfs_inode *base_ni;
9039 base_ni = ni;
9041 base_ni = ni->base_ni;
9043 err = ntfs_mft_record_map(base_ni, &m);
9054 ctx = ntfs_attr_search_ctx_get(base_ni, m);
9093 ntfs_mft_record_unmap(base_ni);