X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_vfs_single.c;h=145517b69b165d4274037493075046c85c78ac58;hp=ba6f3d6eb8d9f54c6bc2e8788864eef4143c654f;hb=18a85b88ac3ad344bbc8f2530c84e2a621d901c4;hpb=83d99930038ef56463b6551aff5aa4d8348ce240 diff --git a/yaffs_vfs_single.c b/yaffs_vfs_single.c index ba6f3d6..145517b 100644 --- a/yaffs_vfs_single.c +++ b/yaffs_vfs_single.c @@ -1912,6 +1912,7 @@ static void yaffs_fill_inode_from_obj(struct inode *inode, static void yaffs_put_super(struct super_block *sb) { struct yaffs_dev *dev = yaffs_super_to_dev(sb); + struct mtd_info *mtd = yaffs_dev_to_mtd(dev); yaffs_trace(YAFFS_TRACE_OS, "yaffs_put_super"); @@ -1941,16 +1942,14 @@ static void yaffs_put_super(struct super_block *sb) } kfree(dev); -} -static void yaffs_mtd_put_super(struct super_block *sb) -{ - struct mtd_info *mtd = yaffs_dev_to_mtd(yaffs_super_to_dev(sb)); - if (mtd->sync) + + if (mtd && mtd->sync) mtd->sync(mtd); - put_mtd_device(mtd); + if (mtd) + put_mtd_device(mtd); } static const struct super_operations yaffs_super_ops = { @@ -2213,7 +2212,7 @@ static struct super_block *yaffs_internal_read_super(int yaffs_version, yaffs_dev_to_lc(dev)->put_super_fn = yaffs_mtd_put_super; param->sb_dirty_fn = yaffs_touch_super; - param->gc_control = yaffs_gc_control_callback; + param->gc_control_fn = yaffs_gc_control_callback; yaffs_dev_to_lc(dev)->super = sb; @@ -2262,10 +2261,6 @@ static struct super_block *yaffs_internal_read_super(int yaffs_version, sb->s_maxbytes = yaffs_max_file_size(dev); - yaffs_trace(YAFFS_TRACE_OS, - "yaffs_readpage_nolock at %lld, size %08x", - (long long)pos, - (unsigned)PAGE_CACHE_SIZE); /* Release lock before yaffs_get_inode() */ yaffs_gross_unlock(dev);