Lines Matching refs:ctx
70 int ntfs_map_runlist_nolock(ntfs_inode *ni, VCN vcn, ntfs_attr_search_ctx *ctx) in ntfs_map_runlist_nolock() argument
89 if (!ctx) { in ntfs_map_runlist_nolock()
94 ctx = ntfs_attr_get_search_ctx(base_ni, m); in ntfs_map_runlist_nolock()
95 if (unlikely(!ctx)) { in ntfs_map_runlist_nolock()
102 BUG_ON(IS_ERR(ctx->mrec)); in ntfs_map_runlist_nolock()
103 a = ctx->attr; in ntfs_map_runlist_nolock()
129 old_ctx = *ctx; in ntfs_map_runlist_nolock()
147 ntfs_attr_reinit_search_ctx(ctx); in ntfs_map_runlist_nolock()
153 CASE_SENSITIVE, vcn, NULL, 0, ctx); in ntfs_map_runlist_nolock()
159 BUG_ON(!ctx->attr->non_resident); in ntfs_map_runlist_nolock()
161 a = ctx->attr; in ntfs_map_runlist_nolock()
180 if (likely(ctx)) in ntfs_map_runlist_nolock()
181 ntfs_attr_put_search_ctx(ctx); in ntfs_map_runlist_nolock()
197 if (ctx->ntfs_ino != old_ctx.ntfs_ino) { in ntfs_map_runlist_nolock()
202 if (ctx->base_ntfs_ino && ctx->ntfs_ino != in ntfs_map_runlist_nolock()
203 ctx->base_ntfs_ino) { in ntfs_map_runlist_nolock()
204 unmap_extent_mft_record(ctx->ntfs_ino); in ntfs_map_runlist_nolock()
205 ctx->mrec = ctx->base_mrec; in ntfs_map_runlist_nolock()
206 BUG_ON(!ctx->mrec); in ntfs_map_runlist_nolock()
216 ctx->mrec = map_mft_record( in ntfs_map_runlist_nolock()
228 if (IS_ERR(ctx->mrec)) { in ntfs_map_runlist_nolock()
229 if (PTR_ERR(ctx->mrec) == in ntfs_map_runlist_nolock()
241 if (ctx->mrec != old_ctx.mrec) { in ntfs_map_runlist_nolock()
242 if (!IS_ERR(ctx->mrec)) in ntfs_map_runlist_nolock()
244 (u8*)ctx->mrec + in ntfs_map_runlist_nolock()
247 old_ctx.mrec = ctx->mrec; in ntfs_map_runlist_nolock()
251 *ctx = old_ctx; in ntfs_map_runlist_nolock()
451 ntfs_attr_search_ctx *ctx) in ntfs_attr_find_vcn_nolock() argument
460 ni->mft_no, (unsigned long long)vcn, ctx ? "" : "out"); in ntfs_attr_find_vcn_nolock()
496 if (IS_ERR(ctx->mrec)) in ntfs_attr_find_vcn_nolock()
497 err = PTR_ERR(ctx->mrec); in ntfs_attr_find_vcn_nolock()
503 err = ntfs_map_runlist_nolock(ni, vcn, ctx); in ntfs_attr_find_vcn_nolock()
577 const u8 *val, const u32 val_len, ntfs_attr_search_ctx *ctx) in ntfs_attr_find() argument
580 ntfs_volume *vol = ctx->ntfs_ino->vol; in ntfs_attr_find()
588 if (ctx->is_first) { in ntfs_attr_find()
589 a = ctx->attr; in ntfs_attr_find()
590 ctx->is_first = false; in ntfs_attr_find()
592 a = (ATTR_RECORD*)((u8*)ctx->attr + in ntfs_attr_find()
593 le32_to_cpu(ctx->attr->length)); in ntfs_attr_find()
595 if ((u8*)a < (u8*)ctx->mrec || (u8*)a > (u8*)ctx->mrec + in ntfs_attr_find()
596 le32_to_cpu(ctx->mrec->bytes_allocated)) in ntfs_attr_find()
598 ctx->attr = a; in ntfs_attr_find()
846 const u8 *val, const u32 val_len, ntfs_attr_search_ctx *ctx) in ntfs_external_attr_find() argument
858 ni = ctx->ntfs_ino; in ntfs_external_attr_find()
859 base_ni = ctx->base_ntfs_ino; in ntfs_external_attr_find()
863 base_ni = ctx->base_ntfs_ino = ctx->ntfs_ino; in ntfs_external_attr_find()
864 ctx->base_mrec = ctx->mrec; in ntfs_external_attr_find()
867 ctx->base_attr = ctx->attr; in ntfs_external_attr_find()
873 if (!ctx->al_entry) in ntfs_external_attr_find()
874 ctx->al_entry = (ATTR_LIST_ENTRY*)al_start; in ntfs_external_attr_find()
879 if (ctx->is_first) { in ntfs_external_attr_find()
880 al_entry = ctx->al_entry; in ntfs_external_attr_find()
881 ctx->is_first = false; in ntfs_external_attr_find()
883 al_entry = (ATTR_LIST_ENTRY*)((u8*)ctx->al_entry + in ntfs_external_attr_find()
884 le16_to_cpu(ctx->al_entry->length)); in ntfs_external_attr_find()
890 ctx->al_entry = al_entry; in ntfs_external_attr_find()
983 ni = ctx->ntfs_ino = base_ni; in ntfs_external_attr_find()
984 ctx->mrec = ctx->base_mrec; in ntfs_external_attr_find()
987 ctx->mrec = map_extent_mft_record(base_ni, in ntfs_external_attr_find()
990 if (IS_ERR(ctx->mrec)) { in ntfs_external_attr_find()
998 err = PTR_ERR(ctx->mrec); in ntfs_external_attr_find()
1005 ctx->ntfs_ino = ni; in ntfs_external_attr_find()
1007 ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + in ntfs_external_attr_find()
1008 le16_to_cpu(ctx->mrec->attrs_offset)); in ntfs_external_attr_find()
1025 a = ctx->attr; in ntfs_external_attr_find()
1031 if ((u8*)a < (u8*)ctx->mrec || (u8*)a > (u8*)ctx->mrec + in ntfs_external_attr_find()
1032 le32_to_cpu(ctx->mrec->bytes_allocated)) in ntfs_external_attr_find()
1052 ctx->attr = a; in ntfs_external_attr_find()
1079 ctx->ntfs_ino = base_ni; in ntfs_external_attr_find()
1080 ctx->mrec = ctx->base_mrec; in ntfs_external_attr_find()
1081 ctx->attr = ctx->base_attr; in ntfs_external_attr_find()
1092 ntfs_attr_reinit_search_ctx(ctx); in ntfs_external_attr_find()
1094 ctx); in ntfs_external_attr_find()
1111 ctx->mrec = ctx->base_mrec; in ntfs_external_attr_find()
1112 ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + in ntfs_external_attr_find()
1113 le16_to_cpu(ctx->mrec->attrs_offset)); in ntfs_external_attr_find()
1114 ctx->is_first = true; in ntfs_external_attr_find()
1115 ctx->ntfs_ino = base_ni; in ntfs_external_attr_find()
1116 ctx->base_ntfs_ino = NULL; in ntfs_external_attr_find()
1117 ctx->base_mrec = NULL; in ntfs_external_attr_find()
1118 ctx->base_attr = NULL; in ntfs_external_attr_find()
1128 ctx); in ntfs_external_attr_find()
1176 ntfs_attr_search_ctx *ctx) in ntfs_attr_lookup() argument
1181 BUG_ON(IS_ERR(ctx->mrec)); in ntfs_attr_lookup()
1182 if (ctx->base_ntfs_ino) in ntfs_attr_lookup()
1183 base_ni = ctx->base_ntfs_ino; in ntfs_attr_lookup()
1185 base_ni = ctx->ntfs_ino; in ntfs_attr_lookup()
1190 ctx); in ntfs_attr_lookup()
1192 val, val_len, ctx); in ntfs_attr_lookup()
1203 static inline void ntfs_attr_init_search_ctx(ntfs_attr_search_ctx *ctx, in ntfs_attr_init_search_ctx() argument
1206 *ctx = (ntfs_attr_search_ctx) { in ntfs_attr_init_search_ctx()
1226 void ntfs_attr_reinit_search_ctx(ntfs_attr_search_ctx *ctx) in ntfs_attr_reinit_search_ctx() argument
1228 if (likely(!ctx->base_ntfs_ino)) { in ntfs_attr_reinit_search_ctx()
1230 ctx->is_first = true; in ntfs_attr_reinit_search_ctx()
1232 ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + in ntfs_attr_reinit_search_ctx()
1233 le16_to_cpu(ctx->mrec->attrs_offset)); in ntfs_attr_reinit_search_ctx()
1238 ctx->al_entry = NULL; in ntfs_attr_reinit_search_ctx()
1241 if (ctx->ntfs_ino != ctx->base_ntfs_ino) in ntfs_attr_reinit_search_ctx()
1242 unmap_extent_mft_record(ctx->ntfs_ino); in ntfs_attr_reinit_search_ctx()
1243 ntfs_attr_init_search_ctx(ctx, ctx->base_ntfs_ino, ctx->base_mrec); in ntfs_attr_reinit_search_ctx()
1257 ntfs_attr_search_ctx *ctx; in ntfs_attr_get_search_ctx() local
1259 ctx = kmem_cache_alloc(ntfs_attr_ctx_cache, GFP_NOFS); in ntfs_attr_get_search_ctx()
1260 if (ctx) in ntfs_attr_get_search_ctx()
1261 ntfs_attr_init_search_ctx(ctx, ni, mrec); in ntfs_attr_get_search_ctx()
1262 return ctx; in ntfs_attr_get_search_ctx()
1272 void ntfs_attr_put_search_ctx(ntfs_attr_search_ctx *ctx) in ntfs_attr_put_search_ctx() argument
1274 if (ctx->base_ntfs_ino && ctx->ntfs_ino != ctx->base_ntfs_ino) in ntfs_attr_put_search_ctx()
1275 unmap_extent_mft_record(ctx->ntfs_ino); in ntfs_attr_put_search_ctx()
1276 kmem_cache_free(ntfs_attr_ctx_cache, ctx); in ntfs_attr_put_search_ctx()
1529 ntfs_attr_search_ctx *ctx; in ntfs_attr_make_non_resident() local
1602 ctx = NULL; in ntfs_attr_make_non_resident()
1605 ctx = ntfs_attr_get_search_ctx(base_ni, m); in ntfs_attr_make_non_resident()
1606 if (unlikely(!ctx)) { in ntfs_attr_make_non_resident()
1611 CASE_SENSITIVE, 0, NULL, 0, ctx); in ntfs_attr_make_non_resident()
1617 m = ctx->mrec; in ntfs_attr_make_non_resident()
1618 a = ctx->attr; in ntfs_attr_make_non_resident()
1729 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1730 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1731 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_make_non_resident()
1803 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1804 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1806 if (ctx) in ntfs_attr_make_non_resident()
1807 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_make_non_resident()
1900 ntfs_attr_search_ctx *ctx; in ntfs_attr_extend_allocation() local
1982 ctx = NULL; in ntfs_attr_extend_allocation()
1985 ctx = ntfs_attr_get_search_ctx(base_ni, m); in ntfs_attr_extend_allocation()
1986 if (unlikely(!ctx)) { in ntfs_attr_extend_allocation()
2017 CASE_SENSITIVE, vcn, NULL, 0, ctx); in ntfs_attr_extend_allocation()
2023 m = ctx->mrec; in ntfs_attr_extend_allocation()
2024 a = ctx->attr; in ntfs_attr_extend_allocation()
2060 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()
2313 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2314 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2315 ntfs_attr_reinit_search_ctx(ctx); in ntfs_attr_extend_allocation()
2317 CASE_SENSITIVE, 0, NULL, 0, ctx); in ntfs_attr_extend_allocation()
2321 a = ctx->attr; in ntfs_attr_extend_allocation()
2352 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2353 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2355 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()
2370 ntfs_attr_reinit_search_ctx(ctx); in ntfs_attr_extend_allocation()
2373 ctx)) { in ntfs_attr_extend_allocation()
2391 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()
2401 ctx->attr->data.non_resident.highest_vcn = cpu_to_sle64( in ntfs_attr_extend_allocation()
2405 if (ntfs_cluster_free(ni, ll, -1, ctx) < 0) { in ntfs_attr_extend_allocation()
2411 m = ctx->mrec; in ntfs_attr_extend_allocation()
2412 a = ctx->attr; in ntfs_attr_extend_allocation()
2444 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2445 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2449 if (ctx) in ntfs_attr_extend_allocation()
2450 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()