vfs: Convert ramfs, shmem, tmpfs, devtmpfs, rootfs to use the new mount API
Convert the ramfs, shmem, tmpfs, devtmpfs and rootfs filesystems to the new internal mount API as the old one will be obsoleted and removed. This allows greater flexibility in communication of mount parameters between userspace, the VFS and the filesystem. See Documentation/filesystems/mount_api.txt for more information. Note that tmpfs is slightly tricky as it can contain embedded commas, so it can't be trivially split up using strsep() to break on commas in generic_parse_monolithic(). Instead, tmpfs has to supply its own generic parser. However, if tmpfs changes, then devtmpfs and rootfs, which are wrappers around tmpfs or ramfs, must change too - and thus so must ramfs, so these had to be converted also. [AV: rewritten] Signed-off-by: David Howells <dhowells@redhat.com> cc: Hugh Dickins <hughd@google.com> cc: linux-mm@kvack.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -4,8 +4,7 @@
|
||||
|
||||
struct inode *ramfs_get_inode(struct super_block *sb, const struct inode *dir,
|
||||
umode_t mode, dev_t dev);
|
||||
extern struct dentry *ramfs_mount(struct file_system_type *fs_type,
|
||||
int flags, const char *dev_name, void *data);
|
||||
extern int ramfs_init_fs_context(struct fs_context *fc);
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
static inline int
|
||||
@@ -17,6 +16,7 @@ ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize)
|
||||
extern int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize);
|
||||
#endif
|
||||
|
||||
extern const struct fs_parameter_description ramfs_fs_parameters;
|
||||
extern const struct file_operations ramfs_file_operations;
|
||||
extern const struct vm_operations_struct generic_file_vm_ops;
|
||||
|
||||
|
@@ -49,9 +49,9 @@ static inline struct shmem_inode_info *SHMEM_I(struct inode *inode)
|
||||
/*
|
||||
* Functions in mm/shmem.c called directly from elsewhere:
|
||||
*/
|
||||
extern const struct fs_parameter_description shmem_fs_parameters;
|
||||
extern int shmem_init(void);
|
||||
extern struct dentry *shmem_mount(struct file_system_type *fs_type,
|
||||
int flags, const char *dev_name, void *data);
|
||||
extern int shmem_init_fs_context(struct fs_context *fc);
|
||||
extern struct file *shmem_file_setup(const char *name,
|
||||
loff_t size, unsigned long flags);
|
||||
extern struct file *shmem_kernel_file_setup(const char *name, loff_t size,
|
||||
|
Reference in New Issue
Block a user