#endif
-static int erofs_read_super(struct super_block *sb,
- const char *dev_name,
- void *data, int silent)
+static int erofs_fill_super(struct super_block *sb, void *data, int silent)
{
struct inode *inode;
struct erofs_sb_info *sbi;
int err = -EINVAL;
- infoln("read_super, device -> %s", dev_name);
+ infoln("fill_super, device -> %s", sb->s_id);
infoln("options -> %s", (char *)data);
if (unlikely(!sb_set_blocksize(sb, EROFS_BLKSIZ))) {
goto err_iget;
}
- /* save the device name to sbi */
- sbi->dev_name = __getname();
- if (!sbi->dev_name) {
- err = -ENOMEM;
- goto err_devname;
- }
-
- snprintf(sbi->dev_name, PATH_MAX, "%s", dev_name);
- sbi->dev_name[PATH_MAX - 1] = '\0';
-
erofs_shrinker_register(sb);
if (!silent)
- infoln("mounted on %s with opts: %s.", dev_name,
- (char *)data);
+ infoln("mounted on %s with opts: %s.", sb->s_id, (char *)data);
return 0;
/*
* please add a label for each exit point and use
* the following name convention, thus new features
* can be integrated easily without renaming labels.
*/
-err_devname:
- dput(sb->s_root);
- sb->s_root = NULL;
err_iget:
#ifdef EROFS_FS_HAS_MANAGED_CACHE
iput(sbi->managed_cache);
WARN_ON(sb->s_magic != EROFS_SUPER_MAGIC);
- infoln("unmounted for %s", sbi->dev_name);
- __putname(sbi->dev_name);
+ infoln("unmounted for %s", sb->s_id);
erofs_shrinker_unregister(sb);
#ifdef EROFS_FS_HAS_MANAGED_CACHE
sb->s_fs_info = NULL;
}
-
-struct erofs_mount_private {
- const char *dev_name;
- char *options;
-};
-
-/* support mount_bdev() with options */
-static int erofs_fill_super(struct super_block *sb,
- void *_priv, int silent)
-{
- struct erofs_mount_private *priv = _priv;
-
- return erofs_read_super(sb, priv->dev_name,
- priv->options, silent);
-}
-
-static struct dentry *erofs_mount(
- struct file_system_type *fs_type, int flags,
- const char *dev_name, void *data)
+static struct dentry *erofs_mount(struct file_system_type *fs_type, int flags,
+ const char *dev_name, void *data)
{
- struct erofs_mount_private priv = {
- .dev_name = dev_name,
- .options = data
- };
-
- return mount_bdev(fs_type, flags, dev_name,
- &priv, erofs_fill_super);
+ return mount_bdev(fs_type, flags, dev_name, data, erofs_fill_super);
}
static struct file_system_type erofs_fs_type = {