Re: linux-next: build failure after merge of the staging tree

From: David Howells
Date: Mon Jul 30 2018 - 05:47:43 EST


Gao Xiang <gaoxiang25@xxxxxxxxxx> 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