Merge git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfs
* git://git.kernel.org/pub/scm/linux/kernel/git/joern/logfs: [LogFS] Split large truncated into smaller chunks [LogFS] Set s_bdi [LogFS] Prevent mempool_destroy NULL pointer dereference [LogFS] Move assertion [LogFS] Plug 8 byte information leak [LogFS] Prevent memory corruption on large deletes [LogFS] Remove unused method Fix trivial conflict with added header includes in fs/logfs/super.c
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include "logfs.h"
|
||||
#include <linux/bio.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/statfs.h>
|
||||
#include <linux/buffer_head.h>
|
||||
@@ -137,6 +138,10 @@ static int logfs_sb_set(struct super_block *sb, void *_super)
|
||||
sb->s_fs_info = super;
|
||||
sb->s_mtd = super->s_mtd;
|
||||
sb->s_bdev = super->s_bdev;
|
||||
if (sb->s_bdev)
|
||||
sb->s_bdi = &bdev_get_queue(sb->s_bdev)->backing_dev_info;
|
||||
if (sb->s_mtd)
|
||||
sb->s_bdi = sb->s_mtd->backing_dev_info;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -452,6 +457,8 @@ static int logfs_read_sb(struct super_block *sb, int read_only)
|
||||
|
||||
btree_init_mempool64(&super->s_shadow_tree.new, super->s_btree_pool);
|
||||
btree_init_mempool64(&super->s_shadow_tree.old, super->s_btree_pool);
|
||||
btree_init_mempool32(&super->s_shadow_tree.segment_map,
|
||||
super->s_btree_pool);
|
||||
|
||||
ret = logfs_init_mapping(sb);
|
||||
if (ret)
|
||||
@@ -516,8 +523,8 @@ static void logfs_kill_sb(struct super_block *sb)
|
||||
if (super->s_erase_page)
|
||||
__free_page(super->s_erase_page);
|
||||
super->s_devops->put_device(sb);
|
||||
mempool_destroy(super->s_btree_pool);
|
||||
mempool_destroy(super->s_alias_pool);
|
||||
logfs_mempool_destroy(super->s_btree_pool);
|
||||
logfs_mempool_destroy(super->s_alias_pool);
|
||||
kfree(super);
|
||||
log_super("LogFS: Finished unmounting\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user