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()
186 struct ATTRIB *mi_enum_attr(struct mft_inode *mi, struct ATTRIB *attr) in mi_enum_attr() argument
188 const struct MFT_REC *rec = mi->mrec; in mi_enum_attr()
288 struct ATTRIB *mi_find_attr(struct mft_inode *mi, struct ATTRIB *attr, in mi_find_attr() argument
296 attr = mi_enum_attr(mi, attr); in mi_find_attr()
319 int mi_write(struct mft_inode *mi, int wait) in mi_write() argument
325 if (!mi->dirty) in mi_write()
328 sbi = mi->sbi; in mi_write()
329 rec = mi->mrec; in mi_write()
331 err = ntfs_write_bh(sbi, &rec->rhdr, &mi->nb, wait); in mi_write()
335 if (mi->rno < sbi->mft.recs_mirr) in mi_write()
338 mi->dirty = false; in mi_write()
343 int mi_format_new(struct mft_inode *mi, struct ntfs_sb_info *sbi, CLST rno, in mi_format_new() argument
351 err = mi_init(mi, sbi, rno); in mi_format_new()
355 rec = mi->mrec; in mi_format_new()
363 } else if (mi_read(mi, is_mft)) { in mi_format_new()
377 mi->dirty = true; in mi_format_new()
379 if (!mi->nb.nbufs) { in mi_format_new()
389 &mi->nb); in mi_format_new()
402 struct ATTRIB *mi_insert_attr(struct mft_inode *mi, enum ATTR_TYPE type, in mi_insert_attr() argument
409 struct MFT_REC *rec = mi->mrec; in mi_insert_attr()
410 struct ntfs_sb_info *sbi = mi->sbi; in mi_insert_attr()
415 /* Can we insert mi attribute? */ in mi_insert_attr()
416 if (used + asize > mi->sbi->record_size) in mi_insert_attr()
424 while ((attr = mi_enum_attr(mi, attr))) { in mi_insert_attr()
442 id = mi_new_attt_id(mi); in mi_insert_attr()
456 mi->dirty = true; in mi_insert_attr()
466 bool mi_remove_attr(struct ntfs_inode *ni, struct mft_inode *mi, in mi_remove_attr() argument
469 struct MFT_REC *rec = mi->mrec; in mi_remove_attr()
478 le16_add_cpu(&ni->mi.mrec->hard_links, -1); in mi_remove_attr()
479 ni->mi.dirty = true; in mi_remove_attr()
485 mi->dirty = true; in mi_remove_attr()
491 bool mi_resize_attr(struct mft_inode *mi, struct ATTRIB *attr, int bytes) in mi_resize_attr() argument
493 struct MFT_REC *rec = mi->mrec; in mi_resize_attr()
535 mi->dirty = true; in mi_resize_attr()
540 int mi_pack_runs(struct mft_inode *mi, struct ATTRIB *attr, in mi_pack_runs() argument
544 struct ntfs_sb_info *sbi = mi->sbi; in mi_pack_runs()
547 struct MFT_REC *rec = mi->mrec; in mi_pack_runs()
576 mi->dirty = true; in mi_pack_runs()