summaryrefslogtreecommitdiff
path: root/fs/hpfs
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2018-09-11 22:20:53 +0100
committerDavid Howells <dhowells@redhat.com>2018-09-11 22:20:53 +0100
commit307c6e5241b4b44076c016bc64d1748b93d1792b (patch)
tree6b60bd39e494ea09efdc54e57c4cad7dc80760ce /fs/hpfs
parent11da3a7f84f19c26da6f86af878298694ede0804 (diff)
downloadlinux-next-307c6e5241b4b44076c016bc64d1748b93d1792b.tar.gz
vfs: Require specification of size of mount data for internal mounts
Require specification of the size of the mount data passed to the VFS mounting functions by internal mounts. The problem is that the legacy handling for the upcoming mount-context patches has to copy an entire page as that's how big the buffer is defined as being, but some of the internal calls pass in a short bit of stack space, with the result that the stack guard page may get hit. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/hpfs')
-rw-r--r--fs/hpfs/super.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
index f2c3ebcd309c..53e585b27c05 100644
--- a/fs/hpfs/super.c
+++ b/fs/hpfs/super.c
@@ -445,7 +445,8 @@ HPFS filesystem options:\n\
\n");
}
-static int hpfs_remount_fs(struct super_block *s, int *flags, char *data)
+static int hpfs_remount_fs(struct super_block *s, int *flags,
+ char *data, size_t data_size)
{
kuid_t uid;
kgid_t gid;
@@ -540,7 +541,8 @@ static const struct super_operations hpfs_sops =
.show_options = hpfs_show_options,
};
-static int hpfs_fill_super(struct super_block *s, void *options, int silent)
+static int hpfs_fill_super(struct super_block *s,
+ void *options, size_t data_size, int silent)
{
struct buffer_head *bh0, *bh1, *bh2;
struct hpfs_boot_block *bootblock;
@@ -757,9 +759,10 @@ bail0:
}
static struct dentry *hpfs_mount(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data)
+ int flags, const char *dev_name, void *data, size_t data_size)
{
- return mount_bdev(fs_type, flags, dev_name, data, hpfs_fill_super);
+ return mount_bdev(fs_type, flags, dev_name, data, data_size,
+ hpfs_fill_super);
}
static struct file_system_type hpfs_fs_type = {