Lines Matching full:mi

34 static __le16 mi_new_attt_id(struct mft_inode *mi)  in mi_new_attt_id()  argument
37 struct MFT_REC *rec = mi->mrec; in mi_new_attt_id()
55 attr = mi_enum_attr(mi, attr); in mi_new_attt_id()
58 mi->dirty = true; in mi_new_attt_id()
71 int mi_get(struct ntfs_sb_info *sbi, CLST rno, struct mft_inode **mi) in mi_get() argument
91 *mi = m; in mi_get()
95 void mi_put(struct mft_inode *mi) in mi_put() argument
97 mi_clear(mi); in mi_put()
98 kfree(mi); in mi_put()
101 int mi_init(struct mft_inode *mi, struct ntfs_sb_info *sbi, CLST rno) in mi_init() argument
103 mi->sbi = sbi; in mi_init()
104 mi->rno = rno; in mi_init()
105 mi->mrec = kmalloc(sbi->record_size, GFP_NOFS); in mi_init()
106 if (!mi->mrec) in mi_init()
115 int mi_read(struct mft_inode *mi, bool is_mft) in mi_read() argument
118 struct MFT_REC *rec = mi->mrec; in mi_read()
119 struct ntfs_sb_info *sbi = mi->sbi; in mi_read()
121 u64 vbo = (u64)mi->rno << sbi->record_bits; in mi_read()
133 err = ntfs_read_bh(sbi, run, vbo, &rec->rhdr, bpr, &mi->nb); in mi_read()
140 mi->dirty = true; in mi_read()
162 err = ntfs_read_bh(sbi, run, vbo, &rec->rhdr, bpr, &mi->nb); in mi_read()
167 mi->dirty = true; in mi_read()
195 * NOTE: mi->mrec - memory of size sbi->record_size
196 * here we sure that mi->mrec->total == sbi->record_size (see mi_read)
198 struct ATTRIB *mi_enum_attr(struct mft_inode *mi, struct ATTRIB *attr) in mi_enum_attr() argument
200 const struct MFT_REC *rec = mi->mrec; in mi_enum_attr()
316 t32 = mi->sbi->cluster_mask; in mi_enum_attr()
345 struct ATTRIB *mi_find_attr(struct mft_inode *mi, struct ATTRIB *attr, in mi_find_attr() argument
353 attr = mi_enum_attr(mi, attr); in mi_find_attr()
376 int mi_write(struct mft_inode *mi, int wait) in mi_write() argument
382 if (!mi->dirty) in mi_write()
385 sbi = mi->sbi; in mi_write()
386 rec = mi->mrec; in mi_write()
388 err = ntfs_write_bh(sbi, &rec->rhdr, &mi->nb, wait); in mi_write()
392 if (mi->rno < sbi->mft.recs_mirr) in mi_write()
395 mi->dirty = false; in mi_write()
400 int mi_format_new(struct mft_inode *mi, struct ntfs_sb_info *sbi, CLST rno, in mi_format_new() argument
408 err = mi_init(mi, sbi, rno); in mi_format_new()
412 rec = mi->mrec; in mi_format_new()
420 } else if (mi_read(mi, is_mft)) { in mi_format_new()
436 mi->dirty = true; in mi_format_new()
438 if (!mi->nb.nbufs) { in mi_format_new()
448 &mi->nb); in mi_format_new()
461 struct ATTRIB *mi_insert_attr(struct mft_inode *mi, enum ATTR_TYPE type, in mi_insert_attr() argument
468 struct MFT_REC *rec = mi->mrec; in mi_insert_attr()
469 struct ntfs_sb_info *sbi = mi->sbi; in mi_insert_attr()
473 /* Can we insert mi attribute? */ in mi_insert_attr()
482 while ((attr = mi_enum_attr(mi, attr))) { in mi_insert_attr()
502 id = mi_new_attt_id(mi); in mi_insert_attr()
516 mi->dirty = true; in mi_insert_attr()
526 bool mi_remove_attr(struct ntfs_inode *ni, struct mft_inode *mi, in mi_remove_attr() argument
529 struct MFT_REC *rec = mi->mrec; in mi_remove_attr()
538 le16_add_cpu(&ni->mi.mrec->hard_links, -1); in mi_remove_attr()
539 ni->mi.dirty = true; in mi_remove_attr()
545 mi->dirty = true; in mi_remove_attr()
551 bool mi_resize_attr(struct mft_inode *mi, struct ATTRIB *attr, int bytes) in mi_resize_attr() argument
553 struct MFT_REC *rec = mi->mrec; in mi_resize_attr()
595 mi->dirty = true; in mi_resize_attr()
604 int mi_pack_runs(struct mft_inode *mi, struct ATTRIB *attr, in mi_pack_runs() argument
608 struct ntfs_sb_info *sbi = mi->sbi; in mi_pack_runs()
611 struct MFT_REC *rec = mi->mrec; in mi_pack_runs()
640 mi->dirty = true; in mi_pack_runs()