Exemplo n.º 1
0
Arquivo: main.c Projeto: gapry/myfs
// 回收超级块
static void myfs_kill_sb(struct super_block *sb)
{
	kfree(sb->s_fs_info);
	if (invalidate_inodes(sb, 1)) // 强制毁灭所有inode及其dirty页
		printk("myfs: Eliminate all inodes finished partially!\n");
	kill_litter_super(sb);
}
Exemplo n.º 2
0
static void devpts_kill_sb(struct super_block *sb)
{
	struct pts_fs_info *fsi = DEVPTS_SB(sb);

	kfree(fsi);
	kill_litter_super(sb);
}
Exemplo n.º 3
0
void gfs_kill_super(struct super_block *sb)
{
	struct gfs_super_info *sbi = (struct gfs_super_info *)sb->s_fs_info;
	
	gfs_sysfs_exit_sb(sbi);
	kill_litter_super(sb);
}
Exemplo n.º 4
0
static void devpts_kill_sb(struct super_block *sb)
{
	struct pts_fs_info *fsi = DEVPTS_SB(sb);

	ida_destroy(&fsi->allocated_ptys);
	kfree(fsi);
	kill_litter_super(sb);
}
Exemplo n.º 5
0
static void efivarfs_kill_sb(struct super_block *sb)
{
	kill_litter_super(sb);
	efivarfs_sb = NULL;

	/* Remove all entries and destroy */
	__efivar_entry_iter(efivarfs_destroy, &efivarfs_list, NULL, NULL);
}
Exemplo n.º 6
0
void sjfs_kill_sb(struct super_block *sb) {
	printk("sjfs_kill_sb\n");

	kfree(sb->s_fs_info);

	// used for in memory fs
	kill_litter_super(sb);
	
	// shutdown our link to the userspace app?
} 
Exemplo n.º 7
0
static void hypfs_kill_super(struct super_block *sb)
{
	struct hypfs_sb_info *sb_info = sb->s_fs_info;

	if (sb->s_root)
		hypfs_delete_tree(sb->s_root);
	if (sb_info->update_file)
		hypfs_remove(sb_info->update_file);
	kfree(sb->s_fs_info);
	sb->s_fs_info = NULL;
	kill_litter_super(sb);
}
Exemplo n.º 8
0
void autofs_kill_sb(struct super_block *sb)
{
	struct autofs_sb_info *sbi = autofs_sbi(sb);

	/*
	 * In the event of a failure in get_sb_nodev the superblock
	 * info is not present so nothing else has been setup, so
	 * just call kill_anon_super when we are called from
	 * deactivate_super.
	 */
	if (sbi) {
		/* Free wait queues, close pipe */
		autofs_catatonic_mode(sbi);
		put_pid(sbi->oz_pgrp);
	}

	pr_debug("shutting down\n");
	kill_litter_super(sb);
	if (sbi)
		kfree_rcu(sbi, rcu);
}
Exemplo n.º 9
0
void autofs4_kill_sb(struct super_block *sb)
{
	struct autofs_sb_info *sbi = autofs4_sbi(sb);

	/*
	 * In the event of a failure in get_sb_nodev the superblock
	 * info is not present so nothing else has been setup, so
	 * just call kill_anon_super when we are called from
	 * deactivate_super.
	 */
	if (!sbi)
		goto out_kill_sb;

	/* Free wait queues, close pipe */
	autofs4_catatonic_mode(sbi);

	sb->s_fs_info = NULL;
	kfree(sbi);

out_kill_sb:
	DPRINTK("shutting down");
	kill_litter_super(sb);
}
Exemplo n.º 10
0
static void ramfs_kill_sb(struct super_block *sb)
{
	kfree(sb->s_fs_info);
	kill_litter_super(sb);
}
Exemplo n.º 11
0
void sjfs_kill_sb(struct super_block *sb) {
	// used for in memory fs
	kill_litter_super(sb);
	
	// shutdown our link to the userspace app?
}