Gao Xiang <[email protected]> wrote:

> >   sb->s_flags |= MS_RDONLY | MS_NOATIME;

This should be using SB_* rather than MS_* for interaction with sb->s_flags.

> > drivers/staging/erofs/super.c: In function 'erofs_mount':
> > drivers/staging/erofs/super.c:501:10: warning: passing argument 5 of 
> > 'mount_bdev' makes integer from pointer without a cast [-Wint-conversion]
> >    &priv, erofs_fill_super);
> >           ^~~~~~~~~~~~~~~~
> > In file included from include/linux/buffer_head.h:12:0,
> >                  from drivers/staging/erofs/super.c:14:
> > include/linux/fs.h:2151:23: note: expected 'size_t {aka long unsigned int}' 
> > but argument is of type 'int (*)(struct super_block *, void *, int)'
> >  extern struct dentry *mount_bdev(struct file_system_type *fs_type,
> >                        ^~~~~~~~~~
> > drivers/staging/erofs/super.c:500:9: error: too few arguments to function 
> > 'mount_bdev'
> >   return mount_bdev(fs_type, flags, dev_name,
> >          ^~~~~~~~~~

There's a patch in Al Viro's tree that passes a size_t argument indicating the
size of the mount data from mount down into the filesystem and into the
helpers as the data may be on a kernel stack or in kernel .rodata rather than
in a full page of its own.

https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git

Currently this is commit 0a191e4505a4f255e6513b49426213da69bf0e80

vfs: Require specification of size of mount data for internal mounts

David

Reply via email to