Lines Matching defs:sbinfo

219 	struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
224 if (sbinfo->max_blocks) {
225 if (percpu_counter_compare(&sbinfo->used_blocks,
226 sbinfo->max_blocks - pages) > 0)
228 percpu_counter_add(&sbinfo->used_blocks, pages);
241 struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
243 if (sbinfo->max_blocks)
244 percpu_counter_sub(&sbinfo->used_blocks, pages);
277 struct shmem_sb_info *sbinfo = SHMEM_SB(sb);
281 spin_lock(&sbinfo->stat_lock);
282 if (sbinfo->max_inodes) {
283 if (!sbinfo->free_inodes) {
284 spin_unlock(&sbinfo->stat_lock);
287 sbinfo->free_inodes--;
290 ino = sbinfo->next_ino++;
292 ino = sbinfo->next_ino++;
293 if (unlikely(!sbinfo->full_inums &&
302 sbinfo->next_ino = 1;
303 ino = sbinfo->next_ino++;
307 spin_unlock(&sbinfo->stat_lock);
322 next_ino = per_cpu_ptr(sbinfo->ino_batch, get_cpu());
325 spin_lock(&sbinfo->stat_lock);
326 ino = sbinfo->next_ino;
327 sbinfo->next_ino += SHMEM_INO_BATCH;
328 spin_unlock(&sbinfo->stat_lock);
342 struct shmem_sb_info *sbinfo = SHMEM_SB(sb);
343 if (sbinfo->max_inodes) {
344 spin_lock(&sbinfo->stat_lock);
345 sbinfo->free_inodes++;
346 spin_unlock(&sbinfo->stat_lock);
521 static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
532 if (list_empty(&sbinfo->shrinklist))
535 spin_lock(&sbinfo->shrinklist_lock);
536 list_for_each_safe(pos, next, &sbinfo->shrinklist) {
557 sbinfo->shrinklist_len--;
561 spin_unlock(&sbinfo->shrinklist_lock);
621 spin_lock(&sbinfo->shrinklist_lock);
622 list_move(&info->shrinklist, &sbinfo->shrinklist);
623 sbinfo->shrinklist_len++;
624 spin_unlock(&sbinfo->shrinklist_lock);
635 struct shmem_sb_info *sbinfo = SHMEM_SB(sb);
637 if (!READ_ONCE(sbinfo->shrinklist_len))
640 return shmem_unused_huge_shrink(sbinfo, sc, 0);
646 struct shmem_sb_info *sbinfo = SHMEM_SB(sb);
647 return READ_ONCE(sbinfo->shrinklist_len);
653 static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
660 static inline bool is_huge_enabled(struct shmem_sb_info *sbinfo)
663 (shmem_huge == SHMEM_HUGE_FORCE || sbinfo->huge) &&
1092 struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
1134 spin_lock(&sbinfo->shrinklist_lock);
1141 &sbinfo->shrinklist);
1142 sbinfo->shrinklist_len++;
1144 spin_unlock(&sbinfo->shrinklist_lock);
1158 struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
1165 spin_lock(&sbinfo->shrinklist_lock);
1168 sbinfo->shrinklist_len--;
1170 spin_unlock(&sbinfo->shrinklist_lock);
1483 static struct mempolicy *shmem_get_sbmpol(struct shmem_sb_info *sbinfo)
1486 if (sbinfo->mpol) {
1487 spin_lock(&sbinfo->stat_lock); /* prevent replace/use races */
1488 mpol = sbinfo->mpol;
1490 spin_unlock(&sbinfo->stat_lock);
1498 static inline struct mempolicy *shmem_get_sbmpol(struct shmem_sb_info *sbinfo)
1805 struct shmem_sb_info *sbinfo;
1824 sbinfo = SHMEM_SB(inode->i_sb);
1872 switch (sbinfo->huge) {
1915 ret = shmem_unused_huge_shrink(sbinfo, NULL, 1);
1953 spin_lock(&sbinfo->shrinklist_lock);
1960 &sbinfo->shrinklist);
1961 sbinfo->shrinklist_len++;
1963 spin_unlock(&sbinfo->shrinklist_lock);
2288 struct shmem_sb_info *sbinfo = SHMEM_SB(sb);
2322 shmem_get_sbmpol(sbinfo));
2773 struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
2831 if (sbinfo->max_blocks && end - start > sbinfo->max_blocks) {
2903 struct shmem_sb_info *sbinfo = SHMEM_SB(dentry->d_sb);
2908 if (sbinfo->max_blocks) {
2909 buf->f_blocks = sbinfo->max_blocks;
2911 buf->f_bfree = sbinfo->max_blocks -
2912 percpu_counter_sum(&sbinfo->used_blocks);
2914 if (sbinfo->max_inodes) {
2915 buf->f_files = sbinfo->max_inodes;
2916 buf->f_ffree = sbinfo->free_inodes;
3614 struct shmem_sb_info *sbinfo = SHMEM_SB(fc->root->d_sb);
3618 spin_lock(&sbinfo->stat_lock);
3619 inodes = sbinfo->max_inodes - sbinfo->free_inodes;
3621 if (!sbinfo->max_blocks) {
3625 if (percpu_counter_compare(&sbinfo->used_blocks,
3632 if (!sbinfo->max_inodes) {
3643 sbinfo->next_ino > UINT_MAX) {
3649 sbinfo->huge = ctx->huge;
3651 sbinfo->full_inums = ctx->full_inums;
3653 sbinfo->max_blocks = ctx->blocks;
3655 sbinfo->max_inodes = ctx->inodes;
3656 sbinfo->free_inodes = ctx->inodes - inodes;
3663 mpol_put(sbinfo->mpol);
3664 sbinfo->mpol = ctx->mpol; /* transfers initial ref */
3667 spin_unlock(&sbinfo->stat_lock);
3670 spin_unlock(&sbinfo->stat_lock);
3676 struct shmem_sb_info *sbinfo = SHMEM_SB(root->d_sb);
3678 if (sbinfo->max_blocks != shmem_default_max_blocks())
3680 sbinfo->max_blocks << (PAGE_SHIFT - 10));
3681 if (sbinfo->max_inodes != shmem_default_max_inodes())
3682 seq_printf(seq, ",nr_inodes=%lu", sbinfo->max_inodes);
3683 if (sbinfo->mode != (0777 | S_ISVTX))
3684 seq_printf(seq, ",mode=%03ho", sbinfo->mode);
3685 if (!uid_eq(sbinfo->uid, GLOBAL_ROOT_UID))
3687 from_kuid_munged(&init_user_ns, sbinfo->uid));
3688 if (!gid_eq(sbinfo->gid, GLOBAL_ROOT_GID))
3690 from_kgid_munged(&init_user_ns, sbinfo->gid));
3712 if (IS_ENABLED(CONFIG_TMPFS_INODE64) || sbinfo->full_inums)
3713 seq_printf(seq, ",inode%d", (sbinfo->full_inums ? 64 : 32));
3716 if (sbinfo->huge)
3717 seq_printf(seq, ",huge=%s", shmem_format_huge(sbinfo->huge));
3719 shmem_show_mpol(seq, sbinfo->mpol);
3727 struct shmem_sb_info *sbinfo = SHMEM_SB(sb);
3729 free_percpu(sbinfo->ino_batch);
3730 percpu_counter_destroy(&sbinfo->used_blocks);
3731 mpol_put(sbinfo->mpol);
3732 kfree(sbinfo);
3740 struct shmem_sb_info *sbinfo;
3744 sbinfo = kzalloc(max((int)sizeof(struct shmem_sb_info),
3746 if (!sbinfo)
3749 sb->s_fs_info = sbinfo;
3772 sbinfo->max_blocks = ctx->blocks;
3773 sbinfo->free_inodes = sbinfo->max_inodes = ctx->inodes;
3775 sbinfo->ino_batch = alloc_percpu(ino_t);
3776 if (!sbinfo->ino_batch)
3779 sbinfo->uid = ctx->uid;
3780 sbinfo->gid = ctx->gid;
3781 sbinfo->full_inums = ctx->full_inums;
3782 sbinfo->mode = ctx->mode;
3783 sbinfo->huge = ctx->huge;
3784 sbinfo->mpol = ctx->mpol;
3787 spin_lock_init(&sbinfo->stat_lock);
3788 if (percpu_counter_init(&sbinfo->used_blocks, 0, GFP_KERNEL))
3790 spin_lock_init(&sbinfo->shrinklist_lock);
3791 INIT_LIST_HEAD(&sbinfo->shrinklist);
3807 inode = shmem_get_inode(sb, NULL, S_IFDIR | sbinfo->mode, 0, VM_NORESERVE);
3810 inode->i_uid = sbinfo->uid;
3811 inode->i_gid = sbinfo->gid;
4104 struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb);
4114 switch (sbinfo->huge) {