Lines Matching refs:ctx

84 int ntfs_map_runlist_nolock(ntfs_inode *ni, VCN vcn, ntfs_attr_search_ctx *ctx)  in ntfs_map_runlist_nolock()  argument
103 if (!ctx) { in ntfs_map_runlist_nolock()
108 ctx = ntfs_attr_get_search_ctx(base_ni, m); in ntfs_map_runlist_nolock()
109 if (unlikely(!ctx)) { in ntfs_map_runlist_nolock()
116 BUG_ON(IS_ERR(ctx->mrec)); in ntfs_map_runlist_nolock()
117 a = ctx->attr; in ntfs_map_runlist_nolock()
143 old_ctx = *ctx; in ntfs_map_runlist_nolock()
161 ntfs_attr_reinit_search_ctx(ctx); in ntfs_map_runlist_nolock()
167 CASE_SENSITIVE, vcn, NULL, 0, ctx); in ntfs_map_runlist_nolock()
173 BUG_ON(!ctx->attr->non_resident); in ntfs_map_runlist_nolock()
175 a = ctx->attr; in ntfs_map_runlist_nolock()
194 if (likely(ctx)) in ntfs_map_runlist_nolock()
195 ntfs_attr_put_search_ctx(ctx); in ntfs_map_runlist_nolock()
211 if (ctx->ntfs_ino != old_ctx.ntfs_ino) { in ntfs_map_runlist_nolock()
216 if (ctx->base_ntfs_ino && ctx->ntfs_ino != in ntfs_map_runlist_nolock()
217 ctx->base_ntfs_ino) { in ntfs_map_runlist_nolock()
218 unmap_extent_mft_record(ctx->ntfs_ino); in ntfs_map_runlist_nolock()
219 ctx->mrec = ctx->base_mrec; in ntfs_map_runlist_nolock()
220 BUG_ON(!ctx->mrec); in ntfs_map_runlist_nolock()
230 ctx->mrec = map_mft_record( in ntfs_map_runlist_nolock()
242 if (IS_ERR(ctx->mrec)) { in ntfs_map_runlist_nolock()
243 if (PTR_ERR(ctx->mrec) == in ntfs_map_runlist_nolock()
255 if (ctx->mrec != old_ctx.mrec) { in ntfs_map_runlist_nolock()
256 if (!IS_ERR(ctx->mrec)) in ntfs_map_runlist_nolock()
258 (u8*)ctx->mrec + in ntfs_map_runlist_nolock()
261 old_ctx.mrec = ctx->mrec; in ntfs_map_runlist_nolock()
265 *ctx = old_ctx; in ntfs_map_runlist_nolock()
465 ntfs_attr_search_ctx *ctx) in ntfs_attr_find_vcn_nolock() argument
474 ni->mft_no, (unsigned long long)vcn, ctx ? "" : "out"); in ntfs_attr_find_vcn_nolock()
510 if (IS_ERR(ctx->mrec)) in ntfs_attr_find_vcn_nolock()
511 err = PTR_ERR(ctx->mrec); in ntfs_attr_find_vcn_nolock()
517 err = ntfs_map_runlist_nolock(ni, vcn, ctx); in ntfs_attr_find_vcn_nolock()
591 const u8 *val, const u32 val_len, ntfs_attr_search_ctx *ctx) in ntfs_attr_find() argument
594 ntfs_volume *vol = ctx->ntfs_ino->vol; in ntfs_attr_find()
602 if (ctx->is_first) { in ntfs_attr_find()
603 a = ctx->attr; in ntfs_attr_find()
604 ctx->is_first = false; in ntfs_attr_find()
606 a = (ATTR_RECORD*)((u8*)ctx->attr + in ntfs_attr_find()
607 le32_to_cpu(ctx->attr->length)); in ntfs_attr_find()
609 if ((u8*)a < (u8*)ctx->mrec || (u8*)a > (u8*)ctx->mrec + in ntfs_attr_find()
610 le32_to_cpu(ctx->mrec->bytes_allocated)) in ntfs_attr_find()
612 ctx->attr = a; in ntfs_attr_find()
860 const u8 *val, const u32 val_len, ntfs_attr_search_ctx *ctx) in ntfs_external_attr_find() argument
872 ni = ctx->ntfs_ino; in ntfs_external_attr_find()
873 base_ni = ctx->base_ntfs_ino; in ntfs_external_attr_find()
877 base_ni = ctx->base_ntfs_ino = ctx->ntfs_ino; in ntfs_external_attr_find()
878 ctx->base_mrec = ctx->mrec; in ntfs_external_attr_find()
881 ctx->base_attr = ctx->attr; in ntfs_external_attr_find()
887 if (!ctx->al_entry) in ntfs_external_attr_find()
888 ctx->al_entry = (ATTR_LIST_ENTRY*)al_start; in ntfs_external_attr_find()
893 if (ctx->is_first) { in ntfs_external_attr_find()
894 al_entry = ctx->al_entry; in ntfs_external_attr_find()
895 ctx->is_first = false; in ntfs_external_attr_find()
897 al_entry = (ATTR_LIST_ENTRY*)((u8*)ctx->al_entry + in ntfs_external_attr_find()
898 le16_to_cpu(ctx->al_entry->length)); in ntfs_external_attr_find()
904 ctx->al_entry = al_entry; in ntfs_external_attr_find()
997 ni = ctx->ntfs_ino = base_ni; in ntfs_external_attr_find()
998 ctx->mrec = ctx->base_mrec; in ntfs_external_attr_find()
1001 ctx->mrec = map_extent_mft_record(base_ni, in ntfs_external_attr_find()
1004 if (IS_ERR(ctx->mrec)) { in ntfs_external_attr_find()
1012 err = PTR_ERR(ctx->mrec); in ntfs_external_attr_find()
1019 ctx->ntfs_ino = ni; in ntfs_external_attr_find()
1021 ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + in ntfs_external_attr_find()
1022 le16_to_cpu(ctx->mrec->attrs_offset)); in ntfs_external_attr_find()
1039 a = ctx->attr; in ntfs_external_attr_find()
1045 if ((u8*)a < (u8*)ctx->mrec || (u8*)a > (u8*)ctx->mrec + in ntfs_external_attr_find()
1046 le32_to_cpu(ctx->mrec->bytes_allocated)) in ntfs_external_attr_find()
1066 ctx->attr = a; in ntfs_external_attr_find()
1093 ctx->ntfs_ino = base_ni; in ntfs_external_attr_find()
1094 ctx->mrec = ctx->base_mrec; in ntfs_external_attr_find()
1095 ctx->attr = ctx->base_attr; in ntfs_external_attr_find()
1106 ntfs_attr_reinit_search_ctx(ctx); in ntfs_external_attr_find()
1108 ctx); in ntfs_external_attr_find()
1125 ctx->mrec = ctx->base_mrec; in ntfs_external_attr_find()
1126 ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + in ntfs_external_attr_find()
1127 le16_to_cpu(ctx->mrec->attrs_offset)); in ntfs_external_attr_find()
1128 ctx->is_first = true; in ntfs_external_attr_find()
1129 ctx->ntfs_ino = base_ni; in ntfs_external_attr_find()
1130 ctx->base_ntfs_ino = NULL; in ntfs_external_attr_find()
1131 ctx->base_mrec = NULL; in ntfs_external_attr_find()
1132 ctx->base_attr = NULL; in ntfs_external_attr_find()
1142 ctx); in ntfs_external_attr_find()
1190 ntfs_attr_search_ctx *ctx) in ntfs_attr_lookup() argument
1195 BUG_ON(IS_ERR(ctx->mrec)); in ntfs_attr_lookup()
1196 if (ctx->base_ntfs_ino) in ntfs_attr_lookup()
1197 base_ni = ctx->base_ntfs_ino; in ntfs_attr_lookup()
1199 base_ni = ctx->ntfs_ino; in ntfs_attr_lookup()
1204 ctx); in ntfs_attr_lookup()
1206 val, val_len, ctx); in ntfs_attr_lookup()
1217 static inline void ntfs_attr_init_search_ctx(ntfs_attr_search_ctx *ctx, in ntfs_attr_init_search_ctx() argument
1220 *ctx = (ntfs_attr_search_ctx) { in ntfs_attr_init_search_ctx()
1240 void ntfs_attr_reinit_search_ctx(ntfs_attr_search_ctx *ctx) in ntfs_attr_reinit_search_ctx() argument
1242 if (likely(!ctx->base_ntfs_ino)) { in ntfs_attr_reinit_search_ctx()
1244 ctx->is_first = true; in ntfs_attr_reinit_search_ctx()
1246 ctx->attr = (ATTR_RECORD*)((u8*)ctx->mrec + in ntfs_attr_reinit_search_ctx()
1247 le16_to_cpu(ctx->mrec->attrs_offset)); in ntfs_attr_reinit_search_ctx()
1252 ctx->al_entry = NULL; in ntfs_attr_reinit_search_ctx()
1255 if (ctx->ntfs_ino != ctx->base_ntfs_ino) in ntfs_attr_reinit_search_ctx()
1256 unmap_extent_mft_record(ctx->ntfs_ino); in ntfs_attr_reinit_search_ctx()
1257 ntfs_attr_init_search_ctx(ctx, ctx->base_ntfs_ino, ctx->base_mrec); in ntfs_attr_reinit_search_ctx()
1271 ntfs_attr_search_ctx *ctx; in ntfs_attr_get_search_ctx() local
1273 ctx = kmem_cache_alloc(ntfs_attr_ctx_cache, GFP_NOFS); in ntfs_attr_get_search_ctx()
1274 if (ctx) in ntfs_attr_get_search_ctx()
1275 ntfs_attr_init_search_ctx(ctx, ni, mrec); in ntfs_attr_get_search_ctx()
1276 return ctx; in ntfs_attr_get_search_ctx()
1286 void ntfs_attr_put_search_ctx(ntfs_attr_search_ctx *ctx) in ntfs_attr_put_search_ctx() argument
1288 if (ctx->base_ntfs_ino && ctx->ntfs_ino != ctx->base_ntfs_ino) in ntfs_attr_put_search_ctx()
1289 unmap_extent_mft_record(ctx->ntfs_ino); in ntfs_attr_put_search_ctx()
1290 kmem_cache_free(ntfs_attr_ctx_cache, ctx); in ntfs_attr_put_search_ctx()
1543 ntfs_attr_search_ctx *ctx; in ntfs_attr_make_non_resident() local
1616 ctx = NULL; in ntfs_attr_make_non_resident()
1619 ctx = ntfs_attr_get_search_ctx(base_ni, m); in ntfs_attr_make_non_resident()
1620 if (unlikely(!ctx)) { in ntfs_attr_make_non_resident()
1625 CASE_SENSITIVE, 0, NULL, 0, ctx); in ntfs_attr_make_non_resident()
1631 m = ctx->mrec; in ntfs_attr_make_non_resident()
1632 a = ctx->attr; in ntfs_attr_make_non_resident()
1743 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1744 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1745 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_make_non_resident()
1817 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1818 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_make_non_resident()
1820 if (ctx) in ntfs_attr_make_non_resident()
1821 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_make_non_resident()
1914 ntfs_attr_search_ctx *ctx; in ntfs_attr_extend_allocation() local
1996 ctx = NULL; in ntfs_attr_extend_allocation()
1999 ctx = ntfs_attr_get_search_ctx(base_ni, m); in ntfs_attr_extend_allocation()
2000 if (unlikely(!ctx)) { in ntfs_attr_extend_allocation()
2031 CASE_SENSITIVE, vcn, NULL, 0, ctx); in ntfs_attr_extend_allocation()
2037 m = ctx->mrec; in ntfs_attr_extend_allocation()
2038 a = ctx->attr; in ntfs_attr_extend_allocation()
2074 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()
2327 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2328 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2329 ntfs_attr_reinit_search_ctx(ctx); in ntfs_attr_extend_allocation()
2331 CASE_SENSITIVE, 0, NULL, 0, ctx); in ntfs_attr_extend_allocation()
2335 a = ctx->attr; in ntfs_attr_extend_allocation()
2366 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2367 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2369 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()
2384 ntfs_attr_reinit_search_ctx(ctx); in ntfs_attr_extend_allocation()
2387 ctx)) { in ntfs_attr_extend_allocation()
2405 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()
2415 ctx->attr->data.non_resident.highest_vcn = cpu_to_sle64( in ntfs_attr_extend_allocation()
2419 if (ntfs_cluster_free(ni, ll, -1, ctx) < 0) { in ntfs_attr_extend_allocation()
2425 m = ctx->mrec; in ntfs_attr_extend_allocation()
2426 a = ctx->attr; in ntfs_attr_extend_allocation()
2458 flush_dcache_mft_record_page(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2459 mark_mft_record_dirty(ctx->ntfs_ino); in ntfs_attr_extend_allocation()
2463 if (ctx) in ntfs_attr_extend_allocation()
2464 ntfs_attr_put_search_ctx(ctx); in ntfs_attr_extend_allocation()