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 u8 *mrec_end = (u8 *)ctx->mrec + in ntfs_attr_find()
596 le32_to_cpu(ctx->mrec->bytes_allocated); in ntfs_attr_find()
600 if ((u8 *)a < (u8 *)ctx->mrec) in ntfs_attr_find()
614 ctx->attr = a; in ntfs_attr_find()
870 const u8 *val, const u32 val_len, ntfs_attr_search_ctx *ctx) in ntfs_external_attr_find() argument
882 ni = ctx->ntfs_ino; in ntfs_external_attr_find()
883 base_ni = ctx->base_ntfs_ino; in ntfs_external_attr_find()
887 base_ni = ctx->base_ntfs_ino = ctx->ntfs_ino; in ntfs_external_attr_find()
888 ctx->base_mrec = ctx->mrec; in ntfs_external_attr_find()
891 ctx->base_attr = ctx->attr; in ntfs_external_attr_find()
897 if (!ctx->al_entry) in ntfs_external_attr_find()
898 ctx->al_entry = (ATTR_LIST_ENTRY*)al_start; in ntfs_external_attr_find()
903 if (ctx->is_first) { in ntfs_external_attr_find()
904 al_entry = ctx->al_entry; in ntfs_external_attr_find()
905 ctx->is_first = false; in ntfs_external_attr_find()
907 al_entry = (ATTR_LIST_ENTRY*)((u8*)ctx->al_entry + in ntfs_external_attr_find()
908 le16_to_cpu(ctx->al_entry->length)); in ntfs_external_attr_find()
914 ctx->al_entry = al_entry; in ntfs_external_attr_find()
1007 ni = ctx->ntfs_ino = base_ni; in ntfs_external_attr_find()
1008 ctx->mrec = ctx->base_mrec; in ntfs_external_attr_find()
1011 ctx->mrec = map_extent_mft_record(base_ni, in ntfs_external_attr_find()
1014 if (IS_ERR(ctx->mrec)) { in ntfs_external_attr_find()
1022 err = PTR_ERR(ctx->mrec); in ntfs_external_attr_find()
1029 ctx->ntfs_ino = ni; in ntfs_external_attr_find()
1031 ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + in ntfs_external_attr_find()
1032 le16_to_cpu(ctx->mrec->attrs_offset)); in ntfs_external_attr_find()
1049 a = ctx->attr; in ntfs_external_attr_find()
1055 if ((u8*)a < (u8*)ctx->mrec || (u8*)a > (u8*)ctx->mrec + in ntfs_external_attr_find()
1056 le32_to_cpu(ctx->mrec->bytes_allocated)) in ntfs_external_attr_find()
1076 ctx->attr = a; in ntfs_external_attr_find()
1103 ctx->ntfs_ino = base_ni; in ntfs_external_attr_find()
1104 ctx->mrec = ctx->base_mrec; in ntfs_external_attr_find()
1105 ctx->attr = ctx->base_attr; in ntfs_external_attr_find()
1116 ntfs_attr_reinit_search_ctx(ctx); in ntfs_external_attr_find()
1118 ctx); in ntfs_external_attr_find()
1135 ctx->mrec = ctx->base_mrec; in ntfs_external_attr_find()
1136 ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + in ntfs_external_attr_find()
1137 le16_to_cpu(ctx->mrec->attrs_offset)); in ntfs_external_attr_find()
1138 ctx->is_first = true; in ntfs_external_attr_find()
1139 ctx->ntfs_ino = base_ni; in ntfs_external_attr_find()
1140 ctx->base_ntfs_ino = NULL; in ntfs_external_attr_find()
1141 ctx->base_mrec = NULL; in ntfs_external_attr_find()
1142 ctx->base_attr = NULL; in ntfs_external_attr_find()
1152 ctx); in ntfs_external_attr_find()
1200 ntfs_attr_search_ctx *ctx) in ntfs_attr_lookup() argument
1205 BUG_ON(IS_ERR(ctx->mrec)); in ntfs_attr_lookup()
1206 if (ctx->base_ntfs_ino) in ntfs_attr_lookup()
1207 base_ni = ctx->base_ntfs_ino; in ntfs_attr_lookup()
1209 base_ni = ctx->ntfs_ino; in ntfs_attr_lookup()
1214 ctx); in ntfs_attr_lookup()
1216 val, val_len, ctx); in ntfs_attr_lookup()
1227 static inline void ntfs_attr_init_search_ctx(ntfs_attr_search_ctx *ctx, in ntfs_attr_init_search_ctx() argument
1230 *ctx = (ntfs_attr_search_ctx) { in ntfs_attr_init_search_ctx()
1250 void ntfs_attr_reinit_search_ctx(ntfs_attr_search_ctx *ctx) in ntfs_attr_reinit_search_ctx() argument
1252 if (likely(!ctx->base_ntfs_ino)) { in ntfs_attr_reinit_search_ctx()
1254 ctx->is_first = true; in ntfs_attr_reinit_search_ctx()
1256 ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + in ntfs_attr_reinit_search_ctx()
1257 le16_to_cpu(ctx->mrec->attrs_offset)); in ntfs_attr_reinit_search_ctx()
1262 ctx->al_entry = NULL; in ntfs_attr_reinit_search_ctx()
1265 if (ctx->ntfs_ino != ctx->base_ntfs_ino) in ntfs_attr_reinit_search_ctx()
1266 unmap_extent_mft_record(ctx->ntfs_ino); in ntfs_attr_reinit_search_ctx()
1267 ntfs_attr_init_search_ctx(ctx, ctx->base_ntfs_ino, ctx->base_mrec); in ntfs_attr_reinit_search_ctx()
1281 ntfs_attr_search_ctx *ctx; in ntfs_attr_get_search_ctx() local
1283 ctx = kmem_cache_alloc(ntfs_attr_ctx_cache, GFP_NOFS); in ntfs_attr_get_search_ctx()
1284 if (ctx) in ntfs_attr_get_search_ctx()
1285 ntfs_attr_init_search_ctx(ctx, ni, mrec); in ntfs_attr_get_search_ctx()
1286 return ctx; in ntfs_attr_get_search_ctx()
1296 void ntfs_attr_put_search_ctx(ntfs_attr_search_ctx *ctx) in ntfs_attr_put_search_ctx() argument
1298 if (ctx->base_ntfs_ino && ctx->ntfs_ino != ctx->base_ntfs_ino) in ntfs_attr_put_search_ctx()
1299 unmap_extent_mft_record(ctx->ntfs_ino); in ntfs_attr_put_search_ctx()
1300 kmem_cache_free(ntfs_attr_ctx_cache, ctx); in ntfs_attr_put_search_ctx()
1553 ntfs_attr_search_ctx *ctx; in ntfs_attr_make_non_resident() local
1626 ctx = NULL; in ntfs_attr_make_non_resident()
1629 ctx = ntfs_attr_get_search_ctx(base_ni, m); in ntfs_attr_make_non_resident()
1630 if (unlikely(!ctx)) { in ntfs_attr_make_non_resident()
1635 CASE_SENSITIVE, 0, NULL, 0, ctx); in ntfs_attr_make_non_resident()
1641 m = ctx->mrec; in ntfs_attr_make_non_resident()
1642 a = ctx->attr; in ntfs_attr_make_non_resident()
1753 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1754 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1755 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_make_non_resident()
1827 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1828 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1830 if (ctx) in ntfs_attr_make_non_resident()
1831 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_make_non_resident()
1924 ntfs_attr_search_ctx *ctx; in ntfs_attr_extend_allocation() local
2006 ctx = NULL; in ntfs_attr_extend_allocation()
2009 ctx = ntfs_attr_get_search_ctx(base_ni, m); in ntfs_attr_extend_allocation()
2010 if (unlikely(!ctx)) { in ntfs_attr_extend_allocation()
2041 CASE_SENSITIVE, vcn, NULL, 0, ctx); in ntfs_attr_extend_allocation()
2047 m = ctx->mrec; in ntfs_attr_extend_allocation()
2048 a = ctx->attr; in ntfs_attr_extend_allocation()
2084 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()
2337 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2338 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2339 ntfs_attr_reinit_search_ctx(ctx); in ntfs_attr_extend_allocation()
2341 CASE_SENSITIVE, 0, NULL, 0, ctx); in ntfs_attr_extend_allocation()
2345 a = ctx->attr; in ntfs_attr_extend_allocation()
2376 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2377 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2379 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()
2394 ntfs_attr_reinit_search_ctx(ctx); in ntfs_attr_extend_allocation()
2397 ctx)) { in ntfs_attr_extend_allocation()
2415 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()
2425 ctx->attr->data.non_resident.highest_vcn = cpu_to_sle64( in ntfs_attr_extend_allocation()
2429 if (ntfs_cluster_free(ni, ll, -1, ctx) < 0) { in ntfs_attr_extend_allocation()
2435 m = ctx->mrec; in ntfs_attr_extend_allocation()
2436 a = ctx->attr; in ntfs_attr_extend_allocation()
2468 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2469 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2473 if (ctx) in ntfs_attr_extend_allocation()
2474 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()