Lines Matching defs:sbi

82 	struct ntfs_sb_info *sbi = sb->s_fs_info;
85 if (!___ratelimit(&sbi->msg_ratelimit, "ntfs3"))
109 struct ntfs_sb_info *sbi = sb->s_fs_info;
115 if (!___ratelimit(&sbi->msg_ratelimit, "ntfs3"))
407 struct ntfs_sb_info *sbi = sb->s_fs_info;
418 if (ro_rw && (sbi->flags & NTFS_FLAGS_NEED_REPLAY)) {
431 if (new_opts->nls != sbi->options->nls)
436 if (ro_rw && (sbi->volume.flags & VOLUME_FLAG_DIRTY) &&
445 swap(sbi->options, fc->fs_private);
469 struct ntfs_sb_info *sbi = sb->s_fs_info;
472 sbi->volume.major_ver, sbi->volume.minor_ver,
473 sbi->cluster_size, sbi->used.bitmap.nbits,
474 sbi->mft.bitmap.nbits,
475 sbi->mft.bitmap.nbits - wnd_zeroes(&sbi->mft.bitmap),
476 sbi->volume.real_dirty ? "dirty" : "clean",
477 (sbi->volume.flags & VOLUME_FLAG_DIRTY) ? "dirty" : "clean");
491 struct ntfs_sb_info *sbi = sb->s_fs_info;
493 seq_printf(m, "%s\n", sbi->volume.label);
591 static noinline void ntfs3_put_sbi(struct ntfs_sb_info *sbi)
593 wnd_close(&sbi->mft.bitmap);
594 wnd_close(&sbi->used.bitmap);
596 if (sbi->mft.ni) {
597 iput(&sbi->mft.ni->vfs_inode);
598 sbi->mft.ni = NULL;
601 if (sbi->security.ni) {
602 iput(&sbi->security.ni->vfs_inode);
603 sbi->security.ni = NULL;
606 if (sbi->reparse.ni) {
607 iput(&sbi->reparse.ni->vfs_inode);
608 sbi->reparse.ni = NULL;
611 if (sbi->objid.ni) {
612 iput(&sbi->objid.ni->vfs_inode);
613 sbi->objid.ni = NULL;
616 if (sbi->volume.ni) {
617 iput(&sbi->volume.ni->vfs_inode);
618 sbi->volume.ni = NULL;
621 ntfs_update_mftmirr(sbi, 0);
623 indx_clear(&sbi->security.index_sii);
624 indx_clear(&sbi->security.index_sdh);
625 indx_clear(&sbi->reparse.index_r);
626 indx_clear(&sbi->objid.index_o);
629 static void ntfs3_free_sbi(struct ntfs_sb_info *sbi)
631 kfree(sbi->new_rec);
632 kvfree(ntfs_put_shared(sbi->upcase));
633 kvfree(sbi->def_table);
634 kfree(sbi->compress.lznt);
636 xpress_free_decompressor(sbi->compress.xpress);
637 lzx_free_decompressor(sbi->compress.lzx);
639 kfree(sbi);
644 struct ntfs_sb_info *sbi = sb->s_fs_info;
648 if (sbi->procdir) {
649 remove_proc_entry("label", sbi->procdir);
650 remove_proc_entry("volinfo", sbi->procdir);
652 sbi->procdir = NULL;
657 ntfs_set_state(sbi, NTFS_DIRTY_CLEAR);
658 ntfs3_put_sbi(sbi);
664 struct ntfs_sb_info *sbi = sb->s_fs_info;
665 struct wnd_bitmap *wnd = &sbi->used.bitmap;
668 buf->f_bsize = sbi->cluster_size;
672 buf->f_fsid.val[0] = sbi->volume.ser_num;
673 buf->f_fsid.val[1] = (sbi->volume.ser_num >> 32);
682 struct ntfs_sb_info *sbi = sb->s_fs_info;
683 struct ntfs_mount_options *opts = sbi->options;
736 struct ntfs_sb_info *sbi = sb->s_fs_info;
743 ni = sbi->security.ni;
751 ni = sbi->objid.ni;
759 ni = sbi->reparse.ni;
768 ntfs_set_state(sbi, NTFS_DIRTY_CLEAR);
770 ntfs_update_mftmirr(sbi, wait);
876 struct ntfs_sb_info *sbi = sb->s_fs_info;
892 sbi->volume.blocks = dev_size >> PAGE_SHIFT;
934 sbi->cluster_size = boot_sector_size * sct_per_clst;
935 sbi->cluster_bits = cluster_bits = blksize_bits(sbi->cluster_size);
936 sbi->cluster_mask = sbi->cluster_size - 1;
937 sbi->cluster_mask_inv = ~(u64)sbi->cluster_mask;
961 sbi->record_size = record_size;
962 sbi->record_bits = blksize_bits(record_size);
963 sbi->attr_size_tr = (5 * record_size >> 4); // ~320 bytes
979 sbi->index_size = (u32)boot->index_size << cluster_bits;
981 sbi->index_size = 1u << (-boot->index_size);
989 if (sbi->index_size < SECTOR_SIZE || !is_power_of_2(sbi->index_size)) {
991 sbi->index_size, boot->index_size);
995 if (sbi->index_size > MAXIMUM_BYTES_PER_INDEX) {
997 sbi->index_size);
1001 sbi->volume.size = sectors * boot_sector_size;
1003 gb = format_size_gb(sbi->volume.size + boot_sector_size, &mb);
1018 sbi->mft.lbo = mlcn << cluster_bits;
1019 sbi->mft.lbo2 = mlcn2 << cluster_bits;
1022 if (sbi->cluster_size < boot_sector_size) {
1024 sbi->cluster_size);
1029 if (sbi->cluster_size < sector_size) {
1034 sbi->cluster_size, sector_size);
1038 sbi->max_bytes_per_attr =
1043 sbi->volume.ser_num = le64_to_cpu(boot->serial_num);
1046 if (dev_size < sbi->volume.size + boot_sector_size) {
1057 clusters = sbi->volume.size >> cluster_bits;
1071 sbi->used.bitmap.nbits = clusters;
1079 sbi->new_rec = rec;
1082 fn = (sbi->record_size >> SECTOR_SHIFT) + 1;
1087 rec->total = cpu_to_le32(sbi->record_size);
1090 sb_set_blocksize(sb, min_t(u32, sbi->cluster_size, PAGE_SIZE));
1092 sbi->block_mask = sb->s_blocksize - 1;
1093 sbi->blocks_per_cluster = sbi->cluster_size >> sb->s_blocksize_bits;
1094 sbi->volume.blocks = sbi->volume.size >> sb->s_blocksize_bits;
1097 sbi->maxbytes = (clusters << cluster_bits) - 1;
1101 sbi->maxbytes = -1;
1102 sbi->maxbytes_sparse = -1;
1106 sbi->maxbytes_sparse = (1ull << (cluster_bits + 32)) - 1;
1115 sbi->zone_max = min_t(CLST, 0x20000000 >> cluster_bits, clusters >> 3);
1157 struct ntfs_sb_info *sbi = sb->s_fs_info;
1175 sbi->sb = sb;
1176 sbi->options = options = fc->fs_private;
1195 sbi->discard_granularity = bdev_discard_granularity(bdev);
1196 sbi->discard_granularity_mask_inv =
1197 ~(u64)(sbi->discard_granularity - 1);
1208 * 'cause 'sbi->volume.ni' is used 'ntfs_set_state'.
1230 UTF16_LITTLE_ENDIAN, sbi->volume.label,
1231 sizeof(sbi->volume.label));
1233 sbi->volume.label[0] = 0;
1248 sbi->volume.major_ver = info->major_ver;
1249 sbi->volume.minor_ver = info->minor_ver;
1250 sbi->volume.flags = info->flags;
1251 sbi->volume.ni = ni;
1253 sbi->volume.real_dirty = true;
1267 sbi->mft.recs_mirr = ntfs_up_cluster(sbi, inode->i_size) >>
1268 sbi->record_bits;
1284 err = ntfs_loadlog_and_replay(ni, sbi);
1290 if ((sbi->flags & NTFS_FLAGS_NEED_REPLAY) && !ro) {
1296 if ((sbi->volume.flags & VOLUME_FLAG_DIRTY) && !ro && !options->force) {
1315 sbi->mft.used = ni->i_valid >> sbi->record_bits;
1316 tt = inode->i_size >> sbi->record_bits;
1317 sbi->mft.next_free = MFT_REC_USER;
1319 err = wnd_init(&sbi->mft.bitmap, sb, tt);
1329 sbi->mft.ni = ni;
1349 tt = sbi->used.bitmap.nbits;
1356 err = wnd_init(&sbi->used.bitmap, sb, tt);
1365 err = ntfs_refresh_zone(sbi);
1392 if (wnd_set_used_safe(&sbi->used.bitmap, lcn, len, &tt) || tt) {
1394 ntfs_set_state(sbi, NTFS_DIRTY_ERROR);
1432 sbi->def_table = t = kvmalloc(bytes, GFP_KERNEL);
1459 sbi->def_entries = 1;
1461 sbi->reparse.max_size = MAXIMUM_REPARSE_DATA_BUFFER_SIZE;
1462 sbi->ea_max_size = 0x10000; /* default formatter value */
1472 sbi->reparse.max_size = sz;
1474 sbi->ea_max_size = sz;
1478 sbi->def_entries += 1;
1500 u16 *dst = Add2Ptr(sbi->upcase, idx << PAGE_SHIFT);
1520 shared = ntfs_set_shared(sbi->upcase, 0x10000 * sizeof(short));
1521 if (shared && sbi->upcase != shared) {
1522 kvfree(sbi->upcase);
1523 sbi->upcase = shared;
1528 if (is_ntfs3(sbi)) {
1530 err = ntfs_security_init(sbi);
1537 err = ntfs_extend_init(sbi);
1544 err = ntfs_reparse_init(sbi);
1551 err = ntfs_objid_init(sbi);
1617 sbi->procdir = e;
1629 ntfs3_put_sbi(sbi);
1631 ntfs3_put_sbi(sbi);
1637 struct ntfs_sb_info *sbi = sb->s_fs_info;
1639 sector_t devblock = (u64)lcn * sbi->blocks_per_cluster;
1640 unsigned long blocks = (u64)len * sbi->blocks_per_cluster;
1664 int ntfs_discard(struct ntfs_sb_info *sbi, CLST lcn, CLST len)
1670 if (sbi->used.next_free_lcn == lcn + len)
1671 sbi->used.next_free_lcn = lcn;
1673 if (sbi->flags & NTFS_FLAGS_NODISCARD)
1676 if (!sbi->options->discard)
1679 lbo = (u64)lcn << sbi->cluster_bits;
1680 bytes = (u64)len << sbi->cluster_bits;
1683 start = (lbo + sbi->discard_granularity - 1) &
1684 sbi->discard_granularity_mask_inv;
1686 end = (lbo + bytes) & sbi->discard_granularity_mask_inv;
1688 sb = sbi->sb;
1696 sbi->flags |= NTFS_FLAGS_NODISCARD;
1715 struct ntfs_sb_info *sbi = fc->s_fs_info;
1717 if (sbi) {
1718 ntfs3_put_sbi(sbi);
1719 ntfs3_free_sbi(sbi);
1736 * ntfs_init_fs_context - Initialize sbi and opts
1744 struct ntfs_sb_info *sbi;
1759 sbi = kzalloc(sizeof(struct ntfs_sb_info), GFP_NOFS);
1760 if (!sbi)
1763 sbi->upcase = kvmalloc(0x10000 * sizeof(short), GFP_KERNEL);
1764 if (!sbi->upcase)
1767 ratelimit_state_init(&sbi->msg_ratelimit, DEFAULT_RATELIMIT_INTERVAL,
1770 mutex_init(&sbi->compress.mtx_lznt);
1772 mutex_init(&sbi->compress.mtx_xpress);
1773 mutex_init(&sbi->compress.mtx_lzx);
1776 fc->s_fs_info = sbi;
1783 kfree(sbi);
1796 struct ntfs_sb_info *sbi = sb->s_fs_info;
1800 if (sbi->options)
1801 put_mount_options(sbi->options);
1802 ntfs3_free_sbi(sbi);