Lines Matching refs:mi
34 static __le16 mi_new_attt_id(struct ntfs_inode *ni, 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(ni, 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()
198 struct ATTRIB *mi_enum_attr(struct ntfs_inode *ni, struct mft_inode *mi, in mi_enum_attr() argument
201 const struct MFT_REC *rec = mi->mrec; in mi_enum_attr()
325 t32 = mi->sbi->cluster_mask; in mi_enum_attr()
345 if (alloc_size > mi->sbi->volume.size) in mi_enum_attr()
359 struct ATTRIB *mi_find_attr(struct ntfs_inode *ni, struct mft_inode *mi, in mi_find_attr() argument
367 attr = mi_enum_attr(ni, mi, attr); in mi_find_attr()
390 int mi_write(struct mft_inode *mi, int wait) in mi_write() argument
396 if (!mi->dirty) in mi_write()
399 sbi = mi->sbi; in mi_write()
400 rec = mi->mrec; in mi_write()
402 err = ntfs_write_bh(sbi, &rec->rhdr, &mi->nb, wait); in mi_write()
406 if (mi->rno < sbi->mft.recs_mirr) in mi_write()
409 mi->dirty = false; in mi_write()
414 int mi_format_new(struct mft_inode *mi, struct ntfs_sb_info *sbi, CLST rno, in mi_format_new() argument
422 err = mi_init(mi, sbi, rno); in mi_format_new()
426 rec = mi->mrec; in mi_format_new()
434 } else if (mi_read(mi, is_mft)) { in mi_format_new()
450 mi->dirty = true; in mi_format_new()
452 if (!mi->nb.nbufs) { in mi_format_new()
462 &mi->nb); in mi_format_new()
475 struct ATTRIB *mi_insert_attr(struct ntfs_inode *ni, struct mft_inode *mi, in mi_insert_attr() argument
482 struct MFT_REC *rec = mi->mrec; in mi_insert_attr()
483 struct ntfs_sb_info *sbi = mi->sbi; in mi_insert_attr()
496 while ((attr = mi_enum_attr(ni, mi, attr))) { in mi_insert_attr()
516 id = mi_new_attt_id(ni, mi); in mi_insert_attr()
530 mi->dirty = true; in mi_insert_attr()
540 bool mi_remove_attr(struct ntfs_inode *ni, struct mft_inode *mi, in mi_remove_attr() argument
543 struct MFT_REC *rec = mi->mrec; in mi_remove_attr()
552 u16 links = le16_to_cpu(ni->mi.mrec->hard_links); in mi_remove_attr()
556 ni->mi.mrec->hard_links = cpu_to_le16(links - 1); in mi_remove_attr()
557 ni->mi.dirty = true; in mi_remove_attr()
564 mi->dirty = true; in mi_remove_attr()
570 bool mi_resize_attr(struct mft_inode *mi, struct ATTRIB *attr, int bytes) in mi_resize_attr() argument
572 struct MFT_REC *rec = mi->mrec; in mi_resize_attr()
614 mi->dirty = true; in mi_resize_attr()
623 int mi_pack_runs(struct mft_inode *mi, struct ATTRIB *attr, in mi_pack_runs() argument
627 struct ntfs_sb_info *sbi = mi->sbi; in mi_pack_runs()
630 struct MFT_REC *rec = mi->mrec; in mi_pack_runs()
659 mi->dirty = true; in mi_pack_runs()