linux-next: build failure after merge of the drm tree

From: Stephen Rothwell
Date: Mon Jul 08 2019 - 00:49:21 EST


Hi all,

After merging the drm tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

drivers/dma-buf/dma-buf.c: In function 'dma_buf_fs_mount':
drivers/dma-buf/dma-buf.c:65:9: error: implicit declaration of function 'mount_pseudo'; did you mean 'mount_bdev'? [-Werror=implicit-function-declaration]
return mount_pseudo(fs_type, "dmabuf:", NULL, &dma_buf_dentry_ops,
^~~~~~~~~~~~
mount_bdev
drivers/dma-buf/dma-buf.c:65:9: warning: returning 'int' from a function with return type 'struct dentry *' makes pointer from integer without a cast [-Wint-conversion]
return mount_pseudo(fs_type, "dmabuf:", NULL, &dma_buf_dentry_ops,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DMA_BUF_MAGIC);
~~~~~~~~~~~~~~

Caused by commit

ed63bb1d1f84 ("dma-buf: give each buffer a full-fledged inode")

interacting with commit

8d9e46d80777 ("fold mount_pseudo_xattr() into pseudo_fs_get_tree()")

from the vfs tree.

I have added the following merge fix patch for today.

From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Mon, 8 Jul 2019 14:36:53 +1000
Subject: [PATCH] dma-buf: convert to new mount api

Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
---
drivers/dma-buf/dma-buf.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index dc4b2c521d79..e8587c5eedb7 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -24,6 +24,7 @@
#include <linux/reservation.h>
#include <linux/mm.h>
#include <linux/mount.h>
+#include <linux/pseudo_fs.h>

#include <uapi/linux/dma-buf.h>
#include <uapi/linux/magic.h>
@@ -59,16 +60,19 @@ static const struct dentry_operations dma_buf_dentry_ops = {

static struct vfsmount *dma_buf_mnt;

-static struct dentry *dma_buf_fs_mount(struct file_system_type *fs_type,
- int flags, const char *name, void *data)
+static int dma_buf_init_fs_context(struct fs_context *fc)
{
- return mount_pseudo(fs_type, "dmabuf:", NULL, &dma_buf_dentry_ops,
- DMA_BUF_MAGIC);
+ struct pseudo_fs_context *ctx = init_pseudo(fc, DMA_BUF_MAGIC);
+
+ if (!ctx)
+ return -ENOMEM;
+ ctx->dops = &dma_buf_dentry_ops;
+ return 0;
}

static struct file_system_type dma_buf_fs_type = {
.name = "dmabuf",
- .mount = dma_buf_fs_mount,
+ .init_fs_context = dma_buf_init_fs_context,
.kill_sb = kill_anon_super,
};

--
2.20.1

--
Cheers,
Stephen Rothwell

Attachment: pgpDN2YeFjoC1.pgp
Description: OpenPGP digital signature