123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- typedef struct {
- ntfs_inode *idx_ni;
- INDEX_ENTRY *entry;
- void *data;
- u16 data_len;
- bool is_in_root;
- INDEX_ROOT *ir;
- ntfs_attr_search_ctx *actx;
- ntfs_inode *base_ni;
- INDEX_ALLOCATION *ia;
- struct page *page;
- } ntfs_index_context;
- extern ntfs_index_context *ntfs_index_ctx_get(ntfs_inode *idx_ni);
- extern void ntfs_index_ctx_put(ntfs_index_context *ictx);
- extern int ntfs_index_lookup(const void *key, const int key_len,
- ntfs_index_context *ictx);
- static inline void ntfs_index_entry_flush_dcache_page(ntfs_index_context *ictx)
- {
- if (ictx->is_in_root)
- flush_dcache_mft_record_page(ictx->actx->ntfs_ino);
- else
- flush_dcache_page(ictx->page);
- }
- static inline void ntfs_index_entry_mark_dirty(ntfs_index_context *ictx)
- {
- if (ictx->is_in_root)
- mark_mft_record_dirty(ictx->actx->ntfs_ino);
- else
- mark_ntfs_record_dirty(ictx->page,
- (u8*)ictx->ia - (u8*)page_address(ictx->page));
- }
|